From a3368931161a945777c25543d979ab5c465a2574 Mon Sep 17 00:00:00 2001 From: mfahampshire Date: Wed, 11 Dec 2024 16:30:17 +0000 Subject: [PATCH] Max/openapi docs (#5219) * first pass redoc apis * new landing + component update * added intro * new structure * link list * add sandbox sdk * remove theme colours * revert credit to ticket & ticketbook and actually get all the instances to replace * Max/zknym doc tweak (#5223) * revert credit to ticket & ticketbook * revert credit to ticket & ticketbook and actually get all the instances to replace * theme tweak to widen text area * theme redoc component * tweak padding topbar * modified socks5 page to be in line with websocket client * modify h size of autodoc generated command info * tweak script to build from master * add autodoc to workspace * auto commit generated command files * clean autodoc-generated-markdown in script * auto commit generated command files * tweak works * clippy * fix borked toml from cherrypick * remove rm command * auto commit generated command files * blow away images * auto commit generated command files * remove redoc for nymapi for the moment but retain everything else * fix double paste * temp remove sandbox --- Cargo.lock | 23 +- Cargo.toml | 2 +- documentation/.gitignore | 1 + .../nym-api-build-info-help.md | 9 - .../nym-api-build-info.md | 13 - .../nym-api-commands.md | 95 -- .../nym-api-init-help.md | 25 - .../nym-client-build-info-help.md | 9 - .../nym-client-build-info.md | 13 - .../nym-client-completions-help.md | 11 - .../nym-client-generate-fig-spec-help.md | 8 - .../nym-client-generate-fig-spec.md | 585 --------- .../nym-client-import-credential-help.md | 15 - .../nym-client-init-help.md | 27 - .../nym-client-list-gateways-help.md | 10 - .../nym-client-run-help.md | 21 - .../nym-client-switch-gateway-help.md | 10 - .../nym-node-bonding-information-help.md | 12 - .../nym-node-bonding-information.md | 3 - .../nym-node-build-info-help.md | 9 - .../nym-node-build-info.md | 13 - .../nym-node-commands.md | 237 ---- .../nym-node-migrate-help.md | 68 -- .../nym-node-node-details-help.md | 11 - .../nym-node-node-details.md | 3 - .../nym-node-sign-help.md | 13 - .../nym-socks5-client-add-gateway-help.md | 15 - .../nym-socks5-client-build-info-help.md | 9 - .../nym-socks5-client-build-info.md | 13 - .../nym-socks5-client-completions-help.md | 11 - ...ym-socks5-client-generate-fig-spec-help.md | 8 - .../nym-socks5-client-generate-fig-spec.md | 619 ---------- ...ym-socks5-client-import-credential-help.md | 15 - .../nym-socks5-client-init-help.md | 44 - .../nym-socks5-client-list-gateways-help.md | 10 - .../nym-socks5-client-run-help.md | 34 - .../nymvisor-add-upgrade-help.md | 19 - .../nymvisor-build-info-help.md | 9 - .../nymvisor-build-info.md | 13 - .../nymvisor-commands.md | 154 --- .../nymvisor-config-help.md | 9 - .../nymvisor-daemon-build-info-help.md | 9 - .../nymvisor-init-help.md | 48 - documentation/autodoc/src/main.rs | 15 +- documentation/docs/components/api-table.tsx | 52 + .../docs/components/landing-page.tsx | 26 +- .../outputs/api-scraping-outputs/time-now.md | 2 +- .../nym-api-build-info-help.md | 1 - .../command-outputs/nym-api-build-info.md | 15 +- .../command-outputs/nym-api-init-help.md | 1 - .../outputs/command-outputs/nym-api-init.md | 2 +- .../command-outputs/nym-client-build-info.md | 14 +- .../nym-node-bonding-information.md | 2 +- .../command-outputs/nym-node-build-info.md | 14 +- .../command-outputs/nym-node-node-details.md | 2 +- .../nym-socks5-client-build-info.md | 14 +- .../command-outputs/nymvisor-build-info.md | 14 +- documentation/docs/next-env.d.ts | 2 +- documentation/docs/package.json | 2 + documentation/docs/pages/_meta.json | 4 + documentation/docs/pages/apis/_meta.json | 12 + .../docs/pages/apis/cosmos-sdk-nyx.mdx | 3 + .../pages/apis/cosmos-sdk-nyx/mainnet.mdx | 18 + .../pages/apis/cosmos-sdk-nyx/sandbox.mdx | 16 + .../docs/pages/apis/explorer-api.mdx | 8 + .../docs/pages/apis/explorer-api/mainnet.mdx | 17 + .../docs/pages/apis/explorer-api/sandbox.mdx | 16 + .../docs/pages/apis/introduction.mdx | 5 + documentation/docs/pages/apis/ns-api.mdx | 11 + .../docs/pages/apis/ns-api/mainnet.mdx | 16 + .../docs/pages/apis/ns-api/sandbox.mdx | 16 + documentation/docs/pages/apis/nym-api.mdx | 5 + .../docs/pages/apis/nym-api/mainnet.mdx | 10 + .../docs/pages/developers/clients.mdx | 4 + .../docs/pages/developers/clients/socks5.mdx | 136 --- .../developers/clients/socks5/_meta.json | 6 + .../developers/clients/socks5/commands.mdx | 30 +- .../developers/clients/socks5/config.mdx | 29 + .../pages/developers/clients/socks5/setup.mdx | 41 + .../pages/developers/clients/socks5/usage.mdx | 62 + .../developers/clients/websocket/_meta.json | 7 + .../developers/clients/websocket/commands.mdx | 30 +- .../developers/tools/nym-cli/commands.mdx | 64 +- .../cryptography/zk-nym/double-spend-prot.mdx | 6 +- .../cryptography/zk-nym/rerandomise.mdx | 13 +- .../cryptography/zk-nym/unlinkability.mdx | 8 +- .../cryptography/zk-nym/zk-nym-overview.mdx | 16 +- documentation/docs/pages/styles.css | 59 +- documentation/docs/pnpm-lock.yaml | 1047 +++++++++++++++++ documentation/docs/public/favicon.ico | Bin 0 -> 1793 bytes documentation/docs/theme.config.tsx | 16 +- documentation/scripts/next-scripts/autodoc.sh | 6 +- 92 files changed, 1593 insertions(+), 2607 deletions(-) delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-api-build-info-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-api-build-info.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-api-commands.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-api-init-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-client-build-info-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-client-build-info.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-client-completions-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-client-generate-fig-spec-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-client-generate-fig-spec.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-client-import-credential-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-client-init-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-client-list-gateways-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-client-run-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-client-switch-gateway-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-node-bonding-information-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-node-bonding-information.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-node-build-info-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-node-build-info.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-node-commands.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-node-migrate-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-node-node-details-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-node-node-details.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-node-sign-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-add-gateway-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-build-info-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-build-info.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-completions-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-generate-fig-spec-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-generate-fig-spec.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-import-credential-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-init-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-list-gateways-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-run-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nymvisor-add-upgrade-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nymvisor-build-info-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nymvisor-build-info.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nymvisor-commands.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nymvisor-config-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nymvisor-daemon-build-info-help.md delete mode 100644 documentation/autodoc/autodoc-generated-markdown/nymvisor-init-help.md create mode 100644 documentation/docs/components/api-table.tsx create mode 100644 documentation/docs/pages/apis/_meta.json create mode 100644 documentation/docs/pages/apis/cosmos-sdk-nyx.mdx create mode 100644 documentation/docs/pages/apis/cosmos-sdk-nyx/mainnet.mdx create mode 100644 documentation/docs/pages/apis/cosmos-sdk-nyx/sandbox.mdx create mode 100644 documentation/docs/pages/apis/explorer-api.mdx create mode 100644 documentation/docs/pages/apis/explorer-api/mainnet.mdx create mode 100644 documentation/docs/pages/apis/explorer-api/sandbox.mdx create mode 100644 documentation/docs/pages/apis/introduction.mdx create mode 100644 documentation/docs/pages/apis/ns-api.mdx create mode 100644 documentation/docs/pages/apis/ns-api/mainnet.mdx create mode 100644 documentation/docs/pages/apis/ns-api/sandbox.mdx create mode 100644 documentation/docs/pages/apis/nym-api.mdx create mode 100644 documentation/docs/pages/apis/nym-api/mainnet.mdx create mode 100644 documentation/docs/pages/developers/clients/socks5/_meta.json create mode 100644 documentation/docs/pages/developers/clients/socks5/config.mdx create mode 100644 documentation/docs/pages/developers/clients/socks5/setup.mdx create mode 100644 documentation/docs/pages/developers/clients/socks5/usage.mdx create mode 100644 documentation/docs/pages/developers/clients/websocket/_meta.json create mode 100644 documentation/docs/public/favicon.ico diff --git a/Cargo.lock b/Cargo.lock index f90b3493abe..4b693241204 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -430,6 +430,14 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +[[package]] +name = "autodoc" +version = "0.1.0" +dependencies = [ + "env_logger 0.11.5", + "log", +] + [[package]] name = "axum" version = "0.6.20" @@ -2354,6 +2362,19 @@ dependencies = [ "termcolor", ] +[[package]] +name = "env_logger" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "humantime 2.1.0", + "log", +] + [[package]] name = "envy" version = "0.4.2" @@ -7523,7 +7544,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d" dependencies = [ - "env_logger", + "env_logger 0.7.1", "log", ] diff --git a/Cargo.toml b/Cargo.toml index 7fcf6070d46..d833eb8fe39 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -98,7 +98,7 @@ members = [ "common/wasm/utils", "common/wireguard", "common/wireguard-types", - # "documentation/autodoc", + "documentation/autodoc", "explorer-api", "explorer-api/explorer-api-requests", "explorer-api/explorer-client", diff --git a/documentation/.gitignore b/documentation/.gitignore index 95b579c4271..4329a0d6c0a 100644 --- a/documentation/.gitignore +++ b/documentation/.gitignore @@ -1 +1,2 @@ todo.md +scripts/generate-api diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-api-build-info-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-api-build-info-help.md deleted file mode 100644 index db52a92b4e7..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-api-build-info-help.md +++ /dev/null @@ -1,9 +0,0 @@ -```sh -Show build information of this binary - -Usage: nym-api build-info [OPTIONS] - -Options: - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-api-build-info.md b/documentation/autodoc/autodoc-generated-markdown/nym-api-build-info.md deleted file mode 100644 index c04a06ee09e..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-api-build-info.md +++ /dev/null @@ -1,13 +0,0 @@ -```sh - -Binary Name: nym-api -Build Timestamp: 2024-10-09T13:56:14.428750844Z -Build Version: 1.1.42 -Commit SHA: fac373c1db4fa5389ba61de7943c77023467bccb -Commit Date: 2024-10-09T14:59:40.000000000+02:00 -Commit Branch: max/new-docs-framework -rustc Version: 1.80.0 -rustc Channel: stable -cargo Profile: release - -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-api-commands.md b/documentation/autodoc/autodoc-generated-markdown/nym-api-commands.md deleted file mode 100644 index 185d88277bb..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-api-commands.md +++ /dev/null @@ -1,95 +0,0 @@ -# `nym-api` Binary Commands (Autogenerated) - -These docs are autogenerated by the [`autodocs`](https://github.com/nymtech/nym/tree/max/new-docs-framework/documentation/autodoc) script. -```sh -2024-10-29T09:51:44.008469Z  INFO nym-api/src/main.rs:41: Starting nym api... -Usage: nym-api [OPTIONS] - -Commands: - init Initialise a Nym Api instance with persistent config.toml file - run Run the Nym Api with provided configuration optionally overriding set parameters - build-info Show build information of this binary - help Print this message or the help of the given subcommand(s) - -Options: - -c, --config-env-file - Path pointing to an env file that configures the Nym API [env: NYMAPI_CONFIG_ENV_FILE_ARG=] - --no-banner - A no-op flag included for consistency with other binaries (and compatibility with nymvisor, oops) [env: NYMAPI_NO_BANNER_ARG=] - -h, --help - Print help - -V, --version - Print version -``` - -### `init` -```sh -2024-10-29T09:51:44.013292Z  INFO nym-api/src/main.rs:41: Starting nym api... -Initialise a Nym Api instance with persistent config.toml file - -Usage: nym-api init [OPTIONS] - -Options: - --id - Id of the nym-api we want to initialise. if unspecified, a default value will be used. default: "default" [env: NYMAPI_ID_ARG=] [default: default] - -m, --enable-monitor - Specifies whether network monitoring is enabled on this API default: false [env: NYMAPI_ENABLE_MONITOR_ARG=] - -r, --enable-rewarding - Specifies whether network rewarding is enabled on this API default: false [env: NYMAPI_ENABLE_REWARDING_ARG=] - --nyxd-validator - Endpoint to nyxd instance used for contract information. default: http://localhost:26657 [env: NYMAPI_NYXD_VALIDATOR_ARG=] - --mnemonic - Mnemonic of the network monitor used for sending rewarding and zk-nyms transactions default: None [env: NYMAPI_MNEMONIC_ARG=] - --enable-zk-nym - Flag to indicate whether credential signer authority is enabled on this API default: false [env: NYMAPI_ENABLE_ZK_NYM_ARG=] - --announce-address - Announced address that is going to be put in the DKG contract where zk-nym clients will connect to obtain their credentials default: None [env: NYMAPI_ANNOUNCE_ADDRESS_NYM_ARG=] - --monitor-credentials-mode - Set this nym api to work in a enabled credentials that would attempt to use gateway with the bandwidth credential requirement [env: NYMAPI_MONITOR_CREDENTIALS_MODE_ARG=] - --bind-address - Socket address this api will use for binding its http API. default: `127.0.0.1:8080` in `debug` builds and `0.0.0.0:8080` in `release` - -h, --help - Print help -``` - -### `run` -```sh -2024-10-29T09:51:44.032688Z  INFO nym-api/src/main.rs:41: Starting nym api... -Run the Nym Api with provided configuration optionally overriding set parameters - -Usage: nym-api run [OPTIONS] - -Options: - --id - Id of the nym-api we want to run.if unspecified, a default value will be used. default: "default" [env: NYMAPI_ID_ARG=] [default: default] - -m, --enable-monitor - Specifies whether network monitoring is enabled on this API default: None - config value will be used instead [env: NYMAPI_ENABLE_MONITOR_ARG=] [possible values: true, false] - -r, --enable-rewarding - Specifies whether network rewarding is enabled on this API default: None - config value will be used instead [env: NYMAPI_ENABLE_REWARDING_ARG=] [possible values: true, false] - --nyxd-validator - Endpoint to nyxd instance used for contract information. default: None - config value will be used instead [env: NYMAPI_NYXD_VALIDATOR_ARG=] - --mnemonic - Mnemonic of the network monitor used for sending rewarding and zk-nyms transactions default: None - config value will be used instead [env: NYMAPI_MNEMONIC_ARG=] - --enable-zk-nym - Flag to indicate whether coconut signer authority is enabled on this API default: None - config value will be used instead [env: NYMAPI_ENABLE_ZK_NYM_ARG=] [possible values: true, false] - --announce-address - Announced address that is going to be put in the DKG contract where zk-nym clients will connect to obtain their credentials default: None - config value will be used instead [env: NYMAPI_ANNOUNCE_ADDRESS_ARG=] - --monitor-credentials-mode - Set this nym api to work in a enabled credentials that would attempt to use gateway with the bandwidth credential requirement default: None - config value will be used instead [env: NYMAPI_MONITOR_CREDENTIALS_MODE_ARG=] [possible values: true, false] - --bind-address - Socket address this api will use for binding its http API. default: `127.0.0.1:8080` in `debug` builds and `0.0.0.0:8080` in `release` - -h, --help - Print help -``` - -### `build-info` -```sh -2024-10-29T09:51:44.037915Z  INFO nym-api/src/main.rs:41: Starting nym api... -Show build information of this binary - -Usage: nym-api build-info [OPTIONS] - -Options: - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-api-init-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-api-init-help.md deleted file mode 100644 index bd4c714a280..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-api-init-help.md +++ /dev/null @@ -1,25 +0,0 @@ -```sh -Initialise a Nym Api instance with persistent config.toml file - -Usage: nym-api init [OPTIONS] - -Options: - --id - Id of the nym-api we want to initialise. if unspecified, a default value will be used. default: "default" [default: default] - -m, --enable-monitor - Specifies whether network monitoring is enabled on this API default: false - -r, --enable-rewarding - Specifies whether network rewarding is enabled on this API default: false - --nyxd-validator - Endpoint to nyxd instance used for contract information. default: http://localhost:26657 - --mnemonic - Mnemonic of the network monitor used for sending rewarding and zk-nyms transactions default: None - --enable-zk-nym - Flag to indicate whether credential signer authority is enabled on this API default: false - --announce-address - Announced address that is going to be put in the DKG contract where zk-nym clients will connect to obtain their credentials default: None - --monitor-credentials-mode - Set this nym api to work in a enabled credentials that would attempt to use gateway with the bandwidth credential requirement - -h, --help - Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-client-build-info-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-client-build-info-help.md deleted file mode 100644 index f65dc4e7c48..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-client-build-info-help.md +++ /dev/null @@ -1,9 +0,0 @@ -```sh -Show build information of this binary - -Usage: nym-client build-info [OPTIONS] - -Options: - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-client-build-info.md b/documentation/autodoc/autodoc-generated-markdown/nym-client-build-info.md deleted file mode 100644 index a0c7d2c6122..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-client-build-info.md +++ /dev/null @@ -1,13 +0,0 @@ -```sh - -Binary Name: nym-client -Build Timestamp: 2024-10-09T13:56:14.428750844Z -Build Version: 1.1.39 -Commit SHA: fac373c1db4fa5389ba61de7943c77023467bccb -Commit Date: 2024-10-09T14:59:40.000000000+02:00 -Commit Branch: max/new-docs-framework -rustc Version: 1.80.0 -rustc Channel: stable -cargo Profile: release - -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-client-completions-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-client-completions-help.md deleted file mode 100644 index f09b17f7852..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-client-completions-help.md +++ /dev/null @@ -1,11 +0,0 @@ -```sh -Generate shell completions - -Usage: nym-client completions - -Arguments: - [possible values: bash, elvish, fish, power-shell, zsh] - -Options: - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-client-generate-fig-spec-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-client-generate-fig-spec-help.md deleted file mode 100644 index ecce720ea97..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-client-generate-fig-spec-help.md +++ /dev/null @@ -1,8 +0,0 @@ -```sh -Generate Fig specification - -Usage: nym-client generate-fig-spec - -Options: - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-client-generate-fig-spec.md b/documentation/autodoc/autodoc-generated-markdown/nym-client-generate-fig-spec.md deleted file mode 100644 index 154c25a968f..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-client-generate-fig-spec.md +++ /dev/null @@ -1,585 +0,0 @@ -```sh -const completion: Fig.Spec = { - name: "nym-native-client", - description: "Implementation of the Nym Client", - subcommands: [ - { - name: "init", - description: "Initialise a Nym client. Do this first!", - options: [ - { - name: "--id", - description: "Id of client we want to create config for", - isRepeatable: true, - args: { - name: "id", - }, - }, - { - name: "--gateway", - description: "Id of the gateway we are going to connect to", - isRepeatable: true, - args: { - name: "gateway", - isOptional: true, - }, - }, - { - name: "--nyxd-urls", - description: "Comma separated list of rest endpoints of the nyxd validators", - hidden: true, - isRepeatable: true, - args: { - name: "nyxd_urls", - isOptional: true, - }, - }, - { - name: "--nym-apis", - description: "Comma separated list of rest endpoints of the API validators", - isRepeatable: true, - args: { - name: "nym_apis", - isOptional: true, - }, - }, - { - name: "--custom-mixnet", - description: "Path to .json file containing custom network specification", - hidden: true, - isRepeatable: true, - args: { - name: "custom_mixnet", - isOptional: true, - template: "filepaths", - }, - }, - { - name: "--enabled-credentials-mode", - description: "Set this client to work in a enabled credentials mode that would attempt to use gateway with bandwidth credential requirement", - hidden: true, - isRepeatable: true, - args: { - name: "enabled_credentials_mode", - isOptional: true, - suggestions: [ - "true", - "false", - ], - }, - }, - { - name: "--disable-socket", - description: "Whether to not start the websocket", - isRepeatable: true, - args: { - name: "disable_socket", - isOptional: true, - suggestions: [ - "true", - "false", - ], - }, - }, - { - name: ["-p", "--port"], - description: "Port for the socket (if applicable) to listen on in all subsequent runs", - isRepeatable: true, - args: { - name: "port", - isOptional: true, - }, - }, - { - name: "--host", - description: "Ip for the socket (if applicable) to listen for requests", - isRepeatable: true, - args: { - name: "host", - isOptional: true, - }, - }, - { - name: ["-o", "--output"], - isRepeatable: true, - args: { - name: "output", - isOptional: true, - suggestions: [ - "text", - "json", - ], - }, - }, - { - name: "--force-tls-gateway", - description: "Specifies whether the client will attempt to enforce tls connection to the desired gateway", - }, - { - name: "--latency-based-selection", - description: "Specifies whether the new gateway should be determined based by latency as opposed to being chosen uniformly", - exclusiveOn: [ - "--gateway", - ], - }, - { - name: "--fastmode", - description: "Mostly debug-related option to increase default traffic rate so that you would not need to modify config post init", - }, - { - name: "--no-cover", - description: "Disable loop cover traffic and the Poisson rate limiter (for debugging only)", - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "run", - description: "Run the Nym client with provided configuration client optionally overriding set parameters", - options: [ - { - name: "--id", - description: "Id of client we want to create config for", - isRepeatable: true, - args: { - name: "id", - }, - }, - { - name: "--gateway", - description: "Id of the gateway we want to connect to. If overridden, it is user's responsibility to ensure prior registration happened", - isRepeatable: true, - args: { - name: "gateway", - isOptional: true, - }, - }, - { - name: "--nyxd-urls", - description: "Comma separated list of rest endpoints of the nyxd validators", - hidden: true, - isRepeatable: true, - args: { - name: "nyxd_urls", - isOptional: true, - }, - }, - { - name: "--nym-apis", - description: "Comma separated list of rest endpoints of the API validators", - isRepeatable: true, - args: { - name: "nym_apis", - isOptional: true, - }, - }, - { - name: "--custom-mixnet", - description: "Path to .json file containing custom network specification", - hidden: true, - isRepeatable: true, - args: { - name: "custom_mixnet", - isOptional: true, - template: "filepaths", - }, - }, - { - name: "--enabled-credentials-mode", - description: "Set this client to work in a enabled credentials mode that would attempt to use gateway with bandwidth credential requirement", - hidden: true, - isRepeatable: true, - args: { - name: "enabled_credentials_mode", - isOptional: true, - suggestions: [ - "true", - "false", - ], - }, - }, - { - name: "--disable-socket", - description: "Whether to not start the websocket", - isRepeatable: true, - args: { - name: "disable_socket", - isOptional: true, - suggestions: [ - "true", - "false", - ], - }, - }, - { - name: ["-p", "--port"], - description: "Port for the socket to listen on", - isRepeatable: true, - args: { - name: "port", - isOptional: true, - }, - }, - { - name: "--host", - description: "Ip for the socket (if applicable) to listen for requests", - isRepeatable: true, - args: { - name: "host", - isOptional: true, - }, - }, - { - name: "--fastmode", - description: "Mostly debug-related option to increase default traffic rate so that you would not need to modify config post init", - }, - { - name: "--no-cover", - description: "Disable loop cover traffic and the Poisson rate limiter (for debugging only)", - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "import-credential", - description: "Import a pre-generated credential", - options: [ - { - name: "--id", - description: "Id of client that is going to import the credential", - isRepeatable: true, - args: { - name: "id", - }, - }, - { - name: "--credential-data", - description: "Explicitly provide the encoded credential data (as base58)", - isRepeatable: true, - args: { - name: "credential_data", - isOptional: true, - }, - }, - { - name: "--credential-path", - description: "Specifies the path to file containing binary credential data", - isRepeatable: true, - args: { - name: "credential_path", - isOptional: true, - template: "filepaths", - }, - }, - { - name: "--version", - hidden: true, - isRepeatable: true, - args: { - name: "version", - isOptional: true, - }, - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "list-gateways", - description: "List all registered with gateways", - options: [ - { - name: "--id", - description: "Id of client we want to list gateways for", - isRepeatable: true, - args: { - name: "id", - }, - }, - { - name: ["-o", "--output"], - isRepeatable: true, - args: { - name: "output", - isOptional: true, - suggestions: [ - "text", - "json", - ], - }, - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "add-gateway", - description: "Add new gateway to this client", - options: [ - { - name: "--id", - description: "Id of client we want to add gateway for", - isRepeatable: true, - args: { - name: "id", - }, - }, - { - name: "--gateway-id", - description: "Explicitly specify id of the gateway to register with. If unspecified, a random gateway will be chosen instead", - isRepeatable: true, - args: { - name: "gateway_id", - isOptional: true, - }, - }, - { - name: "--nym-apis", - description: "Comma separated list of rest endpoints of the API validators", - isRepeatable: true, - args: { - name: "nym_apis", - isOptional: true, - }, - }, - { - name: "--custom-mixnet", - description: "Path to .json file containing custom network specification", - hidden: true, - isRepeatable: true, - args: { - name: "custom_mixnet", - isOptional: true, - template: "filepaths", - }, - }, - { - name: ["-o", "--output"], - isRepeatable: true, - args: { - name: "output", - isOptional: true, - suggestions: [ - "text", - "json", - ], - }, - }, - { - name: "--force-tls-gateway", - description: "Specifies whether the client will attempt to enforce tls connection to the desired gateway", - }, - { - name: "--latency-based-selection", - description: "Specifies whether the new gateway should be determined based by latency as opposed to being chosen uniformly", - exclusiveOn: [ - "--gateway-id", - ], - }, - { - name: "--set-active", - description: "Specify whether this new gateway should be set as the active one", - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "switch-gateway", - description: "Change the currently active gateway. Note that you must have already registered with the new gateway!", - options: [ - { - name: "--id", - description: "Id of client we want to list gateways for", - isRepeatable: true, - args: { - name: "id", - }, - }, - { - name: "--gateway-id", - description: "Id of the gateway we want to switch to", - isRepeatable: true, - args: { - name: "gateway_id", - }, - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "show-ticketbooks", - description: "Display information associated with the imported ticketbooks,", - options: [ - { - name: "--id", - description: "Id of client that is going to display the ticketbook information", - isRepeatable: true, - args: { - name: "id", - }, - }, - { - name: ["-o", "--output"], - isRepeatable: true, - args: { - name: "output", - isOptional: true, - suggestions: [ - "text", - "json", - ], - }, - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "build-info", - description: "Show build information of this binary", - options: [ - { - name: ["-o", "--output"], - isRepeatable: true, - args: { - name: "output", - isOptional: true, - suggestions: [ - "text", - "json", - ], - }, - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "completions", - description: "Generate shell completions", - options: [ - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - args: { - name: "shell", - suggestions: [ - "bash", - "elvish", - "fish", - "power-shell", - "zsh", - ], - }, - }, - { - name: "generate-fig-spec", - description: "Generate Fig specification", - options: [ - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "help", - description: "Print this message or the help of the given subcommand(s)", - subcommands: [ - { - name: "init", - description: "Initialise a Nym client. Do this first!", - }, - { - name: "run", - description: "Run the Nym client with provided configuration client optionally overriding set parameters", - }, - { - name: "import-credential", - description: "Import a pre-generated credential", - }, - { - name: "list-gateways", - description: "List all registered with gateways", - }, - { - name: "add-gateway", - description: "Add new gateway to this client", - }, - { - name: "switch-gateway", - description: "Change the currently active gateway. Note that you must have already registered with the new gateway!", - }, - { - name: "show-ticketbooks", - description: "Display information associated with the imported ticketbooks,", - }, - { - name: "build-info", - description: "Show build information of this binary", - }, - { - name: "completions", - description: "Generate shell completions", - }, - { - name: "generate-fig-spec", - description: "Generate Fig specification", - }, - { - name: "help", - description: "Print this message or the help of the given subcommand(s)", - }, - ], - }, - ], - options: [ - { - name: ["-c", "--config-env-file"], - description: "Path pointing to an env file that configures the client", - isRepeatable: true, - args: { - name: "config_env_file", - isOptional: true, - template: "filepaths", - }, - }, - { - name: "--no-banner", - description: "Flag used for disabling the printed banner in tty", - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - { - name: ["-V", "--version"], - description: "Print version", - }, - ], -}; - -export default completion; -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-client-import-credential-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-client-import-credential-help.md deleted file mode 100644 index 2e1b652e39e..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-client-import-credential-help.md +++ /dev/null @@ -1,15 +0,0 @@ -```sh -Import a pre-generated credential - -Usage: nym-client import-credential --id <--credential-data |--credential-path > - -Options: - --id - Id of client that is going to import the credential - --credential-data - Explicitly provide the encoded credential data (as base58) - --credential-path - Specifies the path to file containing binary credential data - -h, --help - Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-client-init-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-client-init-help.md deleted file mode 100644 index 3d58fe52c2f..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-client-init-help.md +++ /dev/null @@ -1,27 +0,0 @@ -```sh -Initialise a Nym client. Do this first! - -Usage: nym-client init [OPTIONS] --id - -Options: - --id - Id of client we want to create config for - --gateway - Id of the gateway we are going to connect to - --force-tls-gateway - Specifies whether the client will attempt to enforce tls connection to the desired gateway - --latency-based-selection - Specifies whether the new gateway should be determined based by latency as opposed to being chosen uniformly - --nym-apis - Comma separated list of rest endpoints of the API validators - --disable-socket - Whether to not start the websocket [possible values: true, false] - -p, --port - Port for the socket (if applicable) to listen on in all subsequent runs - --host - Ip for the socket (if applicable) to listen for requests - -o, --output - [default: text] [possible values: text, json] - -h, --help - Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-client-list-gateways-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-client-list-gateways-help.md deleted file mode 100644 index 2cddc84edc2..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-client-list-gateways-help.md +++ /dev/null @@ -1,10 +0,0 @@ -```sh -List all registered with gateways - -Usage: nym-client list-gateways [OPTIONS] --id - -Options: - --id Id of client we want to list gateways for - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-client-run-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-client-run-help.md deleted file mode 100644 index deb33eab623..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-client-run-help.md +++ /dev/null @@ -1,21 +0,0 @@ -```sh -Run the Nym client with provided configuration client optionally overriding set parameters - -Usage: nym-client run [OPTIONS] --id - -Options: - --id - Id of client we want to create config for - --gateway - Id of the gateway we want to connect to. If overridden, it is user's responsibility to ensure prior registration happened - --nym-apis - Comma separated list of rest endpoints of the API validators - --disable-socket - Whether to not start the websocket [possible values: true, false] - -p, --port - Port for the socket to listen on - --host - Ip for the socket (if applicable) to listen for requests - -h, --help - Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-client-switch-gateway-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-client-switch-gateway-help.md deleted file mode 100644 index 53277ffdd26..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-client-switch-gateway-help.md +++ /dev/null @@ -1,10 +0,0 @@ -```sh -Change the currently active gateway. Note that you must have already registered with the new gateway! - -Usage: nym-client switch-gateway --id --gateway-id - -Options: - --id Id of client we want to list gateways for - --gateway-id Id of the gateway we want to switch to - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-node-bonding-information-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-node-bonding-information-help.md deleted file mode 100644 index 8a54a3c8533..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-node-bonding-information-help.md +++ /dev/null @@ -1,12 +0,0 @@ -```sh -Show bonding information of this node depending on its currently selected mode - -Usage: nym-node bonding-information [OPTIONS] - -Options: - --id Id of the nym-node to use [env: NYMNODE_ID=] [default: default-nym-node] - --config-file Path to a configuration file of this node [env: NYMNODE_CONFIG=] - --mode [env: NYMNODE_MODE=] [possible values: mixnode, entry-gateway, exit-gateway] - -o, --output Specify the output format of the bonding information (`text` or `json`) [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-node-bonding-information.md b/documentation/autodoc/autodoc-generated-markdown/nym-node-bonding-information.md deleted file mode 100644 index edc2294fb21..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-node-bonding-information.md +++ /dev/null @@ -1,3 +0,0 @@ -```sh -2024-10-22T13:00:32.542213Z ERROR nym-node/src/config/upgrade_helpers.rs:16: Failed to finish upgrade - failed to load config file using path '/home/m/.nym/nym-nodes/default-nym-node/config/config.toml'. detailed message: No such file or directory (os error 2) -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-node-build-info-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-node-build-info-help.md deleted file mode 100644 index 0f369b85377..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-node-build-info-help.md +++ /dev/null @@ -1,9 +0,0 @@ -```sh -Show build information of this binary - -Usage: nym-node build-info [OPTIONS] - -Options: - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-node-build-info.md b/documentation/autodoc/autodoc-generated-markdown/nym-node-build-info.md deleted file mode 100644 index 8113e9c0a82..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-node-build-info.md +++ /dev/null @@ -1,13 +0,0 @@ -```sh - -Binary Name: nym-node -Build Timestamp: 2024-10-09T13:56:14.428750844Z -Build Version: 1.1.6 -Commit SHA: fac373c1db4fa5389ba61de7943c77023467bccb -Commit Date: 2024-10-09T14:59:40.000000000+02:00 -Commit Branch: max/new-docs-framework -rustc Version: 1.80.0 -rustc Channel: stable -cargo Profile: release - -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-node-commands.md b/documentation/autodoc/autodoc-generated-markdown/nym-node-commands.md deleted file mode 100644 index f305d5c6eb6..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-node-commands.md +++ /dev/null @@ -1,237 +0,0 @@ -# `nym-node` Binary Commands (Autogenerated) - -These docs are autogenerated by the [`autodocs`](https://github.com/nymtech/nym/tree/max/new-docs-framework/documentation/autodoc) script. -```sh -Usage: nym-node [OPTIONS] - -Commands: - build-info Show build information of this binary - bonding-information Show bonding information of this node depending on its currently selected mode - node-details Show details of this node - migrate Attempt to migrate an existing mixnode or gateway into a nym-node - run Start this nym-node - sign Use identity key of this node to sign provided message - help Print this message or the help of the given subcommand(s) - -Options: - -c, --config-env-file - Path pointing to an env file that configures the nym-node and overrides any preconfigured values [env: NYMNODE_CONFIG_ENV_FILE_ARG=] - --no-banner - Flag used for disabling the printed banner in tty [env: NYMNODE_NO_BANNER=] - -h, --help - Print help - -V, --version - Print version -``` - -### `build-info` -```sh -Show build information of this binary - -Usage: nym-node build-info [OPTIONS] - -Options: - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` - -### `bonding-information` -```sh -Show bonding information of this node depending on its currently selected mode - -Usage: nym-node bonding-information [OPTIONS] - -Options: - --id Id of the nym-node to use [env: NYMNODE_ID=] [default: default-nym-node] - --config-file Path to a configuration file of this node [env: NYMNODE_CONFIG=] - --mode [env: NYMNODE_MODE=] [possible values: mixnode, entry-gateway, exit-gateway] - -o, --output Specify the output format of the bonding information (`text` or `json`) [default: text] [possible values: text, json] - -h, --help Print help -``` - -### `node-details` -```sh -Show details of this node - -Usage: nym-node node-details [OPTIONS] - -Options: - --id Id of the nym-node to use [env: NYMNODE_ID=] [default: default-nym-node] - --config-file Path to a configuration file of this node [env: NYMNODE_CONFIG=] - -o, --output Specify the output format of the node details (`text` or `json`) [default: text] [possible values: text, json] - -h, --help Print help -``` - -### `migrate` -```sh -Attempt to migrate an existing mixnode or gateway into a nym-node - -Usage: nym-node migrate [OPTIONS] <--id |--config-file > - -Arguments: - Type of node (mixnode or gateway) to migrate into a nym-node [possible values: mixnode, gateway] - -Options: - --id - Id of the node that's going to get migrated - --config-file - Path to a configuration file of the node that's going to get migrated - --preserve-id - Specify whether to preserve id of the imported node - --public-ips - Comma separated list of public ip addresses that will be announced to the nym-api and subsequently to the clients. In nearly all circumstances, it's going to be identical to the address you're going to use for bonding [env: NYMNODE_PUBLIC_IPS=] - --hostname - Optional hostname associated with this gateway that will be announced to the nym-api and subsequently to the clients [env: NYMNODE_HOSTNAME=] - --location - Optional **physical** location of this node's server. Either full country name (e.g. 'Poland'), two-letter alpha2 (e.g. 'PL'), three-letter alpha3 (e.g. 'POL') or three-digit numeric-3 (e.g. '616') can be provided [env: NYMNODE_LOCATION=] - --http-bind-address - Socket address this node will use for binding its http API. default: `0.0.0.0:8080` [env: NYMNODE_HTTP_BIND_ADDRESS=] - --landing-page-assets-path - Path to assets directory of custom landing page of this node [env: NYMNODE_HTTP_LANDING_ASSETS=] - --http-access-token - An optional bearer token for accessing certain http endpoints. Currently only used for prometheus metrics [env: NYMNODE_HTTP_ACCESS_TOKEN=] - --expose-system-info - Specify whether basic system information should be exposed. default: true [env: NYMNODE_HTTP_EXPOSE_SYSTEM_INFO=] [possible values: true, false] - --expose-system-hardware - Specify whether basic system hardware information should be exposed. default: true [env: NYMNODE_HTTP_EXPOSE_SYSTEM_HARDWARE=] [possible values: true, false] - --expose-crypto-hardware - Specify whether detailed system crypto hardware information should be exposed. default: true [env: NYMNODE_HTTP_EXPOSE_CRYPTO_HARDWARE=] [possible values: true, false] - --mixnet-bind-address - Address this node will bind to for listening for mixnet packets default: `0.0.0.0:1789` [env: NYMNODE_MIXNET_BIND_ADDRESS=] - --mixnet-announce-port - If applicable, custom port announced in the self-described API that other clients and nodes will use. Useful when the node is behind a proxy [env: NYMNODE_MIXNET_ANNOUNCE_PORT=] - --nym-api-urls - Addresses to nym APIs from which the node gets the view of the network [env: NYMNODE_NYM_APIS=] - --nyxd-urls - Addresses to nyxd chain endpoint which the node will use for chain interactions [env: NYMNODE_NYXD=] - --wireguard-enabled - Specifies whether the wireguard service is enabled on this node [env: NYMNODE_WG_ENABLED=] [possible values: true, false] - --wireguard-bind-address - Socket address this node will use for binding its wireguard interface. default: `0.0.0.0:51822` [env: NYMNODE_WG_BIND_ADDRESS=] - --wireguard-private-ip - Private IP address of the wireguard gateway. default: `10.1.0.1` [env: NYMNODE_WG_IP=] - --wireguard-announced-port - Port announced to external clients wishing to connect to the wireguard interface. Useful in the instances where the node is behind a proxy [env: NYMNODE_WG_ANNOUNCED_PORT=] - --wireguard-private-network-prefix - The prefix denoting the maximum number of the clients that can be connected via Wireguard. The maximum value for IPv4 is 32 and for IPv6 is 128 [env: NYMNODE_WG_PRIVATE_NETWORK_PREFIX=] - --verloc-bind-address - Socket address this node will use for binding its verloc API. default: `0.0.0.0:1790` [env: NYMNODE_VERLOC_BIND_ADDRESS=] - --verloc-announce-port - If applicable, custom port announced in the self-described API that other clients and nodes will use. Useful when the node is behind a proxy [env: NYMNODE_VERLOC_ANNOUNCE_PORT=] - --entry-bind-address - Socket address this node will use for binding its client websocket API. default: `0.0.0.0:9000` [env: NYMNODE_ENTRY_BIND_ADDRESS=] - --announce-ws-port - Custom announced port for listening for websocket client traffic. If unspecified, the value from the `bind_address` will be used instead [env: NYMNODE_ENTRY_ANNOUNCE_WS_PORT=] - --announce-wss-port - If applicable, announced port for listening for secure websocket client traffic [env: NYMNODE_ENTRY_ANNOUNCE_WSS_PORT=] - --enforce-zk-nyms - Indicates whether this gateway is accepting only coconut credentials for accessing the mixnet or if it also accepts non-paying clients [env: NYMNODE_ENFORCE_ZK_NYMS=] [possible values: true, false] - --mnemonic - Custom cosmos wallet mnemonic used for zk-nym redemption. If no value is provided, a fresh mnemonic is going to be generated [env: NYMNODE_MNEMONIC=] - --upstream-exit-policy-url - Specifies the url for an upstream source of the exit policy used by this node [env: NYMNODE_UPSTREAM_EXIT_POLICY=] - --open-proxy - Specifies whether this exit node should run in 'open-proxy' mode and thus would attempt to resolve **ANY** request it receives [env: NYMNODE_OPEN_PROXY=] [possible values: true, false] - -h, --help - Print help -``` - -### `run` -```sh -Start this nym-node - -Usage: nym-node run [OPTIONS] - -Options: - --id - Id of the nym-node to use [env: NYMNODE_ID=] [default: default-nym-node] - --config-file - Path to a configuration file of this node [env: NYMNODE_CONFIG=] - --accept-operator-terms-and-conditions - Explicitly specify whether you agree with the terms and conditions of a nym node operator as defined at [env: NYMNODE_ACCEPT_OPERATOR_TERMS=] - --deny-init - Forbid a new node from being initialised if configuration file for the provided specification doesn't already exist [env: NYMNODE_DENY_INIT=] - --init-only - If this is a brand new nym-node, specify whether it should only be initialised without actually running the subprocesses [env: NYMNODE_INIT_ONLY=] - --local - Flag specifying this node will be running in a local setting [env: NYMNODE_LOCAL=] - --mode - Specifies the current mode of this nym-node [env: NYMNODE_MODE=] [possible values: mixnode, entry-gateway, exit-gateway] - -w, --write-changes - If this node has been initialised before, specify whether to write any new changes to the config file [env: NYMNODE_WRITE_CONFIG_CHANGES=] - --bonding-information-output - Specify output file for bonding information of this nym-node, i.e. its encoded keys. NOTE: the required bonding information is still a subject to change and this argument should be treated only as a preview of future features [env: NYMNODE_BONDING_INFORMATION_OUTPUT=] - -o, --output - Specify the output format of the bonding information (`text` or `json`) [env: NYMNODE_OUTPUT=] [default: text] [possible values: text, json] - --public-ips - Comma separated list of public ip addresses that will be announced to the nym-api and subsequently to the clients. In nearly all circumstances, it's going to be identical to the address you're going to use for bonding [env: NYMNODE_PUBLIC_IPS=] - --hostname - Optional hostname associated with this gateway that will be announced to the nym-api and subsequently to the clients [env: NYMNODE_HOSTNAME=] - --location - Optional **physical** location of this node's server. Either full country name (e.g. 'Poland'), two-letter alpha2 (e.g. 'PL'), three-letter alpha3 (e.g. 'POL') or three-digit numeric-3 (e.g. '616') can be provided [env: NYMNODE_LOCATION=] - --http-bind-address - Socket address this node will use for binding its http API. default: `0.0.0.0:8080` [env: NYMNODE_HTTP_BIND_ADDRESS=] - --landing-page-assets-path - Path to assets directory of custom landing page of this node [env: NYMNODE_HTTP_LANDING_ASSETS=] - --http-access-token - An optional bearer token for accessing certain http endpoints. Currently only used for prometheus metrics [env: NYMNODE_HTTP_ACCESS_TOKEN=] - --expose-system-info - Specify whether basic system information should be exposed. default: true [env: NYMNODE_HTTP_EXPOSE_SYSTEM_INFO=] [possible values: true, false] - --expose-system-hardware - Specify whether basic system hardware information should be exposed. default: true [env: NYMNODE_HTTP_EXPOSE_SYSTEM_HARDWARE=] [possible values: true, false] - --expose-crypto-hardware - Specify whether detailed system crypto hardware information should be exposed. default: true [env: NYMNODE_HTTP_EXPOSE_CRYPTO_HARDWARE=] [possible values: true, false] - --mixnet-bind-address - Address this node will bind to for listening for mixnet packets default: `0.0.0.0:1789` [env: NYMNODE_MIXNET_BIND_ADDRESS=] - --mixnet-announce-port - If applicable, custom port announced in the self-described API that other clients and nodes will use. Useful when the node is behind a proxy [env: NYMNODE_MIXNET_ANNOUNCE_PORT=] - --nym-api-urls - Addresses to nym APIs from which the node gets the view of the network [env: NYMNODE_NYM_APIS=] - --nyxd-urls - Addresses to nyxd chain endpoint which the node will use for chain interactions [env: NYMNODE_NYXD=] - --wireguard-enabled - Specifies whether the wireguard service is enabled on this node [env: NYMNODE_WG_ENABLED=] [possible values: true, false] - --wireguard-bind-address - Socket address this node will use for binding its wireguard interface. default: `0.0.0.0:51822` [env: NYMNODE_WG_BIND_ADDRESS=] - --wireguard-private-ip - Private IP address of the wireguard gateway. default: `10.1.0.1` [env: NYMNODE_WG_IP=] - --wireguard-announced-port - Port announced to external clients wishing to connect to the wireguard interface. Useful in the instances where the node is behind a proxy [env: NYMNODE_WG_ANNOUNCED_PORT=] - --wireguard-private-network-prefix - The prefix denoting the maximum number of the clients that can be connected via Wireguard. The maximum value for IPv4 is 32 and for IPv6 is 128 [env: NYMNODE_WG_PRIVATE_NETWORK_PREFIX=] - --verloc-bind-address - Socket address this node will use for binding its verloc API. default: `0.0.0.0:1790` [env: NYMNODE_VERLOC_BIND_ADDRESS=] - --verloc-announce-port - If applicable, custom port announced in the self-described API that other clients and nodes will use. Useful when the node is behind a proxy [env: NYMNODE_VERLOC_ANNOUNCE_PORT=] - --entry-bind-address - Socket address this node will use for binding its client websocket API. default: `0.0.0.0:9000` [env: NYMNODE_ENTRY_BIND_ADDRESS=] - --announce-ws-port - Custom announced port for listening for websocket client traffic. If unspecified, the value from the `bind_address` will be used instead [env: NYMNODE_ENTRY_ANNOUNCE_WS_PORT=] - --announce-wss-port - If applicable, announced port for listening for secure websocket client traffic [env: NYMNODE_ENTRY_ANNOUNCE_WSS_PORT=] - --enforce-zk-nyms - Indicates whether this gateway is accepting only coconut credentials for accessing the mixnet or if it also accepts non-paying clients [env: NYMNODE_ENFORCE_ZK_NYMS=] [possible values: true, false] - --mnemonic - Custom cosmos wallet mnemonic used for zk-nym redemption. If no value is provided, a fresh mnemonic is going to be generated [env: NYMNODE_MNEMONIC=] - --upstream-exit-policy-url - Specifies the url for an upstream source of the exit policy used by this node [env: NYMNODE_UPSTREAM_EXIT_POLICY=] - --open-proxy - Specifies whether this exit node should run in 'open-proxy' mode and thus would attempt to resolve **ANY** request it receives [env: NYMNODE_OPEN_PROXY=] [possible values: true, false] - -h, --help - Print help -``` - -### `sign` -```sh -Use identity key of this node to sign provided message - -Usage: nym-node sign [OPTIONS] <--text |--contract-msg > - -Options: - --id Id of the nym-node to use [env: NYMNODE_ID=] [default: default-nym-node] - --config-file Path to a configuration file of this node [env: NYMNODE_CONFIG=] - --text Signs an arbitrary piece of text with your identity key - --contract-msg Signs a transaction-specific payload, that is going to be sent to the smart contract, with your identity key - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-node-migrate-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-node-migrate-help.md deleted file mode 100644 index ee32ab638bd..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-node-migrate-help.md +++ /dev/null @@ -1,68 +0,0 @@ -```sh -Attempt to migrate an existing mixnode or gateway into a nym-node - -Usage: nym-node migrate [OPTIONS] <--id |--config-file > - -Arguments: - Type of node (mixnode or gateway) to migrate into a nym-node [possible values: mixnode, gateway] - -Options: - --id - Id of the node that's going to get migrated - --config-file - Path to a configuration file of the node that's going to get migrated - --preserve-id - Specify whether to preserve id of the imported node - --public-ips - Comma separated list of public ip addresses that will be announced to the nym-api and subsequently to the clients. In nearly all circumstances, it's going to be identical to the address you're going to use for bonding [env: NYMNODE_PUBLIC_IPS=] - --hostname - Optional hostname associated with this gateway that will be announced to the nym-api and subsequently to the clients [env: NYMNODE_HOSTNAME=] - --location - Optional **physical** location of this node's server. Either full country name (e.g. 'Poland'), two-letter alpha2 (e.g. 'PL'), three-letter alpha3 (e.g. 'POL') or three-digit numeric-3 (e.g. '616') can be provided [env: NYMNODE_LOCATION=] - --http-bind-address - Socket address this node will use for binding its http API. default: `0.0.0.0:8080` [env: NYMNODE_HTTP_BIND_ADDRESS=] - --landing-page-assets-path - Path to assets directory of custom landing page of this node [env: NYMNODE_HTTP_LANDING_ASSETS=] - --http-access-token - An optional bearer token for accessing certain http endpoints. Currently only used for prometheus metrics [env: NYMNODE_HTTP_ACCESS_TOKEN=] - --expose-system-info - Specify whether basic system information should be exposed. default: true [env: NYMNODE_HTTP_EXPOSE_SYSTEM_INFO=] [possible values: true, false] - --expose-system-hardware - Specify whether basic system hardware information should be exposed. default: true [env: NYMNODE_HTTP_EXPOSE_SYSTEM_HARDWARE=] [possible values: true, false] - --expose-crypto-hardware - Specify whether detailed system crypto hardware information should be exposed. default: true [env: NYMNODE_HTTP_EXPOSE_CRYPTO_HARDWARE=] [possible values: true, false] - --mixnet-bind-address - Address this node will bind to for listening for mixnet packets default: `0.0.0.0:1789` [env: NYMNODE_MIXNET_BIND_ADDRESS=] - --nym-api-urls - Addresses to nym APIs from which the node gets the view of the network [env: NYMNODE_NYM_APIS=] - --nyxd-urls - Addresses to nyxd chain endpoint which the node will use for chain interactions [env: NYMNODE_NYXD=] - --wireguard-enabled - Specifies whether the wireguard service is enabled on this node [env: NYMNODE_WG_ENABLED=] [possible values: true, false] - --wireguard-bind-address - Socket address this node will use for binding its wireguard interface. default: `0.0.0.0:51822` [env: NYMNODE_WG_BIND_ADDRESS=] - --wireguard-private-ip - Private IP address of the wireguard gateway. default: `10.1.0.1` [env: NYMNODE_WG_IP=] - --wireguard-announced-port - Port announced to external clients wishing to connect to the wireguard interface. Useful in the instances where the node is behind a proxy [env: NYMNODE_WG_ANNOUNCED_PORT=] - --wireguard-private-network-prefix - The prefix denoting the maximum number of the clients that can be connected via Wireguard. The maximum value for IPv4 is 32 and for IPv6 is 128 [env: NYMNODE_WG_PRIVATE_NETWORK_PREFIX=] - --verloc-bind-address - Socket address this node will use for binding its verloc API. default: `0.0.0.0:1790` [env: NYMNODE_VERLOC_BIND_ADDRESS=] - --entry-bind-address - Socket address this node will use for binding its client websocket API. default: `0.0.0.0:9000` [env: NYMNODE_ENTRY_BIND_ADDRESS=] - --announce-ws-port - Custom announced port for listening for websocket client traffic. If unspecified, the value from the `bind_address` will be used instead [env: NYMNODE_ENTRY_ANNOUNCE_WS_PORT=] - --announce-wss-port - If applicable, announced port for listening for secure websocket client traffic [env: NYMNODE_ENTRY_ANNOUNCE_WSS_PORT=] - --enforce-zk-nyms - Indicates whether this gateway is accepting only coconut credentials for accessing the mixnet or if it also accepts non-paying clients [env: NYMNODE_ENFORCE_ZK_NYMS=] [possible values: true, false] - --mnemonic - Custom cosmos wallet mnemonic used for zk-nym redemption. If no value is provided, a fresh mnemonic is going to be generated [env: NYMNODE_MNEMONIC=] - --upstream-exit-policy-url - Specifies the url for an upstream source of the exit policy used by this node [env: NYMNODE_UPSTREAM_EXIT_POLICY=] - --open-proxy - Specifies whether this exit node should run in 'open-proxy' mode and thus would attempt to resolve **ANY** request it receives [env: NYMNODE_OPEN_PROXY=] [possible values: true, false] - -h, --help - Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-node-node-details-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-node-node-details-help.md deleted file mode 100644 index cad77bc2a86..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-node-node-details-help.md +++ /dev/null @@ -1,11 +0,0 @@ -```sh -Show details of this node - -Usage: nym-node node-details [OPTIONS] - -Options: - --id Id of the nym-node to use [env: NYMNODE_ID=] [default: default-nym-node] - --config-file Path to a configuration file of this node [env: NYMNODE_CONFIG=] - -o, --output Specify the output format of the node details (`text` or `json`) [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-node-node-details.md b/documentation/autodoc/autodoc-generated-markdown/nym-node-node-details.md deleted file mode 100644 index c2b0a34c97d..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-node-node-details.md +++ /dev/null @@ -1,3 +0,0 @@ -```sh -2024-10-22T13:00:32.562750Z ERROR nym-node/src/config/upgrade_helpers.rs:16: Failed to finish upgrade - failed to load config file using path '/home/m/.nym/nym-nodes/default-nym-node/config/config.toml'. detailed message: No such file or directory (os error 2) -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-node-sign-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-node-sign-help.md deleted file mode 100644 index 5d26baf2f21..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-node-sign-help.md +++ /dev/null @@ -1,13 +0,0 @@ -```sh -Use identity key of this node to sign provided message - -Usage: nym-node sign [OPTIONS] <--text |--contract-msg > - -Options: - --id Id of the nym-node to use [env: NYMNODE_ID=] [default: default-nym-node] - --config-file Path to a configuration file of this node [env: NYMNODE_CONFIG=] - --text Signs an arbitrary piece of text with your identity key - --contract-msg Signs a transaction-specific payload, that is going to be sent to the smart contract, with your identity key - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-add-gateway-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-add-gateway-help.md deleted file mode 100644 index ee209bdcb09..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-add-gateway-help.md +++ /dev/null @@ -1,15 +0,0 @@ -```sh -Add new gateway to this client - -Usage: nym-socks5-client add-gateway [OPTIONS] --id - -Options: - --id Id of client we want to add gateway for - --gateway-id Explicitly specify id of the gateway to register with. If unspecified, a random gateway will be chosen instead - --force-tls-gateway Specifies whether the client will attempt to enforce tls connection to the desired gateway - --latency-based-selection Specifies whether the new gateway should be determined based by latency as opposed to being chosen uniformly - --set-active Specify whether this new gateway should be set as the active one - --nym-apis Comma separated list of rest endpoints of the API validators - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-build-info-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-build-info-help.md deleted file mode 100644 index 000204a113f..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-build-info-help.md +++ /dev/null @@ -1,9 +0,0 @@ -```sh -Show build information of this binary - -Usage: nym-socks5-client build-info [OPTIONS] - -Options: - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-build-info.md b/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-build-info.md deleted file mode 100644 index dbf3e77072a..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-build-info.md +++ /dev/null @@ -1,13 +0,0 @@ -```sh - -Binary Name: nym-socks5-client -Build Timestamp: 2024-10-09T13:56:14.428750844Z -Build Version: 1.1.39 -Commit SHA: fac373c1db4fa5389ba61de7943c77023467bccb -Commit Date: 2024-10-09T14:59:40.000000000+02:00 -Commit Branch: max/new-docs-framework -rustc Version: 1.80.0 -rustc Channel: stable -cargo Profile: release - -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-completions-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-completions-help.md deleted file mode 100644 index 8b780c6f179..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-completions-help.md +++ /dev/null @@ -1,11 +0,0 @@ -```sh -Generate shell completions - -Usage: nym-socks5-client completions - -Arguments: - [possible values: bash, elvish, fish, power-shell, zsh] - -Options: - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-generate-fig-spec-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-generate-fig-spec-help.md deleted file mode 100644 index 94340b58987..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-generate-fig-spec-help.md +++ /dev/null @@ -1,8 +0,0 @@ -```sh -Generate Fig specification - -Usage: nym-socks5-client generate-fig-spec - -Options: - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-generate-fig-spec.md b/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-generate-fig-spec.md deleted file mode 100644 index b76ef9d5582..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-generate-fig-spec.md +++ /dev/null @@ -1,619 +0,0 @@ -```sh -const completion: Fig.Spec = { - name: "nym-socks5-client", - description: "A SOCKS5 localhost proxy that converts incoming messages to Sphinx and sends them to a Nym address", - subcommands: [ - { - name: "init", - description: "Initialise a Nym client. Do this first!", - options: [ - { - name: "--id", - description: "Id of client we want to create config for", - isRepeatable: true, - args: { - name: "id", - }, - }, - { - name: "--gateway", - description: "Id of the gateway we are going to connect to", - isRepeatable: true, - args: { - name: "gateway", - isOptional: true, - }, - }, - { - name: "--nyxd-urls", - description: "Comma separated list of rest endpoints of the nyxd validators", - hidden: true, - isRepeatable: true, - args: { - name: "nyxd_urls", - isOptional: true, - }, - }, - { - name: "--nym-apis", - description: "Comma separated list of rest endpoints of the API validators", - isRepeatable: true, - args: { - name: "nym_apis", - isOptional: true, - }, - }, - { - name: "--custom-mixnet", - description: "Path to .json file containing custom network specification", - hidden: true, - isRepeatable: true, - args: { - name: "custom_mixnet", - isOptional: true, - template: "filepaths", - }, - }, - { - name: "--enabled-credentials-mode", - description: "Set this client to work in a enabled credentials mode that would attempt to use gateway with bandwidth credential requirement", - hidden: true, - isRepeatable: true, - args: { - name: "enabled_credentials_mode", - isOptional: true, - suggestions: [ - "true", - "false", - ], - }, - }, - { - name: "--provider", - description: "Address of the socks5 provider to send messages to", - isRepeatable: true, - args: { - name: "provider", - }, - }, - { - name: "--use-reply-surbs", - description: "Specifies whether this client is going to use an anonymous sender tag for communication with the service provider. While this is going to hide its actual address information, it will make the actual communication slower and consume nearly double the bandwidth as it will require sending reply SURBs", - isRepeatable: true, - args: { - name: "use_reply_surbs", - isOptional: true, - suggestions: [ - "true", - "false", - ], - }, - }, - { - name: ["-p", "--port"], - description: "Port for the socket to listen on in all subsequent runs", - isRepeatable: true, - args: { - name: "port", - isOptional: true, - }, - }, - { - name: "--host", - description: "The custom host on which the socks5 client will be listening for requests", - isRepeatable: true, - args: { - name: "host", - isOptional: true, - }, - }, - { - name: ["-o", "--output"], - isRepeatable: true, - args: { - name: "output", - isOptional: true, - suggestions: [ - "text", - "json", - ], - }, - }, - { - name: "--force-tls-gateway", - description: "Specifies whether the client will attempt to enforce tls connection to the desired gateway", - }, - { - name: "--latency-based-selection", - description: "Specifies whether the new gateway should be determined based by latency as opposed to being chosen uniformly", - exclusiveOn: [ - "--gateway", - ], - }, - { - name: "--fastmode", - description: "Mostly debug-related option to increase default traffic rate so that you would not need to modify config post init", - }, - { - name: "--no-cover", - description: "Disable loop cover traffic and the Poisson rate limiter (for debugging only)", - }, - { - name: ["-h", "--help"], - description: "Print help (see more with '--help')", - }, - ], - }, - { - name: "run", - description: "Run the Nym client with provided configuration client optionally overriding set parameters", - options: [ - { - name: "--id", - description: "Id of client we want to create config for", - isRepeatable: true, - args: { - name: "id", - }, - }, - { - name: "--gateway", - description: "Id of the gateway we want to connect to. If overridden, it is user's responsibility to ensure prior registration happened", - isRepeatable: true, - args: { - name: "gateway", - isOptional: true, - }, - }, - { - name: "--nyxd-urls", - description: "Comma separated list of rest endpoints of the nyxd validators", - hidden: true, - isRepeatable: true, - args: { - name: "nyxd_urls", - isOptional: true, - }, - }, - { - name: "--nym-apis", - description: "Comma separated list of rest endpoints of the API validators", - isRepeatable: true, - args: { - name: "nym_apis", - isOptional: true, - }, - }, - { - name: "--custom-mixnet", - description: "Path to .json file containing custom network specification", - hidden: true, - isRepeatable: true, - args: { - name: "custom_mixnet", - isOptional: true, - template: "filepaths", - }, - }, - { - name: "--enabled-credentials-mode", - description: "Set this client to work in a enabled credentials mode that would attempt to use gateway with bandwidth credential requirement", - hidden: true, - isRepeatable: true, - args: { - name: "enabled_credentials_mode", - isOptional: true, - suggestions: [ - "true", - "false", - ], - }, - }, - { - name: "--use-anonymous-replies", - description: "Specifies whether this client is going to use an anonymous sender tag for communication with the service provider. While this is going to hide its actual address information, it will make the actual communication slower and consume nearly double the bandwidth as it will require sending reply SURBs", - isRepeatable: true, - args: { - name: "use_anonymous_replies", - isOptional: true, - suggestions: [ - "true", - "false", - ], - }, - }, - { - name: "--provider", - description: "Address of the socks5 provider to send messages to", - isRepeatable: true, - args: { - name: "provider", - isOptional: true, - }, - }, - { - name: ["-p", "--port"], - description: "Port for the socket to listen on", - isRepeatable: true, - args: { - name: "port", - isOptional: true, - }, - }, - { - name: "--host", - description: "The custom host on which the socks5 client will be listening for requests", - isRepeatable: true, - args: { - name: "host", - isOptional: true, - }, - }, - { - name: "--geo-routing", - description: "Set geo-aware mixnode selection when sending mixnet traffic, for experiments only", - hidden: true, - isRepeatable: true, - args: { - name: "geo_routing", - isOptional: true, - }, - }, - { - name: "--fastmode", - description: "Mostly debug-related option to increase default traffic rate so that you would not need to modify config post init", - }, - { - name: "--no-cover", - description: "Disable loop cover traffic and the Poisson rate limiter (for debugging only)", - }, - { - name: "--medium-toggle", - description: "Enable medium mixnet traffic, for experiments only. This includes things like disabling cover traffic, no per hop delays, etc", - }, - { - name: "--outfox", - }, - { - name: ["-h", "--help"], - description: "Print help (see more with '--help')", - }, - ], - }, - { - name: "import-credential", - description: "Import a pre-generated credential", - options: [ - { - name: "--id", - description: "Id of client that is going to import the credential", - isRepeatable: true, - args: { - name: "id", - }, - }, - { - name: "--credential-data", - description: "Explicitly provide the encoded credential data (as base58)", - isRepeatable: true, - args: { - name: "credential_data", - isOptional: true, - }, - }, - { - name: "--credential-path", - description: "Specifies the path to file containing binary credential data", - isRepeatable: true, - args: { - name: "credential_path", - isOptional: true, - template: "filepaths", - }, - }, - { - name: "--version", - hidden: true, - isRepeatable: true, - args: { - name: "version", - isOptional: true, - }, - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "list-gateways", - description: "List all registered with gateways", - options: [ - { - name: "--id", - description: "Id of client we want to list gateways for", - isRepeatable: true, - args: { - name: "id", - }, - }, - { - name: ["-o", "--output"], - isRepeatable: true, - args: { - name: "output", - isOptional: true, - suggestions: [ - "text", - "json", - ], - }, - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "add-gateway", - description: "Add new gateway to this client", - options: [ - { - name: "--id", - description: "Id of client we want to add gateway for", - isRepeatable: true, - args: { - name: "id", - }, - }, - { - name: "--gateway-id", - description: "Explicitly specify id of the gateway to register with. If unspecified, a random gateway will be chosen instead", - isRepeatable: true, - args: { - name: "gateway_id", - isOptional: true, - }, - }, - { - name: "--nym-apis", - description: "Comma separated list of rest endpoints of the API validators", - isRepeatable: true, - args: { - name: "nym_apis", - isOptional: true, - }, - }, - { - name: "--custom-mixnet", - description: "Path to .json file containing custom network specification", - hidden: true, - isRepeatable: true, - args: { - name: "custom_mixnet", - isOptional: true, - template: "filepaths", - }, - }, - { - name: ["-o", "--output"], - isRepeatable: true, - args: { - name: "output", - isOptional: true, - suggestions: [ - "text", - "json", - ], - }, - }, - { - name: "--force-tls-gateway", - description: "Specifies whether the client will attempt to enforce tls connection to the desired gateway", - }, - { - name: "--latency-based-selection", - description: "Specifies whether the new gateway should be determined based by latency as opposed to being chosen uniformly", - exclusiveOn: [ - "--gateway-id", - ], - }, - { - name: "--set-active", - description: "Specify whether this new gateway should be set as the active one", - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "switch-gateway", - description: "Change the currently active gateway. Note that you must have already registered with the new gateway!", - options: [ - { - name: "--id", - description: "Id of client we want to list gateways for", - isRepeatable: true, - args: { - name: "id", - }, - }, - { - name: "--gateway-id", - description: "Id of the gateway we want to switch to", - isRepeatable: true, - args: { - name: "gateway_id", - }, - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "show-ticketbooks", - description: "Display information associated with the imported ticketbooks,", - options: [ - { - name: "--id", - description: "Id of client that is going to display the ticketbook information", - isRepeatable: true, - args: { - name: "id", - }, - }, - { - name: ["-o", "--output"], - isRepeatable: true, - args: { - name: "output", - isOptional: true, - suggestions: [ - "text", - "json", - ], - }, - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "build-info", - description: "Show build information of this binary", - options: [ - { - name: ["-o", "--output"], - isRepeatable: true, - args: { - name: "output", - isOptional: true, - suggestions: [ - "text", - "json", - ], - }, - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "completions", - description: "Generate shell completions", - options: [ - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - args: { - name: "shell", - suggestions: [ - "bash", - "elvish", - "fish", - "power-shell", - "zsh", - ], - }, - }, - { - name: "generate-fig-spec", - description: "Generate Fig specification", - options: [ - { - name: ["-h", "--help"], - description: "Print help", - }, - ], - }, - { - name: "help", - description: "Print this message or the help of the given subcommand(s)", - subcommands: [ - { - name: "init", - description: "Initialise a Nym client. Do this first!", - }, - { - name: "run", - description: "Run the Nym client with provided configuration client optionally overriding set parameters", - }, - { - name: "import-credential", - description: "Import a pre-generated credential", - }, - { - name: "list-gateways", - description: "List all registered with gateways", - }, - { - name: "add-gateway", - description: "Add new gateway to this client", - }, - { - name: "switch-gateway", - description: "Change the currently active gateway. Note that you must have already registered with the new gateway!", - }, - { - name: "show-ticketbooks", - description: "Display information associated with the imported ticketbooks,", - }, - { - name: "build-info", - description: "Show build information of this binary", - }, - { - name: "completions", - description: "Generate shell completions", - }, - { - name: "generate-fig-spec", - description: "Generate Fig specification", - }, - { - name: "help", - description: "Print this message or the help of the given subcommand(s)", - }, - ], - }, - ], - options: [ - { - name: ["-c", "--config-env-file"], - description: "Path pointing to an env file that configures the client", - isRepeatable: true, - args: { - name: "config_env_file", - isOptional: true, - template: "filepaths", - }, - }, - { - name: "--no-banner", - description: "Flag used for disabling the printed banner in tty", - }, - { - name: ["-h", "--help"], - description: "Print help", - }, - { - name: ["-V", "--version"], - description: "Print version", - }, - ], -}; - -export default completion; -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-import-credential-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-import-credential-help.md deleted file mode 100644 index 2f7303c2e35..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-import-credential-help.md +++ /dev/null @@ -1,15 +0,0 @@ -```sh -Import a pre-generated credential - -Usage: nym-socks5-client import-credential --id <--credential-data |--credential-path > - -Options: - --id - Id of client that is going to import the credential - --credential-data - Explicitly provide the encoded credential data (as base58) - --credential-path - Specifies the path to file containing binary credential data - -h, --help - Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-init-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-init-help.md deleted file mode 100644 index b69ef5f77c2..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-init-help.md +++ /dev/null @@ -1,44 +0,0 @@ -```sh -Initialise a Nym client. Do this first! - -Usage: nym-socks5-client init [OPTIONS] --id --provider - -Options: - --id - Id of client we want to create config for - - --gateway - Id of the gateway we are going to connect to - - --force-tls-gateway - Specifies whether the client will attempt to enforce tls connection to the desired gateway - - --latency-based-selection - Specifies whether the new gateway should be determined based by latency as opposed to being chosen uniformly - - --nym-apis - Comma separated list of rest endpoints of the API validators - - --provider - Address of the socks5 provider to send messages to - - --use-reply-surbs - Specifies whether this client is going to use an anonymous sender tag for communication with the service provider. While this is going to hide its actual address information, it will make the actual communication slower and consume nearly double the bandwidth as it will require sending reply SURBs. - - Note that some service providers might not support this. - - [possible values: true, false] - - -p, --port - Port for the socket to listen on in all subsequent runs - - --host - The custom host on which the socks5 client will be listening for requests - - -o, --output - [default: text] - [possible values: text, json] - - -h, --help - Print help (see a summary with '-h') -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-list-gateways-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-list-gateways-help.md deleted file mode 100644 index 86921bcf676..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-list-gateways-help.md +++ /dev/null @@ -1,10 +0,0 @@ -```sh -List all registered with gateways - -Usage: nym-socks5-client list-gateways [OPTIONS] --id - -Options: - --id Id of client we want to list gateways for - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-run-help.md b/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-run-help.md deleted file mode 100644 index 2ffccb39ce1..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nym-socks5-client-run-help.md +++ /dev/null @@ -1,34 +0,0 @@ -```sh -Run the Nym client with provided configuration client optionally overriding set parameters - -Usage: nym-socks5-client run [OPTIONS] --id - -Options: - --id - Id of client we want to create config for - - --gateway - Id of the gateway we want to connect to. If overridden, it is user's responsibility to ensure prior registration happened - - --nym-apis - Comma separated list of rest endpoints of the API validators - - --use-anonymous-replies - Specifies whether this client is going to use an anonymous sender tag for communication with the service provider. While this is going to hide its actual address information, it will make the actual communication slower and consume nearly double the bandwidth as it will require sending reply SURBs. - - Note that some service providers might not support this. - - [possible values: true, false] - - --provider - Address of the socks5 provider to send messages to - - -p, --port - Port for the socket to listen on - - --host - The custom host on which the socks5 client will be listening for requests - - -h, --help - Print help (see a summary with '-h') -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nymvisor-add-upgrade-help.md b/documentation/autodoc/autodoc-generated-markdown/nymvisor-add-upgrade-help.md deleted file mode 100644 index b88f5e10523..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nymvisor-add-upgrade-help.md +++ /dev/null @@ -1,19 +0,0 @@ -```sh -Queues up another upgrade for the associated daemon - -Usage: nymvisor add-upgrade [OPTIONS] --upgrade-name - -Arguments: - Path to the daemon's upgrade executable - -Options: - --upgrade-name Name of this upgrade - --force Overwrite existing upgrade binary / upgrade-info.json file - --add-binary Indicate that this command should only add binary to an *existing* scheduled upgrade - --now Force the upgrade to happen immediately - --publish-date Specifies the publish date metadata field of this upgrade. If unset, the current time will be used - --upgrade-time Specifies the time at which the provided upgrade will be performed (RFC3339 formatted). If left unset, the upgrade will be performed in 15min - --upgrade-delay Specifies delay until the provided upgrade is going to get performed. If let unset, the upgrade will be performed in 15min - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nymvisor-build-info-help.md b/documentation/autodoc/autodoc-generated-markdown/nymvisor-build-info-help.md deleted file mode 100644 index 3a5ccb9b5bf..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nymvisor-build-info-help.md +++ /dev/null @@ -1,9 +0,0 @@ -```sh -Show build information of this binary - -Usage: nymvisor build-info [OPTIONS] - -Options: - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nymvisor-build-info.md b/documentation/autodoc/autodoc-generated-markdown/nymvisor-build-info.md deleted file mode 100644 index f0a00320428..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nymvisor-build-info.md +++ /dev/null @@ -1,13 +0,0 @@ -```sh - -Binary Name: nymvisor -Build Timestamp: 2024-10-09T13:56:14.428750844Z -Build Version: 0.1.5 -Commit SHA: fac373c1db4fa5389ba61de7943c77023467bccb -Commit Date: 2024-10-09T14:59:40.000000000+02:00 -Commit Branch: max/new-docs-framework -rustc Version: 1.80.0 -rustc Channel: stable -cargo Profile: release - -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nymvisor-commands.md b/documentation/autodoc/autodoc-generated-markdown/nymvisor-commands.md deleted file mode 100644 index 9d0ee36f56b..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nymvisor-commands.md +++ /dev/null @@ -1,154 +0,0 @@ -# `nymvisor` Binary Commands (Autogenerated) - -These docs are autogenerated by the [`autodocs`](https://github.com/nymtech/nym/tree/max/new-docs-framework/documentation/autodoc) script. -```sh -Usage: nymvisor [OPTIONS] - -Commands: - init Initialise a nymvisor instance with persistent Config.toml file - run Run the associated daemon with the preconfigured settings - build-info Show build information of this binary - daemon-build-info Show build information of the associated daemon - add-upgrade Queues up another upgrade for the associated daemon - config Show configuration options being used by this instance of nymvisor - help Print this message or the help of the given subcommand(s) - -Options: - -c, --config-env-file - Path pointing to an env file that configures the nymvisor and overrides any preconfigured values - -h, --help - Print help - -V, --version - Print version -``` - -### `init` -```sh -Initialise a nymvisor instance with persistent Config.toml file - -Usage: nymvisor init [OPTIONS] - -Arguments: - Path to the daemon's executable - -Options: - --id - ID specifies the human readable ID of this particular nymvisor instance. Can be overridden with $NYMVISOR_ID environmental variable - --upstream-base-upgrade-url - Sets the base url of the upstream source for obtaining upgrade information for the deaemon. It will be used fo constructing the full url, i.e. $NYMVISOR_UPSTREAM_BASE_UPGRADE_URL/$DAEMON_NAME/upgrade-info.json Can be overridden with $NYMVISOR_UPSTREAM_BASE_UPGRADE_URL environmental variable - --upstream-polling-rate - Specifies the rate of polling the upstream url for upgrade information. default: 1h Can be overridden with $NYMVISOR_UPSTREAM_POLLING_RATE - --disable-nymvisor-logs - If enabled, this will disable `nymvisor` logs (but not the underlying process) Can be overridden with $NYMVISOR_DISABLE_LOGS environmental variable - --upgrade-data-directory - Set custom directory for upgrade data - binaries and upgrade plans. If not set, the global nymvisors' data directory will be used instead. Can be overridden with $NYMVISOR_UPGRADE_DATA_DIRECTORY environmental variable - --daemon-home - The location where the `nymvisor/` directory is kept that contains the auxiliary files associated with the underlying daemon, such as any backups or current version information. (e.g. $HOME/.nym/nym-api/my-nym-api, $HOME/.nym/mixnodes/my-mixnode, etc.). Can be overridden with $DAEMON_HOME environmental variable - --daemon-absolute-upstream-upgrade-url - Override url to the upstream source for upgrade plans for this daeamon. The Url has to point to an endpoint containing a valid [`UpgradeInfo`] json. Note: if set this takes precedence over `upstream_base_upgrade_url` Can be overridden with $DAEMON_ABSOLUTE_UPSTREAM_UPGRADE_URL environmental variable - --allow-download-upgrade-binaries - If set to true, this will enable auto-downloading of new binaries using the url provided in the `upgrade-info.json` Can be overridden with $DAEMON_ALLOW_BINARIES_DOWNLOAD environmental variable [possible values: true, false] - --enforce-download-checksum - If enabled nymvisor will require that a checksum is provided in the upgrade plan for the binary to be downloaded. If disabled, nymvisor will not require a checksum to be provided, but still check the checksum if one is provided. Can be overridden with $DAEMON_ENFORCE_DOWNLOAD_CHECKSUM environmental variable [possible values: true, false] - --restart-daemon-after-upgrade - If enabled, nymvisor will restart the subprocess with the same command-line arguments and flags (but with the new binary) after a successful upgrade. Otherwise (if disabled), nymvisor will stop running after an upgrade and will require the system administrator to manually restart it. Note restart is only after the upgrade and does not auto-restart the subprocess after an error occurs. Can be overridden with $DAEMON_RESTART_AFTER_UPGRADE environmental variable [possible values: true, false] - --restart-daemon-on-failure - If enabled, nymvisor will restart the subprocess with the same command-line arguments and flags after it has crashed Can be overridden with $DAEMON_RESTART_ON_FAILURE environmental variable - --on-failure-daemon-restart-delay - If `restart_on_failure` is enabled, the following value defines the amount of time `nymvisor` shall wait before restarting the subprocess. Can be overridden with $DAEMON_FAILURE_RESTART_DELAY environmental variable - --max-daemon-startup-failures - Defines the maximum number of startup failures the subprocess can experience in a quick succession before no further restarts will be attempted and `nymvisor` will exit. Can be overridden with $DAEMON_MAX_STARTUP_FAILURES environmental variable - --startup-period-duration - Defines the length of time during which the subprocess is still considered to be in the startup phase when its failures are going to be considered in `max_startup_failures`. Can be overridden with $DAEMON_STARTUP_PERIOD_DURATION environmental variable - --daemon-shutdown-grace-period - Specifies the amount of time `nymvisor` is willing to wait for the subprocess to undergo graceful shutdown after receiving an interrupt (for either an upgrade or shutdown of the `nymvisor` itself) Once the time passes, a kill signal is going to be sent instead. Can be overridden with $DAEMON_SHUTDOWN_GRACE_PERIOD environmental variable - --daemon-backup-data-directory - Set custom backup directory for daemon data. If not set, the daemon's home directory will be used instead. Can be overridden with $DAEMON_BACKUP_DATA_DIRECTORY environmental variable - --unsafe-skip-backup - If enabled, `nymvisor` will perform upgrades directly without performing any backups. default: false Can be overridden with $DAEMON_UNSAFE_SKIP_BACKUP environmental variable - -o, --output - [default: text] [possible values: text, json] - -h, --help - Print help -``` - -### `run` -```sh -Run the associated daemon with the preconfigured settings - -Usage: nymvisor run [DAEMON_ARGS]... - -Arguments: - [DAEMON_ARGS]... - -Options: - -h, --help Print help -``` - -### `build-info` -```sh -Show build information of this binary - -Usage: nymvisor build-info [OPTIONS] - -Options: - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` -Example output: -```sh - -Binary Name: nymvisor -Build Timestamp: 2024-10-29T09:48:31.988049207Z -Build Version: 0.1.8 -Commit SHA: 299552881810511273af13eb135297a4cf7a38de -Commit Date: 2024-10-29T10:48:07.000000000+01:00 -Commit Branch: max/new-docs-framework -rustc Version: 1.80.0 -rustc Channel: stable -cargo Profile: release - -``` - -### `daemon-build-info` -```sh -Show build information of the associated daemon - -Usage: nymvisor daemon-build-info [OPTIONS] - -Options: - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` - -### `add-upgrade` -```sh -Queues up another upgrade for the associated daemon - -Usage: nymvisor add-upgrade [OPTIONS] --upgrade-name - -Arguments: - Path to the daemon's upgrade executable - -Options: - --upgrade-name Name of this upgrade - --force Overwrite existing upgrade binary / upgrade-info.json file - --add-binary Indicate that this command should only add binary to an *existing* scheduled upgrade - --now Force the upgrade to happen immediately - --publish-date Specifies the publish date metadata field of this upgrade. If unset, the current time will be used - --upgrade-time Specifies the time at which the provided upgrade will be performed (RFC3339 formatted). If left unset, the upgrade will be performed in 15min - --upgrade-delay Specifies delay until the provided upgrade is going to get performed. If let unset, the upgrade will be performed in 15min - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` - -### `config` -```sh -Show configuration options being used by this instance of nymvisor - -Usage: nymvisor config [OPTIONS] - -Options: - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nymvisor-config-help.md b/documentation/autodoc/autodoc-generated-markdown/nymvisor-config-help.md deleted file mode 100644 index 696d346802b..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nymvisor-config-help.md +++ /dev/null @@ -1,9 +0,0 @@ -```sh -Show configuration options being used by this instance of nymvisor - -Usage: nymvisor config [OPTIONS] - -Options: - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nymvisor-daemon-build-info-help.md b/documentation/autodoc/autodoc-generated-markdown/nymvisor-daemon-build-info-help.md deleted file mode 100644 index c89ba02c590..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nymvisor-daemon-build-info-help.md +++ /dev/null @@ -1,9 +0,0 @@ -```sh -Show build information of the associated daemon - -Usage: nymvisor daemon-build-info [OPTIONS] - -Options: - -o, --output [default: text] [possible values: text, json] - -h, --help Print help -``` diff --git a/documentation/autodoc/autodoc-generated-markdown/nymvisor-init-help.md b/documentation/autodoc/autodoc-generated-markdown/nymvisor-init-help.md deleted file mode 100644 index 8e373fc42c4..00000000000 --- a/documentation/autodoc/autodoc-generated-markdown/nymvisor-init-help.md +++ /dev/null @@ -1,48 +0,0 @@ -```sh -Initialise a nymvisor instance with persistent Config.toml file - -Usage: nymvisor init [OPTIONS] - -Arguments: - Path to the daemon's executable - -Options: - --id - ID specifies the human readable ID of this particular nymvisor instance. Can be overridden with $NYMVISOR_ID environmental variable - --upstream-base-upgrade-url - Sets the base url of the upstream source for obtaining upgrade information for the deaemon. It will be used fo constructing the full url, i.e. $NYMVISOR_UPSTREAM_BASE_UPGRADE_URL/$DAEMON_NAME/upgrade-info.json Can be overridden with $NYMVISOR_UPSTREAM_BASE_UPGRADE_URL environmental variable - --upstream-polling-rate - Specifies the rate of polling the upstream url for upgrade information. default: 1h Can be overridden with $NYMVISOR_UPSTREAM_POLLING_RATE - --disable-nymvisor-logs - If enabled, this will disable `nymvisor` logs (but not the underlying process) Can be overridden with $NYMVISOR_DISABLE_LOGS environmental variable - --upgrade-data-directory - Set custom directory for upgrade data - binaries and upgrade plans. If not set, the global nymvisors' data directory will be used instead. Can be overridden with $NYMVISOR_UPGRADE_DATA_DIRECTORY environmental variable - --daemon-home - The location where the `nymvisor/` directory is kept that contains the auxiliary files associated with the underlying daemon, such as any backups or current version information. (e.g. $HOME/.nym/nym-api/my-nym-api, $HOME/.nym/mixnodes/my-mixnode, etc.). Can be overridden with $DAEMON_HOME environmental variable - --daemon-absolute-upstream-upgrade-url - Override url to the upstream source for upgrade plans for this daeamon. The Url has to point to an endpoint containing a valid [`UpgradeInfo`] json. Note: if set this takes precedence over `upstream_base_upgrade_url` Can be overridden with $DAEMON_ABSOLUTE_UPSTREAM_UPGRADE_URL environmental variable - --allow-download-upgrade-binaries - If set to true, this will enable auto-downloading of new binaries using the url provided in the `upgrade-info.json` Can be overridden with $DAEMON_ALLOW_BINARIES_DOWNLOAD environmental variable [possible values: true, false] - --enforce-download-checksum - If enabled nymvisor will require that a checksum is provided in the upgrade plan for the binary to be downloaded. If disabled, nymvisor will not require a checksum to be provided, but still check the checksum if one is provided. Can be overridden with $DAEMON_ENFORCE_DOWNLOAD_CHECKSUM environmental variable [possible values: true, false] - --restart-daemon-after-upgrade - If enabled, nymvisor will restart the subprocess with the same command-line arguments and flags (but with the new binary) after a successful upgrade. Otherwise (if disabled), nymvisor will stop running after an upgrade and will require the system administrator to manually restart it. Note restart is only after the upgrade and does not auto-restart the subprocess after an error occurs. Can be overridden with $DAEMON_RESTART_AFTER_UPGRADE environmental variable [possible values: true, false] - --restart-daemon-on-failure - If enabled, nymvisor will restart the subprocess with the same command-line arguments and flags after it has crashed Can be overridden with $DAEMON_RESTART_ON_FAILURE environmental variable - --on-failure-daemon-restart-delay - If `restart_on_failure` is enabled, the following value defines the amount of time `nymvisor` shall wait before restarting the subprocess. Can be overridden with $DAEMON_FAILURE_RESTART_DELAY environmental variable - --max-daemon-startup-failures - Defines the maximum number of startup failures the subprocess can experience in a quick succession before no further restarts will be attempted and `nymvisor` will exit. Can be overridden with $DAEMON_MAX_STARTUP_FAILURES environmental variable - --startup-period-duration - Defines the length of time during which the subprocess is still considered to be in the startup phase when its failures are going to be considered in `max_startup_failures`. Can be overridden with $DAEMON_STARTUP_PERIOD_DURATION environmental variable - --daemon-shutdown-grace-period - Specifies the amount of time `nymvisor` is willing to wait for the subprocess to undergo graceful shutdown after receiving an interrupt (for either an upgrade or shutdown of the `nymvisor` itself) Once the time passes, a kill signal is going to be sent instead. Can be overridden with $DAEMON_SHUTDOWN_GRACE_PERIOD environmental variable - --daemon-backup-data-directory - Set custom backup directory for daemon data. If not set, the daemon's home directory will be used instead. Can be overridden with $DAEMON_BACKUP_DATA_DIRECTORY environmental variable - --unsafe-skip-backup - If enabled, `nymvisor` will perform upgrades directly without performing any backups. default: false Can be overridden with $DAEMON_UNSAFE_SKIP_BACKUP environmental variable - -o, --output - [default: text] [possible values: text, json] - -h, --help - Print help -``` diff --git a/documentation/autodoc/src/main.rs b/documentation/autodoc/src/main.rs index fda48a85f72..7f9513097cf 100644 --- a/documentation/autodoc/src/main.rs +++ b/documentation/autodoc/src/main.rs @@ -127,7 +127,7 @@ fn main() -> io::Result<()> { writeln!( file, "# {} Binary Commands (Autogenerated)", - format!("`{}`", last_word.unwrap()) + format_args!("`{}`", last_word.unwrap()) )?; writeln!( file, @@ -152,7 +152,7 @@ fn main() -> io::Result<()> { writeln!( file, "# {} Binary Commands (Autogenerated)", - format!("`{}`", last_word.unwrap()) + format_args!("`{}`", last_word.unwrap()) )?; writeln!( file, @@ -190,9 +190,10 @@ fn execute_command_own_file(main_command: &str, subcommand: &str) -> io::Result< // this check is basically checking for the rare commands (rn just one) that start a process with no params // perhaps if this list grows we could just add a timeout and shunt the running and writing // into a thread with a timeout or something but for right now its fine / thats overkill - if get_last_word_from_filepath(main_command).unwrap() == "nym-node" && subcommand == "run" - || get_last_word_from_filepath(main_command).unwrap() == "nym-api" && subcommand == "run" - || get_last_word_from_filepath(main_command).unwrap() == "nymvisor" && subcommand == "run" + if (get_last_word_from_filepath(main_command).unwrap() == "nymvisor" + || get_last_word_from_filepath(main_command).unwrap() == "nym-api" + || get_last_word_from_filepath(main_command).unwrap() == "nym-node") + && subcommand == "run" { info!("SKIPPING {} {}", main_command, subcommand); } else { @@ -278,7 +279,7 @@ fn execute_command( ) -> io::Result<()> { // checking for the nym-cli subsubcommands if subsubcommand.is_some() { - writeln!(file, "\n### `{} {}`", subcommand, subsubcommand.unwrap())?; + writeln!(file, "\n## `{} {}`", subcommand, subsubcommand.unwrap())?; info!("executing {} {} --help ", main_command, subcommand); let output = Command::new(main_command) @@ -293,7 +294,7 @@ fn execute_command( } // just subcommands } else { - writeln!(file, "\n### `{}`", subcommand)?; + writeln!(file, "\n## `{}`", subcommand)?; // execute help let output = Command::new(main_command) diff --git a/documentation/docs/components/api-table.tsx b/documentation/docs/components/api-table.tsx new file mode 100644 index 00000000000..236f04f8280 --- /dev/null +++ b/documentation/docs/components/api-table.tsx @@ -0,0 +1,52 @@ +import React, { useState, useEffect } from "react"; + +export default function NymDealersAddresses({ + endpoint, +}: { + endpoint: string; +}) { + const [announceAddresses, setAnnounceAddresses] = useState([]); + const [isLoading, setIsLoading] = useState(true); + const [error, setError] = useState(null); + + useEffect(() => { + const fetchData = async () => { + try { + const response = await fetch(endpoint); + + if (!response.ok) { + throw new Error("Failed to fetch data"); + } + + const jsonData = await response.json(); + + const addresses = jsonData.data.dealers.map( + (dealer: any) => dealer.announce_address + ); + + setAnnounceAddresses(addresses); + setIsLoading(false); + } catch (error) { + setError(error instanceof Error ? error.message : "Unknown error"); + setIsLoading(false); + } + }; + + fetchData(); + }, [endpoint]); + + if (isLoading) return
Loading...
; + if (error) return
Error: {error}
; + + return ( + + + {announceAddresses.map((address, index) => ( + + {address} + + ))} + +
+ ); +} diff --git a/documentation/docs/components/landing-page.tsx b/documentation/docs/components/landing-page.tsx index 87b9f29fff3..dd6ae77db11 100644 --- a/documentation/docs/components/landing-page.tsx +++ b/documentation/docs/components/landing-page.tsx @@ -10,12 +10,6 @@ import networkDocs from "../public/images/landing/network-docs.png"; import developerDocs from "../public/images/landing/developer-docs.png"; import sdkDocs from "../public/images/landing/sdk-docs.png"; import operatorGuide from "../public/images/landing/operator-guide.png"; -import { t } from "nextra/dist/types-c8e621b7"; -// import networkDocs from "./images/network-docs.png"; -// import developerDocs from "./images/developer-docs.png"; -// import sdkDocs from "./images/sdk-docs.png"; -// import operatorGuide from "./images/operator-guide.png"; - export const LandingPage = () => { const theme = useTheme(); const isTablet = useMediaQuery(theme.breakpoints.up("md")); @@ -38,18 +32,24 @@ export const LandingPage = () => { }, { text: "Developer Portal", - description: - "Conceptual overview, clients, and tools for developers and integrations", + description: "Conceptual overview, clients, tools and SDKs", href: "/developers", - icon: networkDocs, + icon: sdkDocs, }, + // { + // text: "SDKs", + // description: "Rust and Typescript SDK docs", + + // href: "/developers/rust", + // icon: sdkDocs, + // }, { - text: "SDKs", - description: "Rust and Typescript SDK docs", + text: "APIs", + description: "Interactive API specs for Nym infrastructure", - href: "/developers/rust", - icon: sdkDocs, + href: "/apis/introduction", + icon: networkDocs, }, ]; diff --git a/documentation/docs/components/outputs/api-scraping-outputs/time-now.md b/documentation/docs/components/outputs/api-scraping-outputs/time-now.md index 2710b013a7c..f3566e41d55 100644 --- a/documentation/docs/components/outputs/api-scraping-outputs/time-now.md +++ b/documentation/docs/components/outputs/api-scraping-outputs/time-now.md @@ -1 +1 @@ -Friday, December 6th 2024, 10:16:06 UTC +Monday, December 9th 2024, 19:43:12 UTC diff --git a/documentation/docs/components/outputs/command-outputs/nym-api-build-info-help.md b/documentation/docs/components/outputs/command-outputs/nym-api-build-info-help.md index 7ece0cff3a3..db52a92b4e7 100644 --- a/documentation/docs/components/outputs/command-outputs/nym-api-build-info-help.md +++ b/documentation/docs/components/outputs/command-outputs/nym-api-build-info-help.md @@ -1,5 +1,4 @@ ```sh -2024-10-29T09:51:44.050179Z  INFO nym-api/src/main.rs:41: Starting nym api... Show build information of this binary Usage: nym-api build-info [OPTIONS] diff --git a/documentation/docs/components/outputs/command-outputs/nym-api-build-info.md b/documentation/docs/components/outputs/command-outputs/nym-api-build-info.md index 107dd29a8a6..c7ef59a43c5 100644 --- a/documentation/docs/components/outputs/command-outputs/nym-api-build-info.md +++ b/documentation/docs/components/outputs/command-outputs/nym-api-build-info.md @@ -1,14 +1,13 @@ ```sh -2024-10-29T09:51:44.043480Z  INFO nym-api/src/main.rs:41: Starting nym api... Binary Name: nym-api -Build Timestamp: 2024-10-29T09:48:31.988049207Z -Build Version: 1.1.45 -Commit SHA: 299552881810511273af13eb135297a4cf7a38de -Commit Date: 2024-10-29T10:48:07.000000000+01:00 -Commit Branch: max/new-docs-framework -rustc Version: 1.80.0 -rustc Channel: stable +Build Timestamp: 2024-12-10T11:37:07.839071360Z +Build Version: 1.1.46 +Commit SHA: 62045d76b32265f6a5e6358ab7aebbc827d47dcd +Commit Date: 2024-11-26T11:53:05.000000000+01:00 +Commit Branch: master +rustc Version: 1.84.0-nightly +rustc Channel: nightly cargo Profile: release ``` diff --git a/documentation/docs/components/outputs/command-outputs/nym-api-init-help.md b/documentation/docs/components/outputs/command-outputs/nym-api-init-help.md index 6427278bdf4..7253758dc6b 100644 --- a/documentation/docs/components/outputs/command-outputs/nym-api-init-help.md +++ b/documentation/docs/components/outputs/command-outputs/nym-api-init-help.md @@ -1,5 +1,4 @@ ```sh -2024-10-29T09:51:44.027197Z  INFO nym-api/src/main.rs:41: Starting nym api... Initialise a Nym Api instance with persistent config.toml file Usage: nym-api init [OPTIONS] diff --git a/documentation/docs/components/outputs/command-outputs/nym-api-init.md b/documentation/docs/components/outputs/command-outputs/nym-api-init.md index 976a4ae91df..89b8486a06e 100644 --- a/documentation/docs/components/outputs/command-outputs/nym-api-init.md +++ b/documentation/docs/components/outputs/command-outputs/nym-api-init.md @@ -1,3 +1,3 @@ ```sh -2024-10-29T09:51:44.019255Z  INFO nym-api/src/main.rs:41: Starting nym api... +2024-11-06T12:18:46.199371Z  INFO nym-api/src/main.rs:41: Starting nym api... ``` diff --git a/documentation/docs/components/outputs/command-outputs/nym-client-build-info.md b/documentation/docs/components/outputs/command-outputs/nym-client-build-info.md index 8bf2f6fa1cc..660d02d4a22 100644 --- a/documentation/docs/components/outputs/command-outputs/nym-client-build-info.md +++ b/documentation/docs/components/outputs/command-outputs/nym-client-build-info.md @@ -1,13 +1,13 @@ ```sh Binary Name: nym-client -Build Timestamp: 2024-10-29T09:48:31.988049207Z -Build Version: 1.1.42 -Commit SHA: 299552881810511273af13eb135297a4cf7a38de -Commit Date: 2024-10-29T10:48:07.000000000+01:00 -Commit Branch: max/new-docs-framework -rustc Version: 1.80.0 -rustc Channel: stable +Build Timestamp: 2024-12-10T11:37:07.839071360Z +Build Version: 1.1.44 +Commit SHA: 62045d76b32265f6a5e6358ab7aebbc827d47dcd +Commit Date: 2024-11-26T11:53:05.000000000+01:00 +Commit Branch: master +rustc Version: 1.84.0-nightly +rustc Channel: nightly cargo Profile: release ``` diff --git a/documentation/docs/components/outputs/command-outputs/nym-node-bonding-information.md b/documentation/docs/components/outputs/command-outputs/nym-node-bonding-information.md index b20c9dd9fb1..5cda2291e21 100644 --- a/documentation/docs/components/outputs/command-outputs/nym-node-bonding-information.md +++ b/documentation/docs/components/outputs/command-outputs/nym-node-bonding-information.md @@ -1,3 +1,3 @@ ```sh -2024-10-29T09:51:44.440498Z ERROR nym-node/src/config/upgrade_helpers.rs:16: Failed to finish upgrade - failed to load config file using path '/home/m/.nym/nym-nodes/default-nym-node/config/config.toml'. detailed message: No such file or directory (os error 2) +2024-11-06T12:18:46.723546Z ERROR nym-node/src/config/upgrade_helpers.rs:17: Failed to finish upgrade - failed to load config file using path '/home/m/.nym/nym-nodes/default-nym-node/config/config.toml'. detailed message: No such file or directory (os error 2) ``` diff --git a/documentation/docs/components/outputs/command-outputs/nym-node-build-info.md b/documentation/docs/components/outputs/command-outputs/nym-node-build-info.md index abc2bd416f0..7ed28e4de57 100644 --- a/documentation/docs/components/outputs/command-outputs/nym-node-build-info.md +++ b/documentation/docs/components/outputs/command-outputs/nym-node-build-info.md @@ -1,13 +1,13 @@ ```sh Binary Name: nym-node -Build Timestamp: 2024-10-29T09:48:31.988049207Z -Build Version: 1.1.9 -Commit SHA: 299552881810511273af13eb135297a4cf7a38de -Commit Date: 2024-10-29T10:48:07.000000000+01:00 -Commit Branch: max/new-docs-framework -rustc Version: 1.80.0 -rustc Channel: stable +Build Timestamp: 2024-12-10T11:37:07.839071360Z +Build Version: 1.1.11 +Commit SHA: 62045d76b32265f6a5e6358ab7aebbc827d47dcd +Commit Date: 2024-11-26T11:53:05.000000000+01:00 +Commit Branch: master +rustc Version: 1.84.0-nightly +rustc Channel: nightly cargo Profile: release ``` diff --git a/documentation/docs/components/outputs/command-outputs/nym-node-node-details.md b/documentation/docs/components/outputs/command-outputs/nym-node-node-details.md index 768152ed3a7..37077dda8fe 100644 --- a/documentation/docs/components/outputs/command-outputs/nym-node-node-details.md +++ b/documentation/docs/components/outputs/command-outputs/nym-node-node-details.md @@ -1,3 +1,3 @@ ```sh -2024-10-29T09:51:44.459681Z ERROR nym-node/src/config/upgrade_helpers.rs:16: Failed to finish upgrade - failed to load config file using path '/home/m/.nym/nym-nodes/default-nym-node/config/config.toml'. detailed message: No such file or directory (os error 2) +2024-11-06T12:18:46.742880Z ERROR nym-node/src/config/upgrade_helpers.rs:17: Failed to finish upgrade - failed to load config file using path '/home/m/.nym/nym-nodes/default-nym-node/config/config.toml'. detailed message: No such file or directory (os error 2) ``` diff --git a/documentation/docs/components/outputs/command-outputs/nym-socks5-client-build-info.md b/documentation/docs/components/outputs/command-outputs/nym-socks5-client-build-info.md index 6ae9f633fef..cb9ed561570 100644 --- a/documentation/docs/components/outputs/command-outputs/nym-socks5-client-build-info.md +++ b/documentation/docs/components/outputs/command-outputs/nym-socks5-client-build-info.md @@ -1,13 +1,13 @@ ```sh Binary Name: nym-socks5-client -Build Timestamp: 2024-10-29T09:48:31.988049207Z -Build Version: 1.1.42 -Commit SHA: 299552881810511273af13eb135297a4cf7a38de -Commit Date: 2024-10-29T10:48:07.000000000+01:00 -Commit Branch: max/new-docs-framework -rustc Version: 1.80.0 -rustc Channel: stable +Build Timestamp: 2024-12-10T11:37:07.839071360Z +Build Version: 1.1.44 +Commit SHA: 62045d76b32265f6a5e6358ab7aebbc827d47dcd +Commit Date: 2024-11-26T11:53:05.000000000+01:00 +Commit Branch: master +rustc Version: 1.84.0-nightly +rustc Channel: nightly cargo Profile: release ``` diff --git a/documentation/docs/components/outputs/command-outputs/nymvisor-build-info.md b/documentation/docs/components/outputs/command-outputs/nymvisor-build-info.md index 6db90dcec62..a373c4b9307 100644 --- a/documentation/docs/components/outputs/command-outputs/nymvisor-build-info.md +++ b/documentation/docs/components/outputs/command-outputs/nymvisor-build-info.md @@ -1,13 +1,13 @@ ```sh Binary Name: nymvisor -Build Timestamp: 2024-10-29T09:48:31.988049207Z -Build Version: 0.1.8 -Commit SHA: 299552881810511273af13eb135297a4cf7a38de -Commit Date: 2024-10-29T10:48:07.000000000+01:00 -Commit Branch: max/new-docs-framework -rustc Version: 1.80.0 -rustc Channel: stable +Build Timestamp: 2024-12-10T11:37:07.839071360Z +Build Version: 0.1.9 +Commit SHA: 62045d76b32265f6a5e6358ab7aebbc827d47dcd +Commit Date: 2024-11-26T11:53:05.000000000+01:00 +Commit Branch: master +rustc Version: 1.84.0-nightly +rustc Channel: nightly cargo Profile: release ``` diff --git a/documentation/docs/next-env.d.ts b/documentation/docs/next-env.d.ts index a4a7b3f5cfa..4f11a03dc6c 100644 --- a/documentation/docs/next-env.d.ts +++ b/documentation/docs/next-env.d.ts @@ -2,4 +2,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information. +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/documentation/docs/package.json b/documentation/docs/package.json index 938ed95093e..cd0a1371c09 100644 --- a/documentation/docs/package.json +++ b/documentation/docs/package.json @@ -15,6 +15,7 @@ "start": "next start" }, "dependencies": { + "@apidevtools/swagger-parser": "^10.1.0", "@coreui/coreui": "^5.1.2", "@coreui/react": "^5.4.0", "@cosmjs/amino": "^0.32.2", @@ -39,6 +40,7 @@ "@nymproject/contract-clients": ">=1.2.4-rc.2 || ^1", "@nymproject/mix-fetch-full-fat": ">=1.2.4-rc.2 || ^1", "@nymproject/sdk-full-fat": ">=1.2.4-rc.2 || ^1", + "@redocly/cli": "^1.25.15", "@types/mdx": "^2.0.13", "chain-registry": "^1.19.0", "cosmjs-types": "^0.9.0", diff --git a/documentation/docs/pages/_meta.json b/documentation/docs/pages/_meta.json index ba7bdce5114..15f1b5e3945 100644 --- a/documentation/docs/pages/_meta.json +++ b/documentation/docs/pages/_meta.json @@ -27,5 +27,9 @@ "operators": { "title": "Operators", "type": "page" + }, + "apis": { + "title": "APIs", + "type": "page" } } diff --git a/documentation/docs/pages/apis/_meta.json b/documentation/docs/pages/apis/_meta.json new file mode 100644 index 00000000000..616cc143346 --- /dev/null +++ b/documentation/docs/pages/apis/_meta.json @@ -0,0 +1,12 @@ +{ + "introduction": "Introduction", + "ns-api": "Node Status API", + "nym-api": "NymAPI Validator Sidecar", + "explorer-api": "Explorer API", + "cosmos-sdk-nyx": "Validator REST API", + "---": { + "type": "separator" + }, + "licensing": "Licensing", + "coc": "Coc" +} diff --git a/documentation/docs/pages/apis/cosmos-sdk-nyx.mdx b/documentation/docs/pages/apis/cosmos-sdk-nyx.mdx new file mode 100644 index 00000000000..b43138fd3e0 --- /dev/null +++ b/documentation/docs/pages/apis/cosmos-sdk-nyx.mdx @@ -0,0 +1,3 @@ +# Validator REST API + +Since the [Nyx validators](../../operators/nodes/validator-setup) are built with the Cosmos SDK, they by default expose a [REST API](https://docs.cosmos.network/api) which can be used to query the state of the chain. diff --git a/documentation/docs/pages/apis/cosmos-sdk-nyx/mainnet.mdx b/documentation/docs/pages/apis/cosmos-sdk-nyx/mainnet.mdx new file mode 100644 index 00000000000..72233bd16a9 --- /dev/null +++ b/documentation/docs/pages/apis/cosmos-sdk-nyx/mainnet.mdx @@ -0,0 +1,18 @@ +import { RedocStandalone } from 'redoc'; + +The information below is generated with [Redoc](https://redocly.com/docs/redoc) consuming the OpenAPI spec found at [https://api.nymtech.net/swagger/swagger.yaml](https://api.nymtech.net/swagger/swagger.yaml) which is also used to generate the Swagger docs deployed at [https://api.nymtech.net/swagger/](https://api.nymtech.net/swagger/). + +There is also an overview of other Validator endpoints at [https://cosmos.directory/nyx](https://cosmos.directory/nyx). + + diff --git a/documentation/docs/pages/apis/cosmos-sdk-nyx/sandbox.mdx b/documentation/docs/pages/apis/cosmos-sdk-nyx/sandbox.mdx new file mode 100644 index 00000000000..726ef0b51ef --- /dev/null +++ b/documentation/docs/pages/apis/cosmos-sdk-nyx/sandbox.mdx @@ -0,0 +1,16 @@ +import { RedocStandalone } from 'redoc'; + +The information below is generated with [Redoc](https://redocly.com/docs/redoc) consuming the OpenAPI spec found at []() which is also used to generate the Swagger docs deployed at [](). + + diff --git a/documentation/docs/pages/apis/explorer-api.mdx b/documentation/docs/pages/apis/explorer-api.mdx new file mode 100644 index 00000000000..0ab207360db --- /dev/null +++ b/documentation/docs/pages/apis/explorer-api.mdx @@ -0,0 +1,8 @@ + +# Explorer API + +The Explorer API is the backend for the [Mixnet Explorer](https://explorer.nymtech.net/). + +**This will soon be deprecated in favour of the [Node Status API](../ns-api).** + +The code for this service can be found [in our monorepo](https://github.com/nymtech/nym/tree/develop/explorer). diff --git a/documentation/docs/pages/apis/explorer-api/mainnet.mdx b/documentation/docs/pages/apis/explorer-api/mainnet.mdx new file mode 100644 index 00000000000..83853f66844 --- /dev/null +++ b/documentation/docs/pages/apis/explorer-api/mainnet.mdx @@ -0,0 +1,17 @@ + +import { RedocStandalone } from 'redoc'; + +The information below is generated with [Redoc](https://redocly.com/docs/redoc) consuming the OpenAPI spec found at [https://explorer.nymtech.net/api/v1/openapi.json](https://explorer.nymtech.net/api/v1/openapi.json) which is also used to generate the Swagger docs deployed at [https://explorer.nymtech.net/api/swagger/index.html](https://explorer.nymtech.net/api/swagger/index.html). + + diff --git a/documentation/docs/pages/apis/explorer-api/sandbox.mdx b/documentation/docs/pages/apis/explorer-api/sandbox.mdx new file mode 100644 index 00000000000..4053d7cd181 --- /dev/null +++ b/documentation/docs/pages/apis/explorer-api/sandbox.mdx @@ -0,0 +1,16 @@ +import { RedocStandalone } from 'redoc'; + +The information below is generated with [Redoc](https://redocly.com/docs/redoc) consuming the OpenAPI spec found at [https://sandbox-explorer.nymtech.net/api/v1/openapi.json](https://sandbox-explorer.nymtech.net/api/v1/openapi.json) which is also used to generate the Swagger docs deployed at [https://sandbox-explorer.nymtech.net/api/swagger/index.html](https://sandbox-explorer.nymtech.net/api/swagger/index.html). + + diff --git a/documentation/docs/pages/apis/introduction.mdx b/documentation/docs/pages/apis/introduction.mdx new file mode 100644 index 00000000000..c2c521ba8c5 --- /dev/null +++ b/documentation/docs/pages/apis/introduction.mdx @@ -0,0 +1,5 @@ +# Introduction + +This site contains interactive APIs generated from the OpenAPI specs of various API endpoints offered by bits of Nym infrastructure run both by Nym and community operators for both Mainnet and the Sandbox testnet. + +You can find links to the generated specs for each API on their respective pages as well as their different uses for operators and developers. diff --git a/documentation/docs/pages/apis/ns-api.mdx b/documentation/docs/pages/apis/ns-api.mdx new file mode 100644 index 00000000000..85d2ea45662 --- /dev/null +++ b/documentation/docs/pages/apis/ns-api.mdx @@ -0,0 +1,11 @@ +import { Callout } from 'nextra/components' + +# Node Status API + +The Node Status API contains information about the network, its topology, and the routing scores of all nodes within it. It offers broadly similar information to the experimental [Habourmaster frontend](https://harbourmaster.nymtech.net/) but is stable where the Harbourmaster is subject to sudden changes as we modify and experiment with how we scrape and present data about the Mixnet infrastructure. + + +People building applications or dashboards which requires information about nodes, their uptime, and their delegations should use this instead of Habourmaster. + + +The code for this service can be found [in our monorepo](https://github.com/nymtech/nym/tree/develop/nym-node-status-api). In the future we will encourage developers to run their own instance of this API in order to distribute endpoints and query load. diff --git a/documentation/docs/pages/apis/ns-api/mainnet.mdx b/documentation/docs/pages/apis/ns-api/mainnet.mdx new file mode 100644 index 00000000000..d13f994c5e3 --- /dev/null +++ b/documentation/docs/pages/apis/ns-api/mainnet.mdx @@ -0,0 +1,16 @@ +import { RedocStandalone } from 'redoc'; + +The information below is generated with [Redoc](https://redocly.com/docs/redoc) consuming the OpenAPI spec found at [https://mainnet-node-status-api.nymtech.cc/api-docs/openapi.json](https://mainnet-node-status-api.nymtech.cc/api-docs/openapi.json) which is also used to generate the Swagger docs deployed at [https://mainnet-node-status-api.nymtech.cc/swagger/](https://mainnet-node-status-api.nymtech.cc/swagger/). + + diff --git a/documentation/docs/pages/apis/ns-api/sandbox.mdx b/documentation/docs/pages/apis/ns-api/sandbox.mdx new file mode 100644 index 00000000000..aa553ea1451 --- /dev/null +++ b/documentation/docs/pages/apis/ns-api/sandbox.mdx @@ -0,0 +1,16 @@ +import { RedocStandalone } from 'redoc'; + +The information below is generated with [Redoc](https://redocly.com/docs/redoc) consuming the OpenAPI spec found at [https://sandbox-node-status-api.nymte.ch/api-docs/openapi.json](https://sandbox-node-status-api.nymte.ch/api-docs/openapi.json) which is also used to generate the Swagger docs deployed at [https://sandbox-node-status-api.nymte.ch/swagger/](https://sandbox-node-status-api.nymte.ch/swagger/). + + diff --git a/documentation/docs/pages/apis/nym-api.mdx b/documentation/docs/pages/apis/nym-api.mdx new file mode 100644 index 00000000000..15be469fc43 --- /dev/null +++ b/documentation/docs/pages/apis/nym-api.mdx @@ -0,0 +1,5 @@ +# NymAPI + +The [NymAPI](../../operators/nodes/validator-setup/nym-api) is a sidecar binary operated by members of the Nym Validator set. Amongst other things, the API offers endpoints to query regarding circulating `NYM` supply, and global and ticketbook-specific [zk-nym](../../network/cryptography/zk-nym) data. This is all information contained in various smart contracts on the Nyx blockchain; the NymAPI caches this information periodically to make queries faster and more scalable. + +The code for this service can be found [in our monorepo](https://github.com/nymtech/nym/tree/develop/nym-api). diff --git a/documentation/docs/pages/apis/nym-api/mainnet.mdx b/documentation/docs/pages/apis/nym-api/mainnet.mdx new file mode 100644 index 00000000000..426dc780cb3 --- /dev/null +++ b/documentation/docs/pages/apis/nym-api/mainnet.mdx @@ -0,0 +1,10 @@ +import APITable from 'components/api-table.tsx'; + +You can find the OpenAPI spec found at [https://validator.nymtech.net/api-docs/openapi.json](https://validator.nymtech.net/api-docs/openapi.json) which is also used to generate the Swagger docs deployed at [https://validator.nymtech.net/api/swagger/index.html](https://validator.nymtech.net/api/swagger/index.html). + +You can find the Swagger endpoints of other NymAPI instances at the following endpoints: + + +There is also an overview of endpoints at [https://cosmos.directory/nyx](https://cosmos.directory/nyx). + +> Interactive Redoc component coming soon diff --git a/documentation/docs/pages/developers/clients.mdx b/documentation/docs/pages/developers/clients.mdx index b507ecf7bea..7b6f38491d5 100644 --- a/documentation/docs/pages/developers/clients.mdx +++ b/documentation/docs/pages/developers/clients.mdx @@ -1,3 +1,7 @@ +--- +toc: float +--- + # Types of Nym clients At present, there are three Nym clients. These are built as standalone binaries when building our codebase, but are most easily accessed through one of our SDKs: diff --git a/documentation/docs/pages/developers/clients/socks5.mdx b/documentation/docs/pages/developers/clients/socks5.mdx index 9a491780946..08e40b6306c 100644 --- a/documentation/docs/pages/developers/clients/socks5.mdx +++ b/documentation/docs/pages/developers/clients/socks5.mdx @@ -50,144 +50,8 @@ The `nym-socks5-client` allows you to do the following from your local machine: The `nym-node` then reassembles the original TCP stream using the packets' sequence numbers, and make the intended request. It will then chop up the response into Sphinx packets and send them back through the mixnet to your `nym-socks5-client`. The application will then receive its data, without even noticing that it wasn't talking to a "normal" SOCKS5 proxy! - ## Download or compile socks5 client If you are using OSX or a Debian-based operating system, you can download the `nym-socks5-client` binary from our [Github releases page](https://github.com/nymtech/nym/releases). If you are using a different operating system, or want to build from source, simply use `cargo build --release` from the root of the Nym monorepo. - -## Client setup -### Viewing command help - -You can check that your binaries are properly compiled with: - -``` -./nym-socks5-client --help -``` - -You can check the necessary parameters for the available commands by running: - -``` -./nym-client --help -``` - -### Initialising a new client instance -Before you can use the client, you need to initalise a new instance of it, which can be done with the following command: - -``` -./nym-socks5-client init --id docs-example --use-reply-surbs true --provider Entztfv6Uaz2hpYHQJ6JKoaCTpDL5dja18SuQWVJAmmx.Cvhn9rBJw5Ay9wgHcbgCnVg89MPSV5s2muPV2YF1BXYu@Fo4f4SQLdoyoGkFae5TpVhRVoXCF8UiypLVGtGjujVPf -``` - -The `--id` in the example above is a local identifier so that you can name your clients and keep track of them on your local system; it is **never** transmitted over the network. - -The `--use-reply-surbs` field denotes whether you wish to send [SURBs](../../network/concepts/anonymous-replies) along with your request. It defaults to `false`, we are explicitly setting it as `true`. It defaults to `false` for compatibility with versions of the pre-smoosh `nym-network-requester` binary which will soon be deprecated. - -The `--provider` field needs to be filled with the Nym address of an Exit Gateway that can make network requests on your behalf. You can select one from the [mixnet explorer](https://explorer.nymtech.net/network-components/gateways) by copying its `Client ID` and using this as the value of the `--provider` flag. Alternatively, you could use [Harbourmaster](https://harbourmaster.nymtech.net/). - -#### Choosing a Gateway -By default - as in the example above - your client will choose a random gateway to connect to. - -However, there are several options for choosing a gateway, if you do not want one that is randomly assigned to your client: -* If you wish to connect to a specific gateway, you can specify this with the `--gateway` flag when running `init`. -* You can also choose a gateway based on its location relative to your client. This can be done by appending the `--latency-based-selection` flag to your `init` command. This command means that to select a gateway, your client will: - * fetch a list of all availiable gateways - * send few ping messages to all of them, and measure response times. - * create a weighted distribution to randomly choose one, favouring ones with lower latency. - -You can select one from the [mixnet explorer](https://explorer.nymtech.net/network-components/gateways) by copying its `Client ID` and using this as the value of the `--provider` flag. Alternatively, you could use [Harbourmaster](https://harbourmaster.nymtech.net/). - -> Note this doesn't mean that your client will pick the closest gateway to you, but it will be far more likely to connect to gateway with a 20ms ping rather than 200ms - -### Configuring your client -When you initalise a client instance, a configuration directory will be generated and stored in `$HOME_DIR/.nym/socks5-clients//`. - -``` -tree $HOME//.nym/socks5-clients/docs-example -├── config -│   └── config.toml -└── data - ├── ack_key.pem - ├── credentials_database.db - ├── gateway_shared.pem - ├── persistent_reply_store.sqlite - ├── private_encryption.pem - ├── private_identity.pem - ├── public_encryption.pem - └── public_identity.pem - -``` - -The `config.toml` file contains client configuration options, while the two `pem` files contain client key information. - -The generated files contain the client name, public/private keypairs, and gateway address. The name `` in the example above is just a local identifier so that you can name your clients. - -#### Configuring your client for Docker -By default, the native client listens to host `127.0.0.1`. However this can be an issue if you wish to run a client in a Dockerized environment, where it can be convenenient to listen on a different host such as `0.0.0.0`. - -You can set this via the `--host` flag during either the `init` or `run` commands. - -Alternatively, a custom host can be set in the `config.toml` file under the `socket` section. If you do this, remember to restart your client process. - -### Running the socks5 client - -You can run the initialised client by doing this: - -``` -./nym-socks5-client run --id docs-example -``` - -## Automating your socks5 client with systemd - -Create a service file for the socks5 client at `/etc/systemd/system/nym-socks5-client.service`: - -```ini -[Unit] -Description=Nym Socks5 Client -StartLimitInterval=350 -StartLimitBurst=10 - -[Service] -User=nym # replace this with whatever user you wish -LimitNOFILE=65536 -ExecStart=/home/nym/nym-socks5-client run --id -KillSignal=SIGINT -Restart=on-failure -RestartSec=30 - -[Install] -WantedBy=multi-user.target -``` - -Now enable and start your socks5 client: - -``` -systemctl enable nym-socks5-client.service -systemctl start nym-socks5-client.service -# you can always check your socks5 client has succesfully started with: -systemctl status nym-socks5-client.service -``` - -## Using your Socks5 Client - -After completing the steps above, your local Socks5 Client will be listening on `localhost:1080` ready to proxy traffic to the Network Requester set as the `--provider` when initialising. - -When trying to connect your app, generally the proxy settings are found in `settings->advanced` or `settings->connection`. - -Here is an example of setting the proxy connecting in Blockstream Green: - -![Blockstream Green settings](/images/wallet-proxy-settings/blockstream-green.gif) - -Most wallets and other applications will work basically the same way: find the network proxy settings, enter the proxy url (host: **localhost**, port: **1080**). - -In some other applications, this might be written as **localhost:1080** if there's only one proxy entry field. - -## Useful Commands - -**no-banner** - -Adding `--no-banner` startup flag will prevent Nym banner being printed even if run in tty environment. - -**build-info** - -A `build-info` command prints the build information like commit hash, rust version, binary version just like what command `--version` does. However, you can also specify an `--output=json` flag that will format the whole output as a json, making it an order of magnitude easier to parse. diff --git a/documentation/docs/pages/developers/clients/socks5/_meta.json b/documentation/docs/pages/developers/clients/socks5/_meta.json new file mode 100644 index 00000000000..a050bc50423 --- /dev/null +++ b/documentation/docs/pages/developers/clients/socks5/_meta.json @@ -0,0 +1,6 @@ +{ + "setup": "Setup", + "usage": "Usage", + "config": "Config", + "commands": "Commands" +} diff --git a/documentation/docs/pages/developers/clients/socks5/commands.mdx b/documentation/docs/pages/developers/clients/socks5/commands.mdx index 1681dadc9b9..2ecb2e7e49f 100644 --- a/documentation/docs/pages/developers/clients/socks5/commands.mdx +++ b/documentation/docs/pages/developers/clients/socks5/commands.mdx @@ -25,7 +25,7 @@ Options: -V, --version Print version ``` -### `init` +## `init` ```sh Initialise a Nym client. Do this first! @@ -71,7 +71,7 @@ Options: Print help (see a summary with '-h') ``` -### `run` +## `run` ```sh Run the Nym client with provided configuration client optionally overriding set parameters @@ -107,9 +107,9 @@ Options: Print help (see a summary with '-h') ``` -### `import-credential` +## `import-credential` -### `list-gateways` +## `list-gateways` ```sh List all registered with gateways @@ -121,7 +121,7 @@ Options: -h, --help Print help ``` -### `add-gateway` +## `add-gateway` ```sh Add new gateway to this client @@ -138,7 +138,7 @@ Options: -h, --help Print help ``` -### `build-info` +## `build-info` ```sh Show build information of this binary @@ -152,18 +152,18 @@ Example output: ```sh Binary Name: nym-socks5-client -Build Timestamp: 2024-10-29T09:48:31.988049207Z -Build Version: 1.1.42 -Commit SHA: 299552881810511273af13eb135297a4cf7a38de -Commit Date: 2024-10-29T10:48:07.000000000+01:00 -Commit Branch: max/new-docs-framework -rustc Version: 1.80.0 -rustc Channel: stable +Build Timestamp: 2024-12-10T11:37:07.839071360Z +Build Version: 1.1.44 +Commit SHA: 62045d76b32265f6a5e6358ab7aebbc827d47dcd +Commit Date: 2024-11-26T11:53:05.000000000+01:00 +Commit Branch: master +rustc Version: 1.84.0-nightly +rustc Channel: nightly cargo Profile: release ``` -### `completions` +## `completions` ```sh Generate shell completions @@ -176,7 +176,7 @@ Options: -h, --help Print help ``` -### `generate-fig-spec` +## `generate-fig-spec` ```sh Generate Fig specification diff --git a/documentation/docs/pages/developers/clients/socks5/config.mdx b/documentation/docs/pages/developers/clients/socks5/config.mdx new file mode 100644 index 00000000000..3c53d14da10 --- /dev/null +++ b/documentation/docs/pages/developers/clients/socks5/config.mdx @@ -0,0 +1,29 @@ +# Configuring your client +When you initalise a client instance, a configuration directory will be generated and stored in `$HOME_DIR/.nym/socks5-clients//`. + +``` +tree $HOME//.nym/socks5-clients/docs-example +├── config +│   └── config.toml +└── data + ├── ack_key.pem + ├── credentials_database.db + ├── gateway_shared.pem + ├── persistent_reply_store.sqlite + ├── private_encryption.pem + ├── private_identity.pem + ├── public_encryption.pem + └── public_identity.pem + +``` + +The `config.toml` file contains client configuration options, while the two `pem` files contain client key information. + +The generated files contain the client name, public/private keypairs, and gateway address. The name `` in the example above is just a local identifier so that you can name your clients. + +#### Configuring your client for Docker +By default, the native client listens to host `127.0.0.1`. However this can be an issue if you wish to run a client in a Dockerized environment, where it can be convenenient to listen on a different host such as `0.0.0.0`. + +You can set this via the `--host` flag during either the `init` or `run` commands. + +Alternatively, a custom host can be set in the `config.toml` file under the `socket` section. If you do this, remember to restart your client process. diff --git a/documentation/docs/pages/developers/clients/socks5/setup.mdx b/documentation/docs/pages/developers/clients/socks5/setup.mdx new file mode 100644 index 00000000000..1a02158aa03 --- /dev/null +++ b/documentation/docs/pages/developers/clients/socks5/setup.mdx @@ -0,0 +1,41 @@ +# Client setup +## Viewing command help + +You can check that your binaries are properly compiled with: + +``` +./nym-socks5-client --help +``` + +You can check the necessary parameters for the available commands by running: + +``` +./nym-client --help +``` + +## Initialising a new client instance +Before you can use the client, you need to initalise a new instance of it, which can be done with the following command: + +``` +./nym-socks5-client init --id docs-example --use-reply-surbs true --provider Entztfv6Uaz2hpYHQJ6JKoaCTpDL5dja18SuQWVJAmmx.Cvhn9rBJw5Ay9wgHcbgCnVg89MPSV5s2muPV2YF1BXYu@Fo4f4SQLdoyoGkFae5TpVhRVoXCF8UiypLVGtGjujVPf +``` + +The `--id` in the example above is a local identifier so that you can name your clients and keep track of them on your local system; it is **never** transmitted over the network. + +The `--use-reply-surbs` field denotes whether you wish to send [SURBs](../../network/concepts/anonymous-replies) along with your request. It defaults to `false`, we are explicitly setting it as `true`. It defaults to `false` for compatibility with versions of the pre-smoosh `nym-network-requester` binary which will soon be deprecated. + +The `--provider` field needs to be filled with the Nym address of an Exit Gateway that can make network requests on your behalf. You can select one from the [mixnet explorer](https://explorer.nymtech.net/network-components/gateways) by copying its `Client ID` and using this as the value of the `--provider` flag. Alternatively, you could use [Harbourmaster](https://harbourmaster.nymtech.net/). + +## Choosing a Gateway +By default - as in the example above - your client will choose a random gateway to connect to. + +However, there are several options for choosing a gateway, if you do not want one that is randomly assigned to your client: +* If you wish to connect to a specific gateway, you can specify this with the `--gateway` flag when running `init`. +* You can also choose a gateway based on its location relative to your client. This can be done by appending the `--latency-based-selection` flag to your `init` command. This command means that to select a gateway, your client will: + * fetch a list of all availiable gateways + * send few ping messages to all of them, and measure response times. + * create a weighted distribution to randomly choose one, favouring ones with lower latency. + +You can select one from the [mixnet explorer](https://explorer.nymtech.net/network-components/gateways) by copying its `Client ID` and using this as the value of the `--provider` flag. Alternatively, you could use [Harbourmaster](https://harbourmaster.nymtech.net/). + +> Note this doesn't mean that your client will pick the closest gateway to you, but it will be far more likely to connect to gateway with a 20ms ping rather than 200ms diff --git a/documentation/docs/pages/developers/clients/socks5/usage.mdx b/documentation/docs/pages/developers/clients/socks5/usage.mdx new file mode 100644 index 00000000000..be79556af83 --- /dev/null +++ b/documentation/docs/pages/developers/clients/socks5/usage.mdx @@ -0,0 +1,62 @@ +# Running the socks5 client + +You can run the initialised client by doing this: + +``` +./nym-socks5-client run --id docs-example +``` + +## Automating your socks5 client with systemd + +Create a service file for the socks5 client at `/etc/systemd/system/nym-socks5-client.service`: + +```ini +[Unit] +Description=Nym Socks5 Client +StartLimitInterval=350 +StartLimitBurst=10 + +[Service] +User=nym # replace this with whatever user you wish +LimitNOFILE=65536 +ExecStart=/home/nym/nym-socks5-client run --id +KillSignal=SIGINT +Restart=on-failure +RestartSec=30 + +[Install] +WantedBy=multi-user.target +``` + +Now enable and start your socks5 client: + +``` +systemctl enable nym-socks5-client.service +systemctl start nym-socks5-client.service +# you can always check your socks5 client has succesfully started with: +systemctl status nym-socks5-client.service +``` + +## Using your Socks5 Client + +After completing the steps above, your local Socks5 Client will be listening on `localhost:1080` ready to proxy traffic to the Network Requester set as the `--provider` when initialising. + +When trying to connect your app, generally the proxy settings are found in `settings->advanced` or `settings->connection`. + +Here is an example of setting the proxy connecting in Blockstream Green: + +![Blockstream Green settings](/images/wallet-proxy-settings/blockstream-green.gif) + +Most wallets and other applications will work basically the same way: find the network proxy settings, enter the proxy url (host: **localhost**, port: **1080**). + +In some other applications, this might be written as **localhost:1080** if there's only one proxy entry field. + +## Useful Commands + +**no-banner** + +Adding `--no-banner` startup flag will prevent Nym banner being printed even if run in tty environment. + +**build-info** + +A `build-info` command prints the build information like commit hash, rust version, binary version just like what command `--version` does. However, you can also specify an `--output=json` flag that will format the whole output as a json, making it an order of magnitude easier to parse. diff --git a/documentation/docs/pages/developers/clients/websocket/_meta.json b/documentation/docs/pages/developers/clients/websocket/_meta.json new file mode 100644 index 00000000000..5e4171b09e2 --- /dev/null +++ b/documentation/docs/pages/developers/clients/websocket/_meta.json @@ -0,0 +1,7 @@ +{ + "setup": "Setup", + "usage": "Usage", + "config": "Config", + "examples": "Examples", + "commands": "Commands" +} diff --git a/documentation/docs/pages/developers/clients/websocket/commands.mdx b/documentation/docs/pages/developers/clients/websocket/commands.mdx index f2c7c7b0e4e..e7a30285cbc 100644 --- a/documentation/docs/pages/developers/clients/websocket/commands.mdx +++ b/documentation/docs/pages/developers/clients/websocket/commands.mdx @@ -25,7 +25,7 @@ Options: -V, --version Print version ``` -### `init` +## `init` ```sh Initialise a Nym client. Do this first! @@ -54,7 +54,7 @@ Options: Print help ``` -### `run` +## `run` ```sh Run the Nym client with provided configuration client optionally overriding set parameters @@ -77,9 +77,9 @@ Options: Print help ``` -### `import-credential` +## `import-credential` -### `list-gateways` +## `list-gateways` ```sh List all registered with gateways @@ -91,7 +91,7 @@ Options: -h, --help Print help ``` -### `switch-gateway` +## `switch-gateway` ```sh Change the currently active gateway. Note that you must have already registered with the new gateway! @@ -103,7 +103,7 @@ Options: -h, --help Print help ``` -### `build-info` +## `build-info` ```sh Show build information of this binary @@ -117,18 +117,18 @@ Example output: ```sh Binary Name: nym-client -Build Timestamp: 2024-10-29T09:48:31.988049207Z -Build Version: 1.1.42 -Commit SHA: 299552881810511273af13eb135297a4cf7a38de -Commit Date: 2024-10-29T10:48:07.000000000+01:00 -Commit Branch: max/new-docs-framework -rustc Version: 1.80.0 -rustc Channel: stable +Build Timestamp: 2024-12-10T11:37:07.839071360Z +Build Version: 1.1.44 +Commit SHA: 62045d76b32265f6a5e6358ab7aebbc827d47dcd +Commit Date: 2024-11-26T11:53:05.000000000+01:00 +Commit Branch: master +rustc Version: 1.84.0-nightly +rustc Channel: nightly cargo Profile: release ``` -### `completions` +## `completions` ```sh Generate shell completions @@ -141,7 +141,7 @@ Options: -h, --help Print help ``` -### `generate-fig-spec` +## `generate-fig-spec` ```sh Generate Fig specification diff --git a/documentation/docs/pages/developers/tools/nym-cli/commands.mdx b/documentation/docs/pages/developers/tools/nym-cli/commands.mdx index 1117807a5ad..9e15fc4eb3b 100644 --- a/documentation/docs/pages/developers/tools/nym-cli/commands.mdx +++ b/documentation/docs/pages/developers/tools/nym-cli/commands.mdx @@ -67,7 +67,7 @@ Options: Print help ``` -### `account create` +## `account create` ```sh Create a new mnemonic - note, this account does not appear on the chain until the account id is used in a transaction @@ -92,7 +92,7 @@ Options: Print help ``` -### `account balance` +## `account balance` ```sh Gets the balance of an account @@ -124,7 +124,7 @@ Options: Print help ``` -### `account pub-key` +## `account pub-key` ```sh Gets the public key of an account @@ -152,7 +152,7 @@ Options: Print help ``` -### `account send` +## `account send` ```sh Sends tokens to another account @@ -183,7 +183,7 @@ Options: Print help ``` -### `account send-multiple` +## `account send-multiple` ```sh Batch multiple token sends @@ -241,7 +241,7 @@ Options: Print help ``` -### `signature sign` +## `signature sign` ```sh Sign a message @@ -267,7 +267,7 @@ Options: Print help ``` -### `signature verify` +## `signature verify` ```sh Verify a message @@ -329,7 +329,7 @@ Options: Print help ``` -### `ecash issue-ticket-book` +## `ecash issue-ticket-book` ```sh Usage: nym-cli ecash issue-ticket-book [OPTIONS] <--client-config |--output-file > @@ -366,7 +366,7 @@ Options: Print help ``` -### `ecash recover-ticket-book` +## `ecash recover-ticket-book` ```sh Usage: nym-cli ecash recover-ticket-book [OPTIONS] --client-config @@ -389,7 +389,7 @@ Options: Print help ``` -### `ecash import-ticket-book` +## `ecash import-ticket-book` ```sh Usage: nym-cli ecash import-ticket-book [OPTIONS] --credentials-store <--credential-data |--credential-path > <--standalone|--full> @@ -422,13 +422,13 @@ Options: ## `coconut` -### `coconut generate-freepass` +## `coconut generate-freepass` -### `coconut issue-credentials` +## `coconut issue-credentials` -### `coconut recover-credentials` +## `coconut recover-credentials` -### `coconut import-credential` +## `coconut import-credential` ## `block` ```sh @@ -460,7 +460,7 @@ Options: Print help ``` -### `block get` +## `block get` ```sh Gets a block's details and prints as JSON @@ -486,7 +486,7 @@ Options: Print help ``` -### `block time` +## `block time` ```sh Gets the block time at a height @@ -512,7 +512,7 @@ Options: Print help ``` -### `block current-height` +## `block current-height` ```sh Gets the current block height @@ -568,7 +568,7 @@ Options: Print help ``` -### `cosmwasm upload` +## `cosmwasm upload` ```sh Upload a smart contract WASM blob @@ -595,7 +595,7 @@ Options: Print help ``` -### `cosmwasm init` +## `cosmwasm init` ```sh Init a WASM smart contract @@ -633,7 +633,7 @@ Options: Print help ``` -### `cosmwasm generate-init-message` +## `cosmwasm generate-init-message` ```sh Generate an instantiate message @@ -665,7 +665,7 @@ Options: Print help ``` -### `cosmwasm migrate` +## `cosmwasm migrate` ```sh Migrate a WASM smart contract @@ -697,7 +697,7 @@ Options: Print help ``` -### `cosmwasm execute` +## `cosmwasm execute` ```sh Execute a WASM smart contract method @@ -758,7 +758,7 @@ Options: Print help ``` -### `tx get` +## `tx get` ```sh Get a transaction by hash or block height @@ -784,7 +784,7 @@ Options: Print help ``` -### `tx query` +## `tx query` ```sh Query for transactions @@ -841,7 +841,7 @@ Options: Print help ``` -### `vesting-schedule create` +## `vesting-schedule create` ```sh Creates a vesting schedule @@ -878,7 +878,7 @@ Options: Print help ``` -### `vesting-schedule query` +## `vesting-schedule query` ```sh Query for vesting schedule @@ -904,7 +904,7 @@ Options: Print help ``` -### `vesting-schedule vested-balance` +## `vesting-schedule vested-balance` ```sh Get the amount that has vested and is free for withdrawal, delegation or bonding @@ -930,7 +930,7 @@ Options: Print help ``` -### `vesting-schedule withdraw-vested` +## `vesting-schedule withdraw-vested` ```sh Withdraw vested tokens (note: the available amount excludes anything delegated or bonded before or after vesting) @@ -986,7 +986,7 @@ Options: Print help ``` -### `mixnet query` +## `mixnet query` ```sh Query the mixnet directory @@ -1015,7 +1015,7 @@ Options: Print help ``` -### `mixnet delegators` +## `mixnet delegators` ```sh Manage your delegations @@ -1050,7 +1050,7 @@ Options: Print help ``` -### `mixnet operators` +## `mixnet operators` ```sh Manage a mixnode or gateway you operate @@ -1104,4 +1104,4 @@ Options: Print help ``` -### `generate-fig ` +## `generate-fig ` diff --git a/documentation/docs/pages/network/cryptography/zk-nym/double-spend-prot.mdx b/documentation/docs/pages/network/cryptography/zk-nym/double-spend-prot.mdx index 05a5c86423d..6da843967be 100644 --- a/documentation/docs/pages/network/cryptography/zk-nym/double-spend-prot.mdx +++ b/documentation/docs/pages/network/cryptography/zk-nym/double-spend-prot.mdx @@ -17,13 +17,13 @@ However, the offline approach introduces certain limitations. - Any potential repercussions against double spenders can only be implemented once the user requests a new credential for their zk-nym Generator (aka they have to 'top up' and buy more bandwidth allowance), assuming they haven't altered their identifier (the Bech32 address). An exploitable scenario arises from these limitations: -- A malicious user purchases bandwidth and aggregates a valid zk-nym credential in the standard way, worth $10 of crypto/fiat. Subsequently, the malicious user proceeds to sell the credential to 100 users for $1 each, allowing each user to generate zk-nym credits of 100MB from this **valid** credential. Under the offline approach, entry nodes forego double-spending checks; so long as the clients all used different ingress Gateways, all 100 users could access the network without obtaining a subscription. As bandwidth consumption is tracked locally between client and ingress node, and each zk-nym credit is rerandomised, there is no way that ingress Gateways would know that the zk-credential used by the client has been shared with other parties. This loophole highlights the need for stringent measures to counter such potential abuses within the system, without creating either speed bottlenecks (in the case of the Online model) or impacting the anonymity of the system. We can, however, mitigate this problem without doing either of these things. +- A malicious user purchases bandwidth and aggregates a valid zk-nym credential in the standard way, worth $10 of crypto/fiat. Subsequently, the malicious user proceeds to sell the credential to 100 users for $1 each, allowing each user to generate zk-nym tickets of 100MB from this **valid** credential. Under the offline approach, entry nodes forego double-spending checks; so long as the clients all used different ingress Gateways, all 100 users could access the network without obtaining a subscription. As bandwidth consumption is tracked locally between client and ingress node, and each zk-nym ticket is rerandomised, there is no way that ingress Gateways would know that the zk-credential used by the client has been shared with other parties. This loophole highlights the need for stringent measures to counter such potential abuses within the system, without creating either speed bottlenecks (in the case of the Online model) or impacting the anonymity of the system. We can, however, mitigate this problem without doing either of these things. ## Solution to Offline Double Spending To efficiently prevent the fraudulent use of tickets within the Nym network, a two-tiered solution is in place that combines (1) the immediate detection of double-spending attempts at the level of individuals ingress Gateways and (2) subsequent identification and blacklisting of offending clients at the Quorum level. ### Entry Node Implementation: Real-Time Ticket Unspending Validation -Each spent zk-nym credit contains as an attribute a unique serial number, which is revealed in plaintext to the respective ingress Gateway. Each Gateway has a copy of a [Bloom Filter](https://www.geeksforgeeks.org/bloom-filters-introduction-and-python-implementation/) - on receiving a credit, it will check against its copy of a local database to check whether this serial number has already been seen. If so, it rejects the credit as being double-spent and the client's connection request is rejected. If not, it will add the serial number to its local DB. +Each spent zk-nym ticket contains as an attribute a unique serial number, which is revealed in plaintext to the respective ingress Gateway. Each Gateway has a copy of a [Bloom Filter](https://www.geeksforgeeks.org/bloom-filters-introduction-and-python-implementation/) - on receiving a ticket, it will check against its copy of a local database to check whether this serial number has already been seen. If so, it rejects the ticket as being double-spent and the client's connection request is rejected. If not, it will add the serial number to its local DB. > Since each time a zk-nym credential is rerandomised its serial number is changed, the serial number being shared in no way identifies a client or user. @@ -32,6 +32,6 @@ Each Gateway will periodically share their serial numbers with the Quorum and re > Crucially, ingress Gateways refrain from extensive computations to identify the original ticket owner, and avoids broadcasting information about the double-spending attempt to other ingress Gateways. The entry node is also not involved in any global blacklisting process of the clients. The sole purpose of this check is to swiftly identify any attempts at double-spending and add the seen ticket's serial number to the local DB cache. ### Nym-API Implementation: Blacklisting and Penalties for Double-Spenders -All Gateways periodically forward the collected credits to the Quorum, enabling them to pinpoint and blacklist any clients who double spend. Upon receiving the credits, the Quorum appends all the incoming serial numbers to the global list of spend zk-nym serial numbers and proceed with the identification process for any malicious users engaging in double-spending. +All Gateways periodically forward the collected tickets to the Quorum, enabling them to pinpoint and blacklist any clients who double spend. Upon receiving the tickets, the Quorum appends all the incoming serial numbers to the global list of spend zk-nym serial numbers and proceed with the identification process for any malicious users engaging in double-spending. This identification phase involves looking for instances of double spending, identifying the id of the double-spending client, and blacklisting this client by its id. Subsequently, when this client requests a new credential, their plaintext public identifier is included in the request. The Quorum then checks if this identifier is blacklisted. If it is, a new credential is not issued. Furthermore, since the PSCs are only attainable after depositing NYM as payment, the Quorum has the authority to withhold the deposited NYMs as a punitive measure for any detected instances of double-spending. diff --git a/documentation/docs/pages/network/cryptography/zk-nym/rerandomise.mdx b/documentation/docs/pages/network/cryptography/zk-nym/rerandomise.mdx index 271fc17bf05..3b4a296eff6 100644 --- a/documentation/docs/pages/network/cryptography/zk-nym/rerandomise.mdx +++ b/documentation/docs/pages/network/cryptography/zk-nym/rerandomise.mdx @@ -2,23 +2,20 @@ import { Callout } from 'nextra/components' # Rerandomisation & Incremental Spend -Each zk-nym credit will not be valid for the entire amount of data that the credential aggregated from the PSCs is; if the aggregated credential is worth (e.g.) 10GB of Mixnet data, each credit will be worth far less (e.g. 100MB). This amount will be globally uniform in order to avoid situations where differently sized credits allow for patterns to emerge. +Each ticket will not be valid for the entire amount of data that the ticketbook aggregated from the PSCs is; if the aggregated ticketbook is worth (e.g.) 10GB of Mixnet data, each ticket will be worth far less (e.g. 100MB). This amount will be globally uniform in order to avoid situations where differently sized tickets allow for patterns to emerge. The functionality included in the following code block examples were added to the [nym-cli tool](../tools/nym-cli.md) for illustrative purposes only: this is not necessarily how credentials will be accessed in the future. - **Furthermore, the `nym-cli` uses the words 'tickets' in place of 'credits' and 'ticketbook' in place of 'aggregated credential': this is wording that we are moving away from now in place of the simpler credential/credit.** This will be updated in the `nym-cli` tool in a future release. - - The numbers used in this high level overview are for illustration purposes only. The figures used in production will potentially vary. Note that individual zkNym sizes will be uniform across the Network. + The numbers used in this high level overview are for illustration purposes only. The figures used in production will potentially vary. Note that individual ticket sizes will be uniform across the Network. - -## Why not spend the entire credential at once? +## Why a 'ticketbook', not individual 'tickets', and why not spend them all at once? This is to account for the need for a client to change their ingress Gateway, either because the Gateway itself has gone down / is not offering the required bandwidth, or because a user might simply want to split their traffic across multiple Gateways for extra privacy. -This means that clients are not tied to particular Gateways they have 'spent' their entire subscription amount with; if the ingress Gateway goes down, or the client simply wishes to use another ingress Gateway, the user has multiple other zk-nym credits they can use that account for their remaining purchased bandwidth. +This means that clients are not tied to particular Gateways they have 'spent' their entire subscription amount with; if the ingress Gateway goes down, or the client simply wishes to use another ingress Gateway, the user has multiple other tickets they can use that account for their remaining purchased bandwidth. -Going back to the `nym-cli` tool to illustrate this; we can generate multiple unlinkable credits ('tickets' on this command output) from a single aggregated credential ('ticketbook' below): +Going back to the `nym-cli` tool to illustrate this; we can generate multiple unlinkable tickets from a single ticketbook aggregated from PSCs: ```sh ❯ ./nym-cli ecash generate-ticket --credential-storage storage.db --provider 6qidVK21zpHD298jdDa1RRpbRozP29ENVyqcSbm6hQrG --full diff --git a/documentation/docs/pages/network/cryptography/zk-nym/unlinkability.mdx b/documentation/docs/pages/network/cryptography/zk-nym/unlinkability.mdx index 90db0096135..e6554299b6d 100644 --- a/documentation/docs/pages/network/cryptography/zk-nym/unlinkability.mdx +++ b/documentation/docs/pages/network/cryptography/zk-nym/unlinkability.mdx @@ -1,14 +1,12 @@ import { Callout } from 'nextra/components' # Unlinkability -Each time a credential is requested by an ingress Gateway to prove that a client has purchased data to send through the Mixnet, instead of sending that credential, the Requester's device will produce a zk-nym credit. This is a rereandomised value that is able to be verified as being legitimate (in that it was created by a valid root credential) but **not linked to any other credits**, either previously generated or to be generated in the future. This feature also allows for a credential to be split across multiple ingress Gateways / connections and [incrementally spent](./rerandomise.md) over time. +Each time a credential is requested by an ingress Gateway to prove that a client has purchased data to send through the Mixnet the Requester's device will produce a ticket. This is a rereandomised value that is able to be verified as being legitimate (in that it was created by a valid root ticketbook) but **not linked to any other tickets**, either previously generated or to be generated in the future. This feature also allows for a single ticketbook to allow access to be split across multiple ingress Gateways / connections and [incrementally spent](./rerandomise.md) over time. The functionality included in the following code block examples were added to the [nym-cli tool](../tools/nym-cli.md) for illustrative purposes only: this is not necessarily how credentials will be accessed in the future. -**Furthermore, the `nym-cli` uses the words 'tickets' in place of 'credits' and 'ticketbook' in place of 'aggregated credential': this is wording that we are moving away from now in place of the simpler credential/credit.** This will be updated in the `nym-cli` tool in a future release. - The numbers used in this high level overview are for illustration purposes only. The figures used in production will potentially vary. Note that individual zkNym sizes will be uniform across the Network. @@ -24,7 +22,7 @@ PAYMENT FOR TICKET 3: VfZAuVRRHekQYMvFevNAZmPPuwMAfEhTBY8TXatBysbrNXAg8euEGPpJvdbhNfQSznBb9nRSeBUSVoNTToSA6Uj5dXmJ7oE2rCB439DarLMWHWYfQNhw6yhWJhcg6bt7ebBYTs3vVeQgSB5kYuifzJF4QQmK6uJyTNPvpV1J6V8M32PBkGT3JpVB3GUGZiksETf7TaF9wAhMo2QAMxw5ZvaQVve5ea7Mane6cfb2Gx69SRff5zDfEQvKqKnyyZje4SGZgWUeHWVLhRjg4KMTJ3JcsHxEqj2k5qeGeyBbgzcuEtCpYvaytsz7nuZGJsT4Z87gB5Zq4NGuDmekuN977eRJvua2dASNWeHiAzVyvnS7ARN5cdUjjYKYiWgHaYrHGsv26WTDeiu4U3sdJMrLHGFY5ihX7f8sTZqD6Wx5AWjQNbEtKaVHymDogfLcwGCC42gQ2yhKfPUaWJ8H4yMB65YBDXGjATaUzcDmJcZKx8g31j2uTVNSFUesd5CRNEEcTNW7cSFFCishCD3T4eV9SuyZyEXAZ48pazPzc1BysBNHEXQNUEtEAZTKmpghC2pihhfDub6LnMJPo9DDdhCULCbcWbGAPc1vPekPaWvk7wrUTGwp5xoNUhQLW3MeJzMvrMSsqLdursCKB4h4Tk272WCStCPQwAKMYoxjWvMzxoUTTWCkhLKHruMtsehRnai4vhu13jbui6ji1F389gfazm4ctth2s4Yw3H3SaPtRETBfZNvZ7n5UV1MD6Q3qin92gT65iqXEi4zRN3woYcK6ZehiSvgUksdEFAUSxNMgNXKtHEYDS6kA37tn5JdBa2Ex2jLudFfhg6JBM226ZKyj65o6feYPgbJAR3jMCmQRHe6DSFb4aH895EowNMjfGUhwhmnbYB1djp7iFXxPP7575NAerhxEQ1WFnxTfoX7pu1Vc9YZb5priCAVbATCaDkECJsdedM45Vx96Jc6E5NWqD98RhMsPimVJkSfYJmRxH9qugica6WonFFb2YLvXYyhoBA1VHBcRqZJ5KHitS5AegYSoYprUfubMzcYo2hGVEQkGKAsFq6jZgCsbJoGLXt3No317vcowB5f3hqT9FjASHAzW2j8uJ9RRzX7XtrPhArwx4EyPgYzrvgG7xcenoSgQt8poa7aYky56eZTKHVUZgUEt6St32MjcivMvmNdWiAHHDc2ZxzTJHgeuCckX7n19vQ3XNLuXv9oGKNNCi8kHnT4tUnnGXNAWXWuyBgZKWUL8u3y41iW6dLYK3Pw5zfpKZTrq3q3bTLJRN5LnnUuFVnWsC3SNqa6VAAvhTGR9PzxLk8C6HeLP2AsYPpqeQwbaL3Ks6tvPdob3tQPWRBGL4uiKtNZ23tRYZGZLYFWZK7psRSZg5AETejKxztVzAuYovpVUiDq71o331tjqWWV1SzWT13Rd1uwz6nHtsjgao2863YaizKARcYr1j9MKtNfDs483yho6i7tbCRR9M4CPLqdiKEaRyVC1FP4F3sejA6nZTuAA35JWUzX6BBj7wgdypMLdMmmtcCZm3bRrF3GvJJs67U8JWRc6dnoGUDaD7rUu ``` -Now lets generate another credit to spend either topping up once the previous one's data allowance has been used, or with another Gateway. Notice that the `ticket-index` is the same: this is generated from the same aggregated credential as the one above! +Now lets generate another ticket to spend either topping up once the previous one's data allowance has been used, or with another Gateway. Notice that the `ticket-index` is the same: this is generated from the same aggregated credential as the one above! ```sh ❯ ./nym-cli ecash generate-ticket --credential-storage storage.db --provider 6qidVK21zpHD298jdDa1RRpbRozP29ENVyqcSbm6hQrG --ticket-index=3 @@ -37,4 +35,4 @@ PAYMENT FOR TICKET 3: Vev3SmwWtH5vbnejX5Zzc1EcxXAgveqHpKNN8arxXaWLhFcEpdcZ6n7qr3NrQUNURWsK2AsUiX8aSiGSjMPEY3iDE3aDYnjYERVow8RKUmQiYSKvz7v9cEJxt97JAHBfu9WYNHXTnLFSJwWuFtBdzY5dzPdzGckFenGCysa1ZBHGADHChDVXKoPHXxpn5qyJxmi48coUQDptR64QgkCeQ8RRZ396Lxw2NKFSjqavCMMDVm3g1rW7cYyPanBhkoAUzPU9KXX1rtmhD6F9gV89mGZ8fm7ByDuKuYU28seLQ7GkVKkhNeRW9XxbjSiyscTnMUzJ24R5VbSdr141BaquUHezdUTzmA2EjAtcyyiVrCMV13cc96CRbMXENP2soUzckFnh1qPnrfKCvX4JYkztq7UgPT2mZEnSTDW4C6Z2NVCNBPNLqUSYrU4id8Jzcp1mBxqJjdYcQ7P5fWJbT5Q9NAq44PCgfXpsUkNoj35QVQvKXKLb5oNGqnua5YC1WBPcENcpS7ZPWpk2hwe8VK4gNgnwQtWH2RPmWbvBREAV97vS1vKNHJyry9sD2PiMJGSmBnb1bKsGxR9UQN3YvRsdGHzyJHzAMTzxbFJBqMPmxjSHJR4UdwzhB81Ludu1RAffTvecWFxmWH5bNymCQjw3wey7Uequcxgyy8KAWYDzvHGwCZQbHQXghsYREiqquZWaa8hX3iTNBFUtEk8PRVT78MoFNdeBWNjsLr8zyZ5EGnf4kqmw3a91g5p5vywf6e3LgMu19VHjPSNtKMNXiatkPEVjsCuCppmV4sB7FsdKKWcMUSWLsdmrDBg9PStHr7NaJRzLL5E91gvysmB36Nob9cHeHSZj3wM4NVVjFfZeRqQf4bi7ahfXjeeBetgDpqx7JcbU6tTN4JpcGUpp7fp4MhTq7MeVQMLweGUVLqewKgAGzCvEmrK6dzLd3U1P9vkAAVZ3cCAKUywnHGxoxDeEfexP1g1EqJLtKNZVKPf7hSMWqGhoQ36K7y5GnyZ5YhQ7jcDME9orm5w4StoxoDdCPcjbakKG7UaTHuhd7tU1mUffXcEvVerkXoQK9SEaKvGks21RBhW86aHUzJWVbkiDzdaqjJWbmzLV8FKvNxNyzucoH2rq8LiHRMZfV1H3SkVSa4j2Ktw7ZGoQfdj8DgekxXSR2nHPfhybzKYXTBqFo2ACisxkjR4rXr9Xo6eYywQhQ1MP6aYgYCAXFGHPoFf7kx7Jns5sWvHRBdaMF65zeFF2m5NDuMWETtLgFfsyNgR84vfSqTfzj2gsUykRei7q9N4LKmiDwBALTAEcTvZpLtXBjc8JaB9PUeBw7DoSiSK376sGrQ9F6ZGTngXACNz1TbvYhtau4bDa6KC2Qn7wmoyrphpn7TtM1jdwGBxLcaEEWZKQHvWVfTyL2itjqnrcAZkxYdCj56oQYwpWfKQk3zJEUA6SYHqyJjaLNVK6u25j7969EWjdpTsJ8qSsZgXi3T7dQqiwintZbUUUKRq7egN1SGVnA6Wup91uKrYUWEWMqVu4g8ipmRsLD9iXHHr3yA21Cka7pqk1FxR9BFTAnkk1 ``` -These are both generated by the _same_ underlying credential and used in a way that they cannot be tied to each other. An ingress Gateway might (for instance) get 100 connection requests from 100 Nym clients, each validated with a zk-nym credi t. It has no way of knowing whether these are all from the same single subscription, or 100 different ones. +These are both generated by the _same_ underlying ticketbook and used in a way that they cannot be tied to each other. An ingress Gateway might (for instance) get 100 connection requests from 100 Nym clients, each validated with a ticket. It has no way of knowing whether these are all from the same single subscription, or 100 different ones. diff --git a/documentation/docs/pages/network/cryptography/zk-nym/zk-nym-overview.mdx b/documentation/docs/pages/network/cryptography/zk-nym/zk-nym-overview.mdx index ec019a3266d..14cc7488c64 100644 --- a/documentation/docs/pages/network/cryptography/zk-nym/zk-nym-overview.mdx +++ b/documentation/docs/pages/network/cryptography/zk-nym/zk-nym-overview.mdx @@ -14,7 +14,7 @@ import { Callout } from 'nextra/components' Generation of zk-nyms involves the following actors / pieces of infrastructure: -- **Requester needing a zk-nym** for example a single user using the NymVPN app, or a company purchasing zk-nyms to distribute to their app users, in the instance of an app integrating a Mixnet client via one of the SDKs. The Requester is represented by a Bech32 address on the Nyx blockchain. +- **Requester needing a zk-nym** for example a single user using the NymVPN app, or a company purchasing zk-nyms to distribute to their app users, in the instance of an app integrating a Mixnet client via one of the SDKs. The Requester is represented by a Bech32 address on the Nyx blockchain. - [NymAPI](../../architecture/nyx/nym-api) instances working together on signature generation and spent credential validation, referred to as the **NymAPI Quorum**. Members of the Quorum are a subset of the Nyx chain Validator set (other tasks they perform include a multisig used for triggering reward payouts to the Network Infrastructure Node Operators and maintaining the global Bloom Filter for double-spend protection). - **OrderAPI**: an API creating crypto/fiat to `NYM` swaps and then depositing the NYM tokens in a smart contract managed by the NymAPI Quroum for payment verification. Implementation details of the API will be released in the coming months. @@ -26,8 +26,8 @@ Generation happens in 3 distinct stages: From the perspective of the Requester most of this happens under the hood, but results in the creation and usage of an **unlinkable, rerandomisable anonymous proof-of-payment credential** - a zk-nym - with which to access the Mixnet without fear of doxxing themselves via linking app usage and payment information. The user experience is further enhanced by the fact that a single credential can be split into multiple small zk-nyms, meaning that a Requester may buy a large chunk of bandwidth but 'spend' this in the form of multiple zk-nyms with different ingress Gateways. Whilst this happens under the hood, what it affords the Requester is an ease of experience in that they have to 'top up' their bandwidth less and are able to chop and change ingress points to the Nym Network as they see fit, akin to the UX of most modern day VPNs and dVPNs. ## Key Generation & Payment -- First, a Cosmos [Bech32 address](https://docs.cosmos.network/main/build/spec/addresses/bech32) is created for the Requester. This is used to identify themselves when interacting with the OrderAPI via signed authentication tokens. This is the only identity that the OrderAPI is able to see, and is not able to link this to the zk-nyms that will be generated. This identity never leaves the Requester’s device and there is no email or any personal details needed for signup. If a Requester is simply 'topping up' their subscription, the creation of the address is skipped as it already exists. -- The Requester also generates an ed25519 keypair: this is used to identify and authenticate them in the case of using zk-nyms across several devices as an individual user. However, this is never used in the clear: these keys are used as private attribute values within generated credentials which are verified via zero-knowledge. +- First, a Cosmos [Bech32 address](https://docs.cosmos.network/main/build/spec/addresses/bech32) is created for the Requester. This is used to identify themselves when interacting with the OrderAPI via signed authentication tokens. **This is the only identity that the OrderAPI is able to see, and is not able to link this to the zk-nyms that will be generated.** This identity never leaves the Requester’s device and there is no email or any personal details needed for signup. If a Requester is simply 'topping up' their subscription, the creation of the address is skipped as it already exists. +- The Requester also generates an ed25519 keypair: this is used to identify and authenticate them in the case of using zk-nyms across several devices as an individual user. However, **this is never used in the clear**: these keys are used as private attribute values within generated credentials which are verified via zero-knowledge and not publicly exposed. - The Requester can then interact with various payment backends to pay for their zk-nyms with crypto, fiat options, or natively with NYM tokens. - Payment options will trigger the OrderAPI. This will: - Create a swap for `` to `NYM` tokens. @@ -35,24 +35,24 @@ From the perspective of the Requester most of this happens under the hood, but r - The Requester sends a request to each member of the Quorum requesting a zk-nym credential. This request is signed with their private key and includes the transaction hash of the NYM deposit into the deposit contract, performed either by themselves or the OrderAPI. ## Issue zk-nym -At this point, NYM tokens have been deposited into the smart contract controlled by the Quorum's multisig and a zk-nym credential has been requested. Next, each member of the Quorum who responds to the Requester's request for a zk-nym checks the validity and returns a PSC signed with part of the master key (since this is a threshold cryptsystem, not all members of the Quroum must respond to create a zk-nym, only enough to pass the threshold). The process looks like this: +At this point, NYM tokens have been deposited into the smart contract controlled by the Quorum's multisig and a zk-nym has been requested. Next, each member of the Quorum who responds to the Requester's request for a zk-nym checks the validity and returns a partial blinded signature - a 'partial signed credential' ('PSC') - signed with part of the master key (since this is a threshold cryptsystem, not all members of the Quroum must respond to create a zk-nym, only enough to pass the threshold). The process looks like this: - Members of the Quroum performs several checks to verify the request is valid: - They verify the signature sent as part of the request is valid and that the request was made in the last 48 hours. - They verify that the amount requested matches the amount deposited in the transation, the hash of which was signed by the Requester's ed25519 key and sent as part of the request. -- Members then create a partial blinded signature - a 'partial signed credential' ('PSC') - from their fragment of the master key generated and split amongst them at the beginning of the Quroum in the initial DKG ceremony. +- Members then create a PSC from their fragment of the master key generated and split amongst them at the beginning of the Quroum in the initial DKG ceremony. - The member also creates a `key:value` entry in their local cache with the transaction hash as the key, and the PSC + encrypted signature as the value. This is used later for zk-nym validation and is cleaned after a predefined timeout. - These PSCs are given back to the Requester after setting up a secure channel via DH key exchange, with each replying Quorum member also sending their public key for verification that the returned PSC was signed by them. -Once the Requester has received over the threshold number of PSCs they can assemble them into a credential signed by the master key. The Requester never learns this master key (it is a private attribute) but the credential can be verified by the Quroum as being valid by checking for a proof that the credential's private attribute - the value of the master key - is valid. +Once the Requester has received over the threshold number of PSCs they can assemble them into a 'ticketbook' of 'tickets' - spendable credentials - signed by the master key. The Requester never learns this master key (it is a private attribute) but the credential can be verified by the Quroum as being valid by checking for a proof that the credential's private attribute - the value of the master key - is valid. ![](/images/network/deposit-generate.png) ## Spend zk-nym to Access Mixnet -- Once the credential has been aggregated from the PSCs returned from > threshold of Quorum members, smaller 'zk-nym credits' can be generated from it, accounting for smaller chunks of bandwidth which can be 'spent' with ingress Gateways. This occurs entirely offline, on the device of the zk-nym Requester. See pages on the scheme's [unlinkability](unlinkability.md) and [rerandomisation and incremental spending](./rerandomise.md) features for further information on this. -- This zk-nym credit is later presented to the Quorum by the Gateway that collected it, which is used to calculate reward percentages given to Nym Network infrastructure operators by the Quorum, with payouts triggered by their multisig wallet. Both ingress Gateways and the Quorum use spent zk-nym credits when engaging in [double spending protection](./double-spend-prot.md). +- Once the ticketbook has been aggregated from the PSCs returned from > threshold of Quorum members, smaller 'ticket' credentials can be generated from it, accounting for smaller chunks of bandwidth which can be 'spent' with ingress Gateways. This occurs entirely offline, on the device of the zk-nym Requester. See pages on the scheme's [unlinkability](unlinkability.md) and [rerandomisation and incremental spending](./rerandomise.md) features for further information on this. +- This ticket is later presented to the Quorum by the Gateway that collected it, which is used to calculate reward percentages given to Nym Network infrastructure operators by the Quorum, with payouts triggered by their multisig wallet. Both ingress Gateways and the Quorum use spent tickets when engaging in [double spending protection](./double-spend-prot.md). ![](/images/network/use-zknym.png) diff --git a/documentation/docs/pages/styles.css b/documentation/docs/pages/styles.css index 87255c71af9..aa26004976d 100644 --- a/documentation/docs/pages/styles.css +++ b/documentation/docs/pages/styles.css @@ -1,12 +1,3 @@ -body { - --colorPrimary: #fc8469; - /* --textPrimary: #121726; */ -} - -div.nextra-code-block > div { - background: var(--colorPrimary) !important; -} - footer { text-align: center; } @@ -20,21 +11,23 @@ footer { /* set width entire div */ .nx-mx-auto.nx-flex.nx-max-w-\[90rem\] { max-width: 110rem; - padding: 0%; + left-padding: 1%; } .nextra-toc { - width: 300px !important; + width: 10px !important; padding-right: 0px; padding-left: 0px; - text-align: right; + /* text-align: right; */ border-left: 1px solid #262626; } -/* Code blocks*/ -.nx-absolute.nx-top-0 { - background: var(--colorPrimary) !important; - color: var(--textPrimary) !important; +.nextra-content { + padding-top: 0 !important; + padding-right: 0 !important; + padding-bottom: 0 !important; + padding-left: 0 !important; + margin: 0 !important; } :is(html[class~="dark"] .dark\:nx-bg-primary-300\/10) { @@ -56,14 +49,6 @@ footer { column-width: 500px; } -/* aside ul > li > a:hover{ - background: #fb6e4ea9 !important; -} */ - -/* aside ul > li > a:active{ - background: #fb6e4e !important; -} */ - /* Links*/ .nx-text-primary-600.nx-underline.nx-decoration-from-font { color: var(--colorPrimary) !important; @@ -73,31 +58,6 @@ footer { color: var(--colorPrimary) !important; } -/* Callouts */ -/* -.nextra-callout { - background-color: #fb6e4e21 !important; -} - -.nx-mt-6 .nx-leading-7 > p { - color: var(--colorPrimary) !important; -} -*/ - -/* Callout Secondary */ -/* -:is(html .dark\:nx-border-yellow-200\/30) { - border-color: transparent !important; -} -*/ - -/* Callout Primary */ -/* -:is(html .dark\:nx-border-blue-200\/30) { - border-color: var(--colorPrimary) !important; -} -*/ - /* Chips*/ .chipContained { background-color: var(--colorPrimary) !important; @@ -138,7 +98,6 @@ a.MuiLink-root { color: var(--colorPrimary) !important; } - .MuiPaper-root.MuiAccordion-root { border-radius: 8px; } diff --git a/documentation/docs/pnpm-lock.yaml b/documentation/docs/pnpm-lock.yaml index 3d10a3f4a9e..48f2a523b07 100644 --- a/documentation/docs/pnpm-lock.yaml +++ b/documentation/docs/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: dependencies: + '@apidevtools/swagger-parser': + specifier: ^10.1.0 + version: 10.1.0(openapi-types@12.1.3) '@coreui/coreui': specifier: ^5.1.2 version: 5.1.2(@popperjs/core@2.11.8) @@ -80,6 +83,9 @@ importers: '@nymproject/sdk-full-fat': specifier: '>=1.2.4-rc.2 || ^1' version: 1.2.3 + '@redocly/cli': + specifier: ^1.25.15 + version: 1.25.15(enzyme@3.11.0) '@types/mdx': specifier: ^2.0.13 version: 2.0.13 @@ -139,6 +145,21 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + '@apidevtools/json-schema-ref-parser@9.0.6': + resolution: {integrity: sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==} + + '@apidevtools/openapi-schemas@2.1.0': + resolution: {integrity: sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==} + engines: {node: '>=10'} + + '@apidevtools/swagger-methods@3.0.2': + resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==} + + '@apidevtools/swagger-parser@10.1.0': + resolution: {integrity: sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==} + peerDependencies: + openapi-types: '>=7' + '@babel/code-frame@7.25.9': resolution: {integrity: sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ==} engines: {node: '>=6.9.0'} @@ -187,6 +208,13 @@ packages: '@braintree/sanitize-url@6.0.4': resolution: {integrity: sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==} + '@cfaester/enzyme-adapter-react-18@0.8.0': + resolution: {integrity: sha512-3Z3ThTUouHwz8oIyhTYQljEMNRFtlVyc3VOOHCbxs47U6cnXs8K9ygi/c1tv49s7MBlTXeIcuN+Ttd9aPtILFQ==} + peerDependencies: + enzyme: ^3.11.0 + react: '>=18' + react-dom: '>=18' + '@chain-registry/client@1.53.1': resolution: {integrity: sha512-fNhNzElizS84XnUX8DejLcCPbJE5Fiw/8pVNE+d3hxB+qSXxFR//W+np4WKhCbjxmNt8ON1DVFzbu5HJQ+TJvA==} @@ -335,9 +363,15 @@ packages: '@emotion/hash@0.9.2': resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} + '@emotion/is-prop-valid@1.2.2': + resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} + '@emotion/is-prop-valid@1.3.1': resolution: {integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==} + '@emotion/memoize@0.8.1': + resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} + '@emotion/memoize@0.9.0': resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} @@ -369,6 +403,9 @@ packages: '@emotion/unitless@0.10.0': resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} + '@emotion/unitless@0.8.1': + resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} + '@emotion/use-insertion-effect-with-fallbacks@1.1.0': resolution: {integrity: sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==} peerDependencies: @@ -449,6 +486,9 @@ packages: '@ethersproject/web@5.7.1': resolution: {integrity: sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==} + '@exodus/schemasafe@1.3.0': + resolution: {integrity: sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==} + '@floating-ui/core@1.6.8': resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} @@ -551,6 +591,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jsdevtools/ono@7.1.3': + resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} + '@keplr-wallet/common@0.12.28': resolution: {integrity: sha512-ESQorPZw8PRiUXhsrxED+E1FEWkAdc6Kwi3Az7ce204gMBQDI2j0XJtTd4uCUp+C24Em9fk0samdHzdoB4caIg==} @@ -2356,6 +2399,21 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + '@redocly/ajv@8.11.2': + resolution: {integrity: sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==} + + '@redocly/cli@1.25.15': + resolution: {integrity: sha512-ZD743CJX4FpMJvGNE9Cm3gNn8LNRzRjyrYNVPi1C4iIEtrFkr5Zq791qv6gUFehWns71svbVyzWD9ftVTdfqYg==} + engines: {node: '>=14.19.0', npm: '>=7.0.0'} + hasBin: true + + '@redocly/config@0.17.1': + resolution: {integrity: sha512-CEmvaJuG7pm2ylQg53emPmtgm4nW2nxBgwXzbVEHpGas/lGnMyN8Zlkgiz6rPw0unASg6VW3wlz27SOL5XFHYQ==} + + '@redocly/openapi-core@1.25.15': + resolution: {integrity: sha512-/dpr5zpGj2t1Bf7EIXEboRZm1hsJZBQfv3Q1pkivtdAEg3if2khv+b9gY68aquC6cM/2aQY2kMLy8LlY2tn+Og==} + engines: {node: '>=14.19.0', npm: '>=7.0.0'} + '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -2529,6 +2587,9 @@ packages: '@types/react@18.3.12': resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==} + '@types/stylis@4.2.5': + resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} + '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} @@ -2713,6 +2774,10 @@ packages: resolution: {integrity: sha512-JlqiAl9CPvTm5kKG0QXmVCWNWoC/XyRMOeT77cQlbxXWllgjf6SqUmaNqFon72C2o5OSZids+5FvLdsw6dvWaw==} hasBin: true + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + acorn-import-attributes@1.9.5: resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: @@ -2728,6 +2793,18 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} + + ajv-draft-04@1.0.0: + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + ajv-formats@2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -2819,6 +2896,10 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + array.prototype.filter@1.0.4: + resolution: {integrity: sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ==} + engines: {node: '>= 0.4'} + array.prototype.findlast@1.2.5: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} @@ -2933,6 +3014,9 @@ packages: bn.js@5.2.1: resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + bowser@2.11.0: resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} @@ -2974,6 +3058,9 @@ packages: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} + call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -2982,6 +3069,9 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} + camelize@1.0.1: + resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} + caniuse-lite@1.0.30001669: resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==} @@ -3019,6 +3109,13 @@ packages: character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.0.0: + resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} + engines: {node: '>=18.17'} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -3033,6 +3130,9 @@ packages: citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -3044,6 +3144,9 @@ packages: resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} engines: {node: '>=18'} + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -3079,6 +3182,9 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + colorette@1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -3129,6 +3235,9 @@ packages: peerDependencies: webpack: ^5.1.0 + core-js@3.39.0: + resolution: {integrity: sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==} + cose-base@1.0.3: resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} @@ -3161,6 +3270,16 @@ packages: crypto-js@4.2.0: resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + css-color-keywords@1.0.0: + resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} + engines: {node: '>=4'} + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-to-react-native@3.2.0: + resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} + css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} @@ -3359,6 +3478,9 @@ packages: supports-color: optional: true + decko@1.2.0: + resolution: {integrity: sha512-m8FnyHXV1QX+S1cl+KPFDIl6NMkxtKsy6+U/aYyjrOqWMuwAwYWu7ePqrsUHtDR5Y8Yk2pi/KIDSgF+vT4cPOQ==} + decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} @@ -3438,6 +3560,9 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} + discontinuous-range@1.0.0: + resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} + dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} @@ -3452,9 +3577,22 @@ packages: dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dompurify@3.1.6: resolution: {integrity: sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==} + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -3486,6 +3624,9 @@ packages: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} engines: {node: '>= 4'} + encoding-sniffer@0.2.0: + resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==} + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -3497,6 +3638,12 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + enzyme-shallow-equal@1.0.7: + resolution: {integrity: sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg==} + + enzyme@3.11.0: + resolution: {integrity: sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -3504,6 +3651,9 @@ packages: resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} + es-array-method-boxes-properly@1.0.0: + resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + es-define-property@1.0.0: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} @@ -3534,6 +3684,9 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} + es6-promise@3.3.1: + resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -3696,6 +3849,13 @@ packages: event-stream@4.0.1: resolution: {integrity: sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==} + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -3732,9 +3892,16 @@ packages: resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} engines: {node: '>=6'} + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + fast-uri@3.0.3: resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} + fast-xml-parser@4.5.0: + resolution: {integrity: sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==} + hasBin: true + fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} @@ -3792,6 +3959,9 @@ packages: for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + foreach@2.0.6: + resolution: {integrity: sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==} + foreground-child@3.3.0: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} @@ -3940,6 +4110,11 @@ packages: h3@1.13.0: resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==} + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} @@ -3970,6 +4145,10 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} + has@1.0.4: + resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} + engines: {node: '>= 0.4.0'} + hash-base@3.1.0: resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} engines: {node: '>=4'} @@ -4027,13 +4206,26 @@ packages: hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + html-element-map@1.3.1: + resolution: {integrity: sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==} + html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + htmlparser2@9.1.0: + resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} + http-shutdown@1.2.2: resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + http2-client@1.3.5: + resolution: {integrity: sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==} + + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + engines: {node: '>= 14'} + human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} @@ -4251,6 +4443,9 @@ packages: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} + is-subset@0.1.1: + resolution: {integrity: sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==} + is-symbol@1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} @@ -4311,6 +4506,10 @@ packages: resolution: {integrity: sha512-EX4oNDwcXSivPrw2qKH2LB5PoFxEvgtv2JgwW0bU858HoLQ+kutSvjLMUqBd0PeJYEinLWhoI9Ol0eYMqj/wNQ==} hasBin: true + js-levenshtein@1.1.6: + resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} + engines: {node: '>=0.10.0'} + js-sha3@0.8.0: resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} @@ -4336,6 +4535,9 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-pointer@0.6.2: + resolution: {integrity: sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==} + json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -4450,6 +4652,12 @@ packages: lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + lodash.escape@4.0.1: + resolution: {integrity: sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==} + + lodash.flattendeep@4.4.0: + resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} + lodash.foreach@4.5.0: resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==} @@ -4501,9 +4709,15 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc + lunr@2.3.9: + resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + map-stream@0.0.7: resolution: {integrity: sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==} + mark.js@8.11.1: + resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} + markdown-extensions@1.1.1: resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} engines: {node: '>=0.10.0'} @@ -4511,6 +4725,11 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + marked@4.3.0: + resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} + engines: {node: '>= 12'} + hasBin: true + match-sorter@6.3.4: resolution: {integrity: sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==} @@ -4743,6 +4962,10 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} @@ -4761,12 +4984,41 @@ packages: mlly@1.7.2: resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==} + mobx-react-lite@4.0.7: + resolution: {integrity: sha512-RjwdseshK9Mg8On5tyJZHtGD+J78ZnCnRaxeQDSiciKVQDUbfZcXhmld0VMxAwvcTnPEHZySGGewm467Fcpreg==} + peerDependencies: + mobx: ^6.9.0 + react: ^16.8.0 || ^17 || ^18 + react-dom: '*' + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + + mobx-react@9.1.1: + resolution: {integrity: sha512-gVV7AdSrAAxqXOJ2bAbGa5TkPqvITSzaPiiEkzpW4rRsMhSec7C2NBCJYILADHKp2tzOAIETGRsIY0UaCV5aEw==} + peerDependencies: + mobx: ^6.9.0 + react: ^16.8.0 || ^17 || ^18 + react-dom: '*' + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + mobx@6.13.5: resolution: {integrity: sha512-/HTWzW2s8J1Gqt+WmUj5Y0mddZk+LInejADc79NJadrWla3rHzmRHki/mnEUH1AvOmbNTZ1BRbKxr8DSgfdjMA==} modern-ahocorasick@1.0.1: resolution: {integrity: sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==} + moo@0.5.2: + resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -4791,6 +5043,10 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + nearley@2.20.1: + resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} + hasBin: true + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -4853,6 +5109,10 @@ packages: node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-fetch-h2@2.3.0: + resolution: {integrity: sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==} + engines: {node: 4.x || >=6.0.0} + node-fetch-native@1.6.4: resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} @@ -4869,6 +5129,9 @@ packages: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} + node-readfiles@0.2.0: + resolution: {integrity: sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==} + node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} @@ -4891,6 +5154,25 @@ packages: resolution: {integrity: sha512-O/j/ROyX0KGLG7O6Ieut/seQ0oiTpHF2tXAcFbpdTLQFiaNtkyTXXocM1fwpaa60dg1qpWj0nHlbNhx6qwuENQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + oas-kit-common@1.0.8: + resolution: {integrity: sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==} + + oas-linter@3.2.2: + resolution: {integrity: sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==} + + oas-resolver@2.5.6: + resolution: {integrity: sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==} + hasBin: true + + oas-schema-walker@1.1.5: + resolution: {integrity: sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==} + + oas-validator@5.0.8: + resolution: {integrity: sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -4903,6 +5185,10 @@ packages: resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} engines: {node: '>= 0.4'} + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -4943,6 +5229,12 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} + openapi-sampler@1.6.0: + resolution: {integrity: sha512-0PKhql1Ms38xSngEztcNQ7EXgssR2jAyVX7RckEln4reynIr/HHwuwM29cDEpiNkk4OkrHoc+7Li9V7WTAPYmw==} + + openapi-types@12.1.3: + resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -4985,9 +5277,18 @@ packages: parse-url@8.1.0: resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} + parse5-htmlparser2-tree-adapter@7.1.0: + resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} + + parse5-parser-stream@7.1.2: + resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + parse5@7.2.0: resolution: {integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==} + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -5025,6 +5326,12 @@ packages: pause-stream@0.0.11: resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} + perfect-scrollbar@1.5.6: + resolution: {integrity: sha512-rixgxw3SxyJbCaSpo1n35A/fwI1r2rdwMKOTCg/AcG+xOEyZcE8UHVjpZMFCVImzsFoCZeJTT+M/rdEIQYO2nw==} + + performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} @@ -5056,6 +5363,14 @@ packages: pkg-types@1.2.1: resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + polished@4.3.1: + resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} + engines: {node: '>=10'} + possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} @@ -5101,6 +5416,10 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.4.47: resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} @@ -5109,6 +5428,10 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + process-warning@1.0.0: resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} @@ -5158,12 +5481,22 @@ packages: radix3@1.1.2: resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + raf@3.4.1: + resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==} + + railroad-diagrams@1.0.0: + resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} + rainbow-sprinkles@0.17.3: resolution: {integrity: sha512-tu00bbDozceDz/ajL8YzDn5L0mf0uVHR93v2tfGKKbemKeuPk8R4mXUokleKsA24vzrPiw26iMK53HdRy6HLag==} peerDependencies: '@vanilla-extract/css': ^1 '@vanilla-extract/dynamic': ^2 + randexp@0.4.6: + resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} + engines: {node: '>=0.12'} + randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -5210,6 +5543,11 @@ packages: '@types/react': optional: true + react-shallow-renderer@16.15.0: + resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-stately@3.33.0: resolution: {integrity: sha512-DNPOxYAPuhuXwSuE1s1K7iSgqG2QOBUZq3bsLAd4gUUZje6Qepkhe7TzK2LWarQYAZ3gC9Xhmnz8ie1fdCo0GA==} peerDependencies: @@ -5225,6 +5563,11 @@ packages: '@types/react': optional: true + react-tabs@6.0.2: + resolution: {integrity: sha512-aQXTKolnM28k3KguGDBSAbJvcowOQr23A+CUJdzJtOSDOtTwzEaJA+1U4KwhNL9+Obe+jFS7geuvA7ICQPXOnQ==} + peerDependencies: + react: ^18.0.0 + react-textarea-autosize@8.5.4: resolution: {integrity: sha512-eSSjVtRLcLfFwFcariT77t9hcbVJHQV76b51QjQGarQIHml2+gM2lms0n3XrhnDmgK5B+/Z7TmQk5OHNzqYm/A==} engines: {node: '>=10'} @@ -5265,10 +5608,23 @@ packages: redeyed@2.1.1: resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} + redoc@2.2.0: + resolution: {integrity: sha512-52rz/xJtpUBc3Y/GAkaX03czKhQXTxoU7WnkXNzRLuGwiGb/iEO4OgwcgQqtwHWrYNaZXTyqZ4MAVXpi/e1gAg==} + engines: {node: '>=6.9', npm: '>=3.0.0'} + peerDependencies: + core-js: ^3.1.4 + mobx: ^6.0.4 + react: ^16.8.4 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.4 || ^17.0.0 || ^18.0.0 + styled-components: ^4.1.1 || ^5.1.1 || ^6.0.5 + reflect.getprototypeof@1.0.6: resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} + reftools@1.1.9: + resolution: {integrity: sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==} + regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -5335,6 +5691,10 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true + ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -5350,6 +5710,9 @@ packages: robust-predicates@3.0.2: resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} + rst-selector-parser@2.2.3: + resolution: {integrity: sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -5432,6 +5795,9 @@ packages: resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} hasBin: true + shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -5451,6 +5817,24 @@ packages: shiki@0.14.7: resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} + should-equal@2.0.0: + resolution: {integrity: sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==} + + should-format@3.0.3: + resolution: {integrity: sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==} + + should-type-adaptors@1.1.0: + resolution: {integrity: sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==} + + should-type@1.4.0: + resolution: {integrity: sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==} + + should-util@1.0.1: + resolution: {integrity: sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==} + + should@13.2.3: + resolution: {integrity: sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==} + side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} @@ -5465,6 +5849,9 @@ packages: simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + simple-websocket@9.1.0: + resolution: {integrity: sha512-8MJPnjRN6A8UCp1I+H/dSFyjwJhp6wta4hsVRhjf8w9qBHRzxYt14RaOcjvQnhD1N4yKOddEjflwMnQM4VtXjQ==} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -5473,6 +5860,10 @@ packages: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} + slugify@1.4.7: + resolution: {integrity: sha512-tf+h5W1IrjNm/9rKKj0JU2MDMruiopx0jjVA5zCdBtcGjfp0+c5rHw/zADLC3IeKlGHtVbHtpfzvYA0OYT+HKg==} + engines: {node: '>=8.0.0'} + sonic-boom@2.8.0: resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} @@ -5522,6 +5913,9 @@ packages: std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + stickyfill@1.1.1: + resolution: {integrity: sha512-GCp7vHAfpao+Qh/3Flh9DXEJ/qSi0KJwJw6zYlZOtRYXWUIpMM6mC2rIep/dK8RQqwW0KxGJIllmjPIBOGN8AA==} + stream-combiner@0.2.2: resolution: {integrity: sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==} @@ -5600,9 +5994,19 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + style-to-object@0.4.4: resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + styled-components@6.1.13: + resolution: {integrity: sha512-M0+N2xSnAtwcVAQeFEsGWFFxXDftHUD7XrKla06QbpUMmbmtFBMMTcKWvFXtWxuD5qQkB8iU5gk6QASlx2ZRMw==} + engines: {node: '>= 16'} + peerDependencies: + react: '>= 16.8.0' + react-dom: '>= 16.8.0' + styled-jsx@5.1.1: resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} @@ -5619,6 +6023,9 @@ packages: stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + stylis@4.3.2: + resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} + stylis@4.3.4: resolution: {integrity: sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==} @@ -5647,6 +6054,10 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + swagger2openapi@7.0.8: + resolution: {integrity: sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==} + hasBin: true + symbol-observable@2.0.3: resolution: {integrity: sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==} engines: {node: '>=0.10'} @@ -5767,6 +6178,9 @@ packages: tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.8.0: resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} @@ -5809,6 +6223,11 @@ packages: ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + uint8arrays@3.1.0: resolution: {integrity: sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==} @@ -5818,6 +6237,10 @@ packages: uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + undici@6.21.0: + resolution: {integrity: sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==} + engines: {node: '>=18.17'} + unenv@1.10.0: resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} @@ -5943,6 +6366,9 @@ packages: uqr@0.1.2: resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + uri-js-replace@1.0.1: + resolution: {integrity: sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -5952,6 +6378,9 @@ packages: url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + url-template@2.0.8: + resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==} + use-callback-ref@1.3.2: resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} engines: {node: '>=10'} @@ -6071,9 +6500,17 @@ packages: webpack-cli: optional: true + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + whatwg-fetch@3.6.20: resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -6108,6 +6545,9 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -6141,6 +6581,9 @@ packages: yallist@2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + yaml-ast-parser@0.0.43: + resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} + yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} @@ -6150,10 +6593,18 @@ packages: engines: {node: '>= 14'} hasBin: true + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs@17.0.1: + resolution: {integrity: sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==} + engines: {node: '>=12'} + yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -6187,6 +6638,27 @@ snapshots: '@alloc/quick-lru@5.2.0': {} + '@apidevtools/json-schema-ref-parser@9.0.6': + dependencies: + '@jsdevtools/ono': 7.1.3 + call-me-maybe: 1.0.2 + js-yaml: 3.14.1 + + '@apidevtools/openapi-schemas@2.1.0': {} + + '@apidevtools/swagger-methods@3.0.2': {} + + '@apidevtools/swagger-parser@10.1.0(openapi-types@12.1.3)': + dependencies: + '@apidevtools/json-schema-ref-parser': 9.0.6 + '@apidevtools/openapi-schemas': 2.1.0 + '@apidevtools/swagger-methods': 3.0.2 + '@jsdevtools/ono': 7.1.3 + ajv: 8.17.1 + ajv-draft-04: 1.0.0(ajv@8.17.1) + call-me-maybe: 1.0.2 + openapi-types: 12.1.3 + '@babel/code-frame@7.25.9': dependencies: '@babel/highlight': 7.25.9 @@ -6250,6 +6722,17 @@ snapshots: '@braintree/sanitize-url@6.0.4': {} + '@cfaester/enzyme-adapter-react-18@0.8.0(enzyme@3.11.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + enzyme: 3.11.0 + enzyme-shallow-equal: 1.0.7 + function.prototype.name: 1.1.6 + has: 1.0.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + react-shallow-renderer: 16.15.0(react@18.3.1) + '@chain-registry/client@1.53.1': dependencies: '@chain-registry/types': 0.50.1 @@ -6736,10 +7219,16 @@ snapshots: '@emotion/hash@0.9.2': {} + '@emotion/is-prop-valid@1.2.2': + dependencies: + '@emotion/memoize': 0.8.1 + '@emotion/is-prop-valid@1.3.1': dependencies: '@emotion/memoize': 0.9.0 + '@emotion/memoize@0.8.1': {} + '@emotion/memoize@0.9.0': {} '@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1)': @@ -6785,6 +7274,8 @@ snapshots: '@emotion/unitless@0.10.0': {} + '@emotion/unitless@0.8.1': {} + '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@18.3.1)': dependencies: react: 18.3.1 @@ -6927,6 +7418,8 @@ snapshots: '@ethersproject/properties': 5.7.0 '@ethersproject/strings': 5.7.0 + '@exodus/schemasafe@1.3.0': {} + '@floating-ui/core@1.6.8': dependencies: '@floating-ui/utils': 0.2.8 @@ -7080,6 +7573,8 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jsdevtools/ono@7.1.3': {} + '@keplr-wallet/common@0.12.28': dependencies: '@keplr-wallet/crypto': 0.12.28 @@ -9999,6 +10494,61 @@ snapshots: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@redocly/ajv@8.11.2': + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js-replace: 1.0.1 + + '@redocly/cli@1.25.15(enzyme@3.11.0)': + dependencies: + '@redocly/openapi-core': 1.25.15 + abort-controller: 3.0.0 + chokidar: 3.6.0 + colorette: 1.4.0 + core-js: 3.39.0 + form-data: 4.0.1 + get-port-please: 3.1.2 + glob: 7.2.3 + handlebars: 4.7.8 + mobx: 6.13.5 + node-fetch: 2.7.0 + pluralize: 8.0.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + redoc: 2.2.0(core-js@3.39.0)(enzyme@3.11.0)(mobx@6.13.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + semver: 7.6.3 + simple-websocket: 9.1.0 + styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + yargs: 17.0.1 + transitivePeerDependencies: + - bufferutil + - encoding + - enzyme + - react-native + - supports-color + - utf-8-validate + + '@redocly/config@0.17.1': {} + + '@redocly/openapi-core@1.25.15': + dependencies: + '@redocly/ajv': 8.11.2 + '@redocly/config': 0.17.1 + colorette: 1.4.0 + https-proxy-agent: 7.0.5 + js-levenshtein: 1.1.6 + js-yaml: 4.1.0 + lodash.isequal: 4.5.0 + minimatch: 5.1.6 + node-fetch: 2.7.0 + pluralize: 8.0.0 + yaml-ast-parser: 0.0.43 + transitivePeerDependencies: + - encoding + - supports-color + '@rtsao/scc@1.1.0': {} '@rushstack/eslint-patch@1.10.4': {} @@ -10200,6 +10750,8 @@ snapshots: '@types/prop-types': 15.7.13 csstype: 3.1.3 + '@types/stylis@4.2.5': {} + '@types/unist@2.0.11': {} '@types/unist@3.0.3': {} @@ -10616,6 +11168,10 @@ snapshots: fs-extra: 10.1.0 yargs: 17.7.2 + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + acorn-import-attributes@1.9.5(acorn@8.13.0): dependencies: acorn: 8.13.0 @@ -10626,6 +11182,16 @@ snapshots: acorn@8.13.0: {} + agent-base@7.1.1: + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + ajv-draft-04@1.0.0(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + ajv-formats@2.1.1(ajv@8.17.1): optionalDependencies: ajv: 8.17.1 @@ -10710,6 +11276,15 @@ snapshots: array-union@2.1.0: {} + array.prototype.filter@1.0.4: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-array-method-boxes-properly: 1.0.0 + es-object-atoms: 1.0.0 + is-string: 1.0.7 + array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.7 @@ -10845,6 +11420,8 @@ snapshots: bn.js@5.2.1: {} + boolbase@1.0.0: {} + bowser@2.11.0: {} brace-expansion@1.1.11: @@ -10898,10 +11475,14 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 + call-me-maybe@1.0.2: {} + callsites@3.1.0: {} camelcase-css@2.0.1: {} + camelize@1.0.1: {} + caniuse-lite@1.0.30001669: {} cardinal@2.1.1: @@ -10940,6 +11521,29 @@ snapshots: character-reference-invalid@2.0.1: {} + cheerio-select@2.1.0: + dependencies: + boolbase: 1.0.0 + css-select: 5.1.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + + cheerio@1.0.0: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.1.0 + encoding-sniffer: 0.2.0 + htmlparser2: 9.1.0 + parse5: 7.2.0 + parse5-htmlparser2-tree-adapter: 7.1.0 + parse5-parser-stream: 7.1.2 + undici: 6.21.0 + whatwg-mimetype: 4.0.0 + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -10963,6 +11567,8 @@ snapshots: dependencies: consola: 3.2.3 + classnames@2.5.1: {} + client-only@0.0.1: {} clipboardy@1.2.2: @@ -10976,6 +11582,12 @@ snapshots: is-wsl: 3.1.0 is64bit: 2.0.0 + cliui@7.0.4: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -11010,6 +11622,8 @@ snapshots: color-convert: 2.0.1 color-string: 1.9.1 + colorette@1.4.0: {} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -11050,6 +11664,8 @@ snapshots: serialize-javascript: 6.0.2 webpack: 5.95.0 + core-js@3.39.0: {} + cose-base@1.0.3: dependencies: layout-base: 1.0.2 @@ -11105,6 +11721,22 @@ snapshots: crypto-js@4.2.0: {} + css-color-keywords@1.0.0: {} + + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + + css-to-react-native@3.2.0: + dependencies: + camelize: 1.0.1 + css-color-keywords: 1.0.0 + postcss-value-parser: 4.2.0 + css-what@6.1.0: {} cssesc@3.0.0: {} @@ -11320,6 +11952,8 @@ snapshots: dependencies: ms: 2.1.3 + decko@1.2.0: {} + decode-named-character-reference@1.0.2: dependencies: character-entities: 2.0.2 @@ -11380,6 +12014,8 @@ snapshots: dependencies: path-type: 4.0.0 + discontinuous-range@1.0.0: {} + dlv@1.1.3: {} doctrine@2.1.0: @@ -11395,8 +12031,26 @@ snapshots: '@babel/runtime': 7.25.9 csstype: 3.1.3 + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + dompurify@3.1.6: {} + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + duplexer@0.1.2: {} duplexify@4.1.3: @@ -11438,6 +12092,11 @@ snapshots: emojis-list@3.0.0: {} + encoding-sniffer@0.2.0: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding: 3.1.1 + end-of-stream@1.4.4: dependencies: once: 1.4.0 @@ -11449,6 +12108,36 @@ snapshots: entities@4.5.0: {} + enzyme-shallow-equal@1.0.7: + dependencies: + hasown: 2.0.2 + object-is: 1.1.6 + + enzyme@3.11.0: + dependencies: + array.prototype.flat: 1.3.2 + cheerio: 1.0.0 + enzyme-shallow-equal: 1.0.7 + function.prototype.name: 1.1.6 + has: 1.0.4 + html-element-map: 1.3.1 + is-boolean-object: 1.1.2 + is-callable: 1.2.7 + is-number-object: 1.0.7 + is-regex: 1.1.4 + is-string: 1.0.7 + is-subset: 0.1.1 + lodash.escape: 4.0.1 + lodash.isequal: 4.5.0 + object-inspect: 1.13.2 + object-is: 1.1.6 + object.assign: 4.1.5 + object.entries: 1.1.8 + object.values: 1.2.0 + raf: 3.4.1 + rst-selector-parser: 2.2.3 + string.prototype.trim: 1.2.9 + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -11502,6 +12191,8 @@ snapshots: unbox-primitive: 1.0.2 which-typed-array: 1.1.15 + es-array-method-boxes-properly@1.0.0: {} + es-define-property@1.0.0: dependencies: get-intrinsic: 1.2.4 @@ -11547,6 +12238,8 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 + es6-promise@3.3.1: {} + escalade@3.2.0: {} escape-string-regexp@1.0.5: {} @@ -11804,6 +12497,10 @@ snapshots: stream-combiner: 0.2.2 through: 2.3.8 + event-target-shim@5.0.1: {} + + eventemitter3@5.0.1: {} + events@3.3.0: {} execa@0.8.0: @@ -11850,8 +12547,14 @@ snapshots: fast-redact@3.5.0: {} + fast-safe-stringify@2.1.1: {} + fast-uri@3.0.3: {} + fast-xml-parser@4.5.0: + dependencies: + strnum: 1.0.5 + fastq@1.17.1: dependencies: reusify: 1.0.4 @@ -11900,6 +12603,8 @@ snapshots: dependencies: is-callable: 1.2.7 + foreach@2.0.6: {} + foreground-child@3.3.0: dependencies: cross-spawn: 7.0.3 @@ -12079,6 +12784,15 @@ snapshots: uncrypto: 0.1.3 unenv: 1.10.0 + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 + has-bigints@1.0.2: {} has-flag@2.0.0: {} @@ -12099,6 +12813,8 @@ snapshots: dependencies: has-symbols: 1.0.3 + has@1.0.4: {} + hash-base@3.1.0: dependencies: inherits: 2.0.4 @@ -12234,10 +12950,31 @@ snapshots: dependencies: react-is: 16.13.1 + html-element-map@1.3.1: + dependencies: + array.prototype.filter: 1.0.4 + call-bind: 1.0.7 + html-void-elements@3.0.0: {} + htmlparser2@9.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + http-shutdown@1.2.2: {} + http2-client@1.3.5: {} + + https-proxy-agent@7.0.5: + dependencies: + agent-base: 7.1.1 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + human-signals@5.0.0: {} iconv-lite@0.6.3: @@ -12419,6 +13156,8 @@ snapshots: dependencies: has-tostringtag: 1.0.2 + is-subset@0.1.1: {} + is-symbol@1.0.4: dependencies: has-symbols: 1.0.3 @@ -12485,6 +13224,8 @@ snapshots: jiti@2.3.3: {} + js-levenshtein@1.1.6: {} + js-sha3@0.8.0: {} js-tokens@4.0.0: {} @@ -12504,6 +13245,10 @@ snapshots: json-parse-even-better-errors@2.3.1: {} + json-pointer@0.6.2: + dependencies: + foreach: 2.0.6 + json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} @@ -12619,6 +13364,10 @@ snapshots: lodash.debounce@4.0.8: {} + lodash.escape@4.0.1: {} + + lodash.flattendeep@4.4.0: {} + lodash.foreach@4.5.0: {} lodash.get@4.4.2: {} @@ -12658,12 +13407,18 @@ snapshots: dependencies: react: 18.3.1 + lunr@2.3.9: {} + map-stream@0.0.7: {} + mark.js@8.11.1: {} + markdown-extensions@1.1.1: {} markdown-table@3.0.4: {} + marked@4.3.0: {} + match-sorter@6.3.4: dependencies: '@babel/runtime': 7.25.9 @@ -13194,6 +13949,10 @@ snapshots: dependencies: brace-expansion: 1.1.11 + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + minimatch@9.0.3: dependencies: brace-expansion: 2.0.1 @@ -13213,10 +13972,28 @@ snapshots: pkg-types: 1.2.1 ufo: 1.5.4 + mobx-react-lite@4.0.7(mobx@6.13.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + mobx: 6.13.5 + react: 18.3.1 + use-sync-external-store: 1.2.2(react@18.3.1) + optionalDependencies: + react-dom: 18.3.1(react@18.3.1) + + mobx-react@9.1.1(mobx@6.13.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + mobx: 6.13.5 + mobx-react-lite: 4.0.7(mobx@6.13.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + optionalDependencies: + react-dom: 18.3.1(react@18.3.1) + mobx@6.13.5: {} modern-ahocorasick@1.0.1: {} + moo@0.5.2: {} + mri@1.2.0: {} ms@2.1.3: {} @@ -13235,6 +14012,13 @@ snapshots: natural-compare@1.4.0: {} + nearley@2.20.1: + dependencies: + commander: 2.20.3 + moo: 0.5.2 + railroad-diagrams: 1.0.0 + randexp: 0.4.6 + neo-async@2.6.2: {} next-mdx-remote@4.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -13349,6 +14133,10 @@ snapshots: node-addon-api@7.1.1: {} + node-fetch-h2@2.3.0: + dependencies: + http2-client: 1.3.5 + node-fetch-native@1.6.4: {} node-fetch@2.7.0: @@ -13357,6 +14145,10 @@ snapshots: node-forge@1.3.1: {} + node-readfiles@0.2.0: + dependencies: + es6-promise: 3.3.1 + node-releases@2.0.18: {} non-layered-tidy-tree-layout@2.0.2: {} @@ -13373,12 +14165,52 @@ snapshots: npm-to-yarn@2.2.1: {} + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + oas-kit-common@1.0.8: + dependencies: + fast-safe-stringify: 2.1.1 + + oas-linter@3.2.2: + dependencies: + '@exodus/schemasafe': 1.3.0 + should: 13.2.3 + yaml: 1.10.2 + + oas-resolver@2.5.6: + dependencies: + node-fetch-h2: 2.3.0 + oas-kit-common: 1.0.8 + reftools: 1.1.9 + yaml: 1.10.2 + yargs: 17.7.2 + + oas-schema-walker@1.1.5: {} + + oas-validator@5.0.8: + dependencies: + call-me-maybe: 1.0.2 + oas-kit-common: 1.0.8 + oas-linter: 3.2.2 + oas-resolver: 2.5.6 + oas-schema-walker: 1.1.5 + reftools: 1.1.9 + should: 13.2.3 + yaml: 1.10.2 + object-assign@4.1.1: {} object-hash@3.0.0: {} object-inspect@1.13.2: {} + object-is@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + object-keys@1.1.1: {} object.assign@4.1.5: @@ -13431,6 +14263,14 @@ snapshots: dependencies: mimic-fn: 4.0.0 + openapi-sampler@1.6.0: + dependencies: + '@types/json-schema': 7.0.15 + fast-xml-parser: 4.5.0 + json-pointer: 0.6.2 + + openapi-types@12.1.3: {} + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -13486,10 +14326,21 @@ snapshots: dependencies: parse-path: 7.0.0 + parse5-htmlparser2-tree-adapter@7.1.0: + dependencies: + domhandler: 5.0.3 + parse5: 7.2.0 + + parse5-parser-stream@7.1.2: + dependencies: + parse5: 7.2.0 + parse5@7.2.0: dependencies: entities: 4.5.0 + path-browserify@1.0.1: {} + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -13515,6 +14366,10 @@ snapshots: dependencies: through: 2.3.8 + perfect-scrollbar@1.5.6: {} + + performance-now@2.1.0: {} + periscopic@3.1.0: dependencies: '@types/estree': 1.0.6 @@ -13556,6 +14411,12 @@ snapshots: mlly: 1.7.2 pathe: 1.1.2 + pluralize@8.0.0: {} + + polished@4.3.1: + dependencies: + '@babel/runtime': 7.25.9 + possible-typed-array-names@1.0.0: {} postcss-import@15.1.0(postcss@8.4.47): @@ -13595,6 +14456,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.4.38: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postcss@8.4.47: dependencies: nanoid: 3.3.7 @@ -13603,6 +14470,8 @@ snapshots: prelude-ls@1.2.1: {} + prismjs@1.29.0: {} + process-warning@1.0.0: {} prop-types@15.8.1: @@ -13656,11 +14525,22 @@ snapshots: radix3@1.1.2: {} + raf@3.4.1: + dependencies: + performance-now: 2.1.0 + + railroad-diagrams@1.0.0: {} + rainbow-sprinkles@0.17.3(@vanilla-extract/css@1.16.0(babel-plugin-macros@3.1.0))(@vanilla-extract/dynamic@2.1.2): dependencies: '@vanilla-extract/css': 1.16.0(babel-plugin-macros@3.1.0) '@vanilla-extract/dynamic': 2.1.2 + randexp@0.4.6: + dependencies: + discontinuous-range: 1.0.0 + ret: 0.1.15 + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -13743,6 +14623,12 @@ snapshots: optionalDependencies: '@types/react': 18.3.12 + react-shallow-renderer@16.15.0(react@18.3.1): + dependencies: + object-assign: 4.1.1 + react: 18.3.1 + react-is: 18.3.1 + react-stately@3.33.0(react@18.3.1): dependencies: '@react-stately/calendar': 3.5.5(react@18.3.1) @@ -13780,6 +14666,12 @@ snapshots: optionalDependencies: '@types/react': 18.3.12 + react-tabs@6.0.2(react@18.3.1): + dependencies: + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.1 + react-textarea-autosize@8.5.4(@types/react@18.3.12)(react@18.3.1): dependencies: '@babel/runtime': 7.25.9 @@ -13826,6 +14718,41 @@ snapshots: dependencies: esprima: 4.0.1 + redoc@2.2.0(core-js@3.39.0)(enzyme@3.11.0)(mobx@6.13.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + dependencies: + '@cfaester/enzyme-adapter-react-18': 0.8.0(enzyme@3.11.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@redocly/openapi-core': 1.25.15 + classnames: 2.5.1 + core-js: 3.39.0 + decko: 1.2.0 + dompurify: 3.1.6 + eventemitter3: 5.0.1 + json-pointer: 0.6.2 + lunr: 2.3.9 + mark.js: 8.11.1 + marked: 4.3.0 + mobx: 6.13.5 + mobx-react: 9.1.1(mobx@6.13.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + openapi-sampler: 1.6.0 + path-browserify: 1.0.1 + perfect-scrollbar: 1.5.6 + polished: 4.3.1 + prismjs: 1.29.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-tabs: 6.0.2(react@18.3.1) + slugify: 1.4.7 + stickyfill: 1.1.1 + styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + swagger2openapi: 7.0.8 + url-template: 2.0.8 + transitivePeerDependencies: + - encoding + - enzyme + - react-native + - supports-color + reflect.getprototypeof@1.0.6: dependencies: call-bind: 1.0.7 @@ -13836,6 +14763,8 @@ snapshots: globalthis: 1.0.4 which-builtin-type: 1.1.4 + reftools@1.1.9: {} + regenerator-runtime@0.14.1: {} regexp.prototype.flags@1.5.3: @@ -13937,6 +14866,8 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + ret@0.1.15: {} + reusify@1.0.4: {} rimraf@3.0.2: @@ -13950,6 +14881,11 @@ snapshots: robust-predicates@3.0.2: {} + rst-selector-parser@2.2.3: + dependencies: + lodash.flattendeep: 4.4.0 + nearley: 2.20.1 + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -14051,6 +14987,8 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 + shallowequal@1.1.0: {} + shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 @@ -14070,6 +15008,32 @@ snapshots: vscode-oniguruma: 1.7.0 vscode-textmate: 8.0.0 + should-equal@2.0.0: + dependencies: + should-type: 1.4.0 + + should-format@3.0.3: + dependencies: + should-type: 1.4.0 + should-type-adaptors: 1.1.0 + + should-type-adaptors@1.1.0: + dependencies: + should-type: 1.4.0 + should-util: 1.0.1 + + should-type@1.4.0: {} + + should-util@1.0.1: {} + + should@13.2.3: + dependencies: + should-equal: 2.0.0 + should-format: 3.0.3 + should-type: 1.4.0 + should-type-adaptors: 1.1.0 + should-util: 1.0.1 + side-channel@1.0.6: dependencies: call-bind: 1.0.7 @@ -14085,10 +15049,24 @@ snapshots: dependencies: is-arrayish: 0.3.2 + simple-websocket@9.1.0: + dependencies: + debug: 4.3.7 + queue-microtask: 1.2.3 + randombytes: 2.1.0 + readable-stream: 3.6.2 + ws: 7.5.10 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + slash@3.0.0: {} slash@4.0.0: {} + slugify@1.4.7: {} + sonic-boom@2.8.0: dependencies: atomic-sleep: 1.0.0 @@ -14142,6 +15120,8 @@ snapshots: std-env@3.7.0: {} + stickyfill@1.1.1: {} + stream-combiner@0.2.2: dependencies: duplexer: 0.1.2 @@ -14237,10 +15217,26 @@ snapshots: strip-json-comments@3.1.1: {} + strnum@1.0.5: {} + style-to-object@0.4.4: dependencies: inline-style-parser: 0.1.1 + styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@emotion/is-prop-valid': 1.2.2 + '@emotion/unitless': 0.8.1 + '@types/stylis': 4.2.5 + css-to-react-native: 3.2.0 + csstype: 3.1.3 + postcss: 8.4.38 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + shallowequal: 1.1.0 + stylis: 4.3.2 + tslib: 2.6.2 + styled-jsx@5.1.1(babel-plugin-macros@3.1.0)(react@18.3.1): dependencies: client-only: 0.0.1 @@ -14250,6 +15246,8 @@ snapshots: stylis@4.2.0: {} + stylis@4.3.2: {} + stylis@4.3.4: {} sucrase@3.35.0: @@ -14280,6 +15278,22 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + swagger2openapi@7.0.8: + dependencies: + call-me-maybe: 1.0.2 + node-fetch: 2.7.0 + node-fetch-h2: 2.3.0 + node-readfiles: 0.2.0 + oas-kit-common: 1.0.8 + oas-resolver: 2.5.6 + oas-schema-walker: 1.1.5 + oas-validator: 5.0.8 + reftools: 1.1.9 + yaml: 1.10.2 + yargs: 17.7.2 + transitivePeerDependencies: + - encoding + symbol-observable@2.0.3: {} system-architecture@0.1.0: {} @@ -14409,6 +15423,8 @@ snapshots: tslib@1.14.1: {} + tslib@2.6.2: {} + tslib@2.8.0: {} type-check@0.4.0: @@ -14457,6 +15473,9 @@ snapshots: ufo@1.5.4: {} + uglify-js@3.19.3: + optional: true + uint8arrays@3.1.0: dependencies: multiformats: 9.9.0 @@ -14470,6 +15489,8 @@ snapshots: uncrypto@0.1.3: {} + undici@6.21.0: {} + unenv@1.10.0: dependencies: consola: 3.2.3 @@ -14605,6 +15626,8 @@ snapshots: uqr@0.1.2: {} + uri-js-replace@1.0.1: {} + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -14616,6 +15639,8 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 + url-template@2.0.8: {} + use-callback-ref@1.3.2(@types/react@18.3.12)(react@18.3.1): dependencies: react: 18.3.1 @@ -14750,8 +15775,14 @@ snapshots: - esbuild - uglify-js + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + whatwg-fetch@3.6.20: {} + whatwg-mimetype@4.0.0: {} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 @@ -14809,6 +15840,8 @@ snapshots: word-wrap@1.2.5: {} + wordwrap@1.0.0: {} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -14834,12 +15867,26 @@ snapshots: yallist@2.1.2: {} + yaml-ast-parser@0.0.43: {} + yaml@1.10.2: {} yaml@2.6.0: {} + yargs-parser@20.2.9: {} + yargs-parser@21.1.1: {} + yargs@17.0.1: + dependencies: + cliui: 7.0.4 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + yargs@17.7.2: dependencies: cliui: 8.0.1 diff --git a/documentation/docs/public/favicon.ico b/documentation/docs/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c0e5719e27e1a6238751eda44e5fa66c62053d6c GIT binary patch literal 1793 zcmbu8Ur5tY6vwYtFN3z9?T>RyU9&Kp|EU8>Zl&l z#2U6J|Bzv2kuO0KWDf?3G&B&5Tt4&={c*L5w4HwEH-7VHZ54Fk{_ef!en01)bI<(| z5<(V{B})iBDo86KB#G`ko^Sm;gpe2XnxcH`eTxZs9ZEwE`eL>P^T?wCpN1|hn=E>&Xo zU2=v9Zyw!~GP!?JZZ=-+u>eHXB&2)&)AVrSF*Pgg_t+ev&+nwdsxjhFiP8>ab z@A!r5U!n*B`h5jySWx=aF{S)-K^HnOANrnPta5jx6+E0wHgwNw>5g->;od^^{3@ps zc!vES9GZ+KuSgv2PYf>zJKEIgjb7BCcAg{z*Vz>>pU4#{zi}+jj;KK`*9ZFi7nbV- z8H@pQ!noKyEcC{V42WF5oQXxFQ8R0_;U25QJlVVA=8HOPg#`sbQG9T@T;TC|7#r@f zJTmM(vo;*LykXl`hQo)4jmx7J>!LMw&j#Z=JFkP=?S}HQvVc6Y>3KZ?d1Pj0W}vI9 zi^(O>`N*1f4^9R;zqj`WbEeT?2+EuG3{F;``P30EoqsQE{vOX~n4X?yej>cfU(ZLT z`i!UJSPLX%=QaOUKlHPPt{ujPwZt{Iep~XIyvX7kIMwEMtd2|d*M^%!6gWvU z$YQhGfp@xf>Pf8X@9#HOl?tdu#z*_U_WQtV>vlT|EzMq;eEvSz^JTJVD6-hRs6j24 j<<5HsAmQrWuN~HNk0uY--I&FWbF}q5@a4, }, toc: { - float: true, // TODO would be nice to set this to false so the TOC is in the left sidebar but this doesn't seem to work with pages that are also the top of directories: fix + float: false, // TODO would be nice to set this to false so the TOC is in the left sidebar but this doesn't seem to work with pages that are also the top of directories: fix // if we do this then we also have to uncomment the editLink and feedback objects below + component: null, // try remove right-hand column + }, + editLink: { + component: null, // remove element + }, + feedback: { + content: null, // remove element }, - // editLink: { - // component: null, - // }, - // feedback: { - // content: null, - // }, - // gitTimestamp: TODO }; diff --git a/documentation/scripts/next-scripts/autodoc.sh b/documentation/scripts/next-scripts/autodoc.sh index b04fff82cf3..bbc2bfda93d 100755 --- a/documentation/scripts/next-scripts/autodoc.sh +++ b/documentation/scripts/next-scripts/autodoc.sh @@ -6,9 +6,9 @@ set -o errexit set -o nounset set -o pipefail -# make sure we have all the binaries built -cd ../../ && cargo build --release && cd tools/nym-cli && cargo build --release && cd ../../ && - +# make sure we have all the binaries built from master +CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD) && git checkout master && +cd ../../ && cargo build --release && cd tools/nym-cli && cargo build --release && cd ../../ && git checkout $CURRENT_BRANCH && # run autodoc script cd documentation/autodoc/ && cargo run --release &&