From 2659d9dfa3ddd6c28c0fc81cb5abba2a900d615b Mon Sep 17 00:00:00 2001 From: shamsartem Date: Wed, 15 Feb 2023 09:08:02 +0100 Subject: [PATCH] feat: add configs for workers (worker.yaml), direct hosting (hosts.yaml) and deployment result (deployed.yaml). Add command for worker deployment. Add command for showing versions of used dependencies. Fix issue with circular imports [fixes DXJ-246 DXJ-247 DXJ-259 DXJ-249 DXJ-270] (#141) * feat: add configs for workers (worker.yaml), direct hosting (hosts.yaml) and deployment result (deployed.yaml). Add command for worker deployment Add command for showing versions of used dependencies Fix issue with circular imports [fixes DXJ-246 DXJ-247 DXJ-259 DXJ-249 DXJ-270] * hopefully fix tests * change posttest to pretest * Update package.json * readme * unhide and fix description for workers deploy command * correct description for workers.yaml * fix contributing.md --- .gitignore | 5 + CONTRIBUTING.md | 11 +- bin/dev.js | 2 +- bin/run.js | 3 +- docs/commands/README.md | 49 +- docs/configs/README.md | 11 +- docs/configs/app-properties-relays.md | 2 +- docs/configs/app.md | 4 +- docs/configs/deployed-properties-version.md | 11 + ...llation_spells-items-properties-host_id.md | 3 + ...lation_spells-items-properties-spell_id.md | 3 + ...ation_spells-items-properties-worker_id.md | 3 + ...ms-properties-installation_spells-items.md | 65 + ...rs-items-properties-installation_spells.md | 3 + ...roperties-workers-items-properties-name.md | 3 + .../deployed-properties-workers-items.md | 46 + docs/configs/deployed-properties-workers.md | 3 + docs/configs/deployed.md | 54 + docs/configs/fluence-properties-relays.md | 2 +- ...rrides-properties-environment-variables.md | 3 + ...errides-module-overrides-properties-get.md | 3 + ...dule-overrides-properties-loggerenabled.md | 3 + ...module-overrides-properties-loggingmask.md | 3 + ...module-overrides-properties-maxheapsize.md | 3 + ...e-overrides-properties-mounted-binaries.md | 3 + ...rrides-module-overrides-properties-name.md | 3 + ...rrides-properties-preopened-files-items.md | 3 + ...le-overrides-properties-preopened-files.md | 3 + ...rrides-module-overrides-properties-type.md | 20 + ...des-module-overrides-properties-version.md | 11 + ...des-module-overrides-properties-volumes.md | 3 + ...g-properties-overrides-module-overrides.md | 283 + ...ces-service-config-properties-overrides.md | 27 + ...ence-properties-services-service-config.md | 31 +- docs/configs/fluence.md | 4 +- ...es-hosts-items-properties-peerids-items.md | 3 + ...operties-hosts-items-properties-peerids.md | 3 + ...rties-hosts-items-properties-workername.md | 3 + docs/configs/hosts-properties-hosts-items.md | 46 + docs/configs/hosts-properties-hosts.md | 3 + docs/configs/hosts-properties-version.md | 11 + docs/configs/hosts.md | 54 + docs/configs/workers-properties-version.md | 11 + ...nalproperties-properties-services-items.md | 3 + ...dditionalproperties-properties-services.md | 3 + ...properties-workers-additionalproperties.md | 27 + docs/configs/workers-properties-workers.md | 27 + docs/configs/workers.md | 54 + package-lock.json | 5389 ++++++++++++++--- package.json | 23 +- src/baseCommand.ts | 8 - src/commands/aqua.ts | 8 +- src/commands/deal/faucet.ts | 3 +- src/commands/dependency/cargo/install.ts | 3 +- src/commands/dependency/install.ts | 3 +- src/commands/dependency/npm/install.ts | 3 +- src/commands/dependency/versions.ts | 127 + src/commands/deploy.ts | 5 +- src/commands/key/new.ts | 3 +- src/commands/key/remove.ts | 3 +- src/commands/module/add.ts | 3 +- src/commands/module/remove.ts | 3 +- src/commands/remove.ts | 3 +- src/commands/run.ts | 15 +- src/commands/service/add.ts | 4 + src/commands/service/new.ts | 7 +- src/commands/service/repl.ts | 3 +- src/commands/workers/deploy.ts | 414 ++ src/countlyInterceptor.js | 14 +- src/environment.d.ts | 4 +- src/lib/addService.ts | 41 +- src/lib/{ajv.ts => ajvInstance.ts} | 0 src/lib/build.ts | 11 +- src/lib/commandObj.ts | 30 + .../compiled-aqua/installation-spell/cli.ts | 516 ++ .../installation-spell/console.ts | 58 + .../compiled-aqua/installation-spell/files.ts | 360 ++ .../compiled-aqua/installation-spell/spell.ts | 218 + src/lib/configs/initConfig.ts | 2 +- src/lib/configs/project/app.ts | 4 +- src/lib/configs/project/deployed.ts | 107 + src/lib/configs/project/fluence.ts | 36 +- src/lib/configs/project/hosts.ts | 188 + src/lib/configs/project/workers.ts | 159 + src/lib/const.ts | 10 +- src/lib/countly.ts | 2 +- src/lib/helpers/aquaImports.ts | 2 +- src/lib/helpers/downloadFile.ts | 5 +- src/lib/helpers/ensureFluenceProject.ts | 2 +- src/lib/helpers/package.ts | 2 +- src/lib/init.ts | 8 +- src/lib/keypairs.ts | 2 +- src/lib/lifecyle.ts | 18 +- src/lib/localNodes.ts | 2 +- src/lib/localServices/ipfs.ts | 147 + src/lib/localServices/log.ts | 33 + src/lib/{multiaddr.ts => multiaddres.ts} | 12 +- src/lib/npm.ts | 2 +- src/lib/paths.ts | 2 +- src/lib/prompt.ts | 4 +- src/lib/provider.ts | 2 +- src/lib/removeApp.ts | 4 +- src/lib/rust.ts | 2 +- src/lib/setupEnvironment.ts | 4 +- src/schemas.ts | 9 + test/helpers.ts | 43 +- test/tutorial.test.ts | 5 +- 107 files changed, 7995 insertions(+), 1042 deletions(-) create mode 100644 docs/configs/deployed-properties-version.md create mode 100644 docs/configs/deployed-properties-workers-items-properties-installation_spells-items-properties-host_id.md create mode 100644 docs/configs/deployed-properties-workers-items-properties-installation_spells-items-properties-spell_id.md create mode 100644 docs/configs/deployed-properties-workers-items-properties-installation_spells-items-properties-worker_id.md create mode 100644 docs/configs/deployed-properties-workers-items-properties-installation_spells-items.md create mode 100644 docs/configs/deployed-properties-workers-items-properties-installation_spells.md create mode 100644 docs/configs/deployed-properties-workers-items-properties-name.md create mode 100644 docs/configs/deployed-properties-workers-items.md create mode 100644 docs/configs/deployed-properties-workers.md create mode 100644 docs/configs/deployed.md create mode 100644 docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-environment-variables.md create mode 100644 docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-get.md create mode 100644 docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-loggerenabled.md create mode 100644 docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-loggingmask.md create mode 100644 docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-maxheapsize.md create mode 100644 docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-mounted-binaries.md create mode 100644 docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-name.md create mode 100644 docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-preopened-files-items.md create mode 100644 docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-preopened-files.md create mode 100644 docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-type.md create mode 100644 docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-version.md create mode 100644 docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-volumes.md create mode 100644 docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides.md create mode 100644 docs/configs/fluence-properties-services-service-config-properties-overrides.md create mode 100644 docs/configs/hosts-properties-hosts-items-properties-peerids-items.md create mode 100644 docs/configs/hosts-properties-hosts-items-properties-peerids.md create mode 100644 docs/configs/hosts-properties-hosts-items-properties-workername.md create mode 100644 docs/configs/hosts-properties-hosts-items.md create mode 100644 docs/configs/hosts-properties-hosts.md create mode 100644 docs/configs/hosts-properties-version.md create mode 100644 docs/configs/hosts.md create mode 100644 docs/configs/workers-properties-version.md create mode 100644 docs/configs/workers-properties-workers-additionalproperties-properties-services-items.md create mode 100644 docs/configs/workers-properties-workers-additionalproperties-properties-services.md create mode 100644 docs/configs/workers-properties-workers-additionalproperties.md create mode 100644 docs/configs/workers-properties-workers.md create mode 100644 docs/configs/workers.md create mode 100644 src/commands/dependency/versions.ts create mode 100644 src/commands/workers/deploy.ts rename src/lib/{ajv.ts => ajvInstance.ts} (100%) create mode 100644 src/lib/commandObj.ts create mode 100644 src/lib/compiled-aqua/installation-spell/cli.ts create mode 100644 src/lib/compiled-aqua/installation-spell/console.ts create mode 100644 src/lib/compiled-aqua/installation-spell/files.ts create mode 100644 src/lib/compiled-aqua/installation-spell/spell.ts create mode 100644 src/lib/configs/project/deployed.ts create mode 100644 src/lib/configs/project/hosts.ts create mode 100644 src/lib/configs/project/workers.ts create mode 100644 src/lib/localServices/ipfs.ts create mode 100644 src/lib/localServices/log.ts rename src/lib/{multiaddr.ts => multiaddres.ts} (93%) diff --git a/.gitignore b/.gitignore index 5ccfb7640..5a35f0776 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,8 @@ oclif.manifest.json # for ease of development /fluence.yaml /fluence-lock.yaml +/hosts.yaml +/workers.yaml src/aqua src/services src/ts @@ -28,3 +30,6 @@ schemas .vscode/settings.json src/ts/src/aqua src/js/src/aqua + +# ignore compiled files +src/lib/compiled-aqua/installation-spell/air diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 927ff093e..0674af809 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,14 +12,15 @@ Things you need to know: When you contribute, you have to be aware that your contribution is covered by **[Apache License 2.0](./LICENSE)**, but might relicensed under few other software licenses mentioned in the **Contributor License Agreement**. In particular, you need to agree to the Contributor License Agreement. If you agree to its content, you simply have to click on the link posted by the CLA assistant as a comment to the pull request. Click it to check the CLA, then accept it on the following screen if you agree to it. The CLA assistant will save this decision for upcoming contributions and will notify you if there is any change to the CLA in the meantime. -## Technical guidelines +## Guidelines for contributors -- To use fluence-cli in the development mode, run: `./bin/dev.js` (types are not checked in development mode because it's faster and more convenient to work with. Use typechecking provided by your IDE during development) -- To use fluence-cli in the production mode, run `npm run build` first, then run: `./bin/run.js`. If you want to make sure you are running the actual package the users will use, do `npm run build`, `npm pack` and install this tar package (the approach is used for tests) +- **First** commit in your PR or PR title must use [Conventional Commits](https://www.conventionalcommits.org/) (optionally end your commit message with: `[fixes DXJ-000 DXJ-001]`. Where `DXJ-000` and `DXJ-001` are ids of the Linear issues that you were working on) +- To use Fluence CLI in the development mode, run: `./bin/dev.js` (types are not checked in development mode because it's faster and more convenient to work with. Use typechecking provided by your IDE during development) +- To use Fluence CLI in the production mode, run `npm run build` first, then run: `./bin/run.js`. If you want to make sure you are running the actual package the users will use, do `npm run build`, `npm pack` and install this tar package (the approach is used for tests) - Don't name arguments or flags with names that contain underscore symbols because autogenerated links in markdown will not work -- pre-commit runs each time before you commit. It attempts to build and lint your project, runs prettier and generates this README.md file that you are reading right now. +- pre-commit runs each time before you commit. It attempts to build and lint your project, runs prettier and generates docs/commands/README.md file. - If you are using nvm and want to commit using VSCode, place `.huskyrc` file to your home directory - Don't export anything from command files except for the command itself. If you need to share code between commands - create a separate file - Avoid using `this` in commands except for inside `initCli` function. This style is easier to understand and there will be less stuff to refactor if instead of using methods on command object you simply use separate functions which can later be moved outside into a separate module for reuse in other commands - Use `commandObj.error` for human readable errors. They will be reported to analytics as events. Use `throw new Error` (or `assert`) for unexpected errors. They will be reported to analytics as crashes. -- Don't use colors inside commands descriptions. They can't be rendered to markdown and they will not be rendered to users of the packaged fluence-cli anyway, when they run `--help` +- Don't use colors inside commands descriptions. They can't be rendered to markdown and they will not be rendered to users of the packaged Fluence CLI anyway, when they run `--help` diff --git a/bin/dev.js b/bin/dev.js index 75a66b863..fec833ffc 100755 --- a/bin/dev.js +++ b/bin/dev.js @@ -46,4 +46,4 @@ oclif.settings.debug = true; oclif .run(process.argv.slice(2), import.meta.url) .then(oclif.flush) - .catch((error) => createErrorPromise(error, oclif.Errors.handle)); + .catch((error) => createErrorPromise(error)); diff --git a/bin/run.js b/bin/run.js index 5b7c6e988..3617a2750 100755 --- a/bin/run.js +++ b/bin/run.js @@ -23,4 +23,5 @@ import { createErrorPromise } from "../dist/countlyInterceptor.js"; oclif .run(process.argv.slice(2), import.meta.url) .then(oclif.flush) - .catch((error) => createErrorPromise(error, oclif.Errors.handle)); + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + .catch((error) => createErrorPromise(error)); diff --git a/docs/commands/README.md b/docs/commands/README.md index 59aab46fa..03381a064 100644 --- a/docs/commands/README.md +++ b/docs/commands/README.md @@ -8,6 +8,7 @@ * [`fluence dependency cargo install [PACKAGE-NAME | PACKAGE-NAME@VERSION]`](#fluence-dependency-cargo-install-package-name--package-nameversion) * [`fluence dependency install`](#fluence-dependency-install) * [`fluence dependency npm install [PACKAGE-NAME | PACKAGE-NAME@VERSION]`](#fluence-dependency-npm-install-package-name--package-nameversion) +* [`fluence dependency versions`](#fluence-dependency-versions) * [`fluence deploy`](#fluence-deploy) * [`fluence help [COMMANDS]`](#fluence-help-commands) * [`fluence init [PATH]`](#fluence-init-path) @@ -24,6 +25,7 @@ * [`fluence service new [PATH]`](#fluence-service-new-path) * [`fluence service remove [NAME | PATH | URL]`](#fluence-service-remove-name--path--url) * [`fluence service repl [NAME | PATH | URL]`](#fluence-service-repl-name--path--url) +* [`fluence workers deploy`](#fluence-workers-deploy) ## `fluence aqua` @@ -88,7 +90,7 @@ EXAMPLES $ fluence autocomplete --refresh-cache ``` -_See code: [@oclif/plugin-autocomplete](https://github.com/oclif/plugin-autocomplete/blob/v1.4.5/src/commands/autocomplete/index.ts)_ +_See code: [@oclif/plugin-autocomplete](https://github.com/oclif/plugin-autocomplete/blob/v1.4.6/src/commands/autocomplete/index.ts)_ ## `fluence build` @@ -241,6 +243,28 @@ EXAMPLES $ fluence dependency npm install ``` +## `fluence dependency versions` + +Get versions of all currently used dependencies + +``` +USAGE + $ fluence dependency versions [--no-input] + +FLAGS + --no-input Don't interactively ask for any input from the user + +DESCRIPTION + Get versions of all currently used dependencies + +ALIASES + $ fluence dependency v + $ fluence dep v + +EXAMPLES + $ fluence dependency versions +``` + ## `fluence deploy` Deploy application, described in fluence.yaml @@ -619,4 +643,27 @@ DESCRIPTION EXAMPLES $ fluence service repl ``` + +## `fluence workers deploy` + +Deploy workers to hosts, described in hosts.yaml + +``` +USAGE + $ fluence workers deploy [--no-input] [--relay ] [--force] [--timeout ] [-k ] [--aqua-logs] + +FLAGS + -k, --key-pair-name= Key pair name + --aqua-logs Enable Aqua logs + --force Force removing of previously deployed app + --no-input Don't interactively ask for any input from the user + --relay= Relay node multiaddr + --timeout= Timeout used for command execution + +DESCRIPTION + Deploy workers to hosts, described in hosts.yaml + +EXAMPLES + $ fluence workers deploy +``` diff --git a/docs/configs/README.md b/docs/configs/README.md index 950130ecf..10c928059 100644 --- a/docs/configs/README.md +++ b/docs/configs/README.md @@ -23,4 +23,13 @@ Defines global config for Fluence CLI Defines user's secret keys that can be used across different Fluence projects. You can manage user's keys using commands from `fluence key` group of commands with `--user` flag ## [project-secrets.yaml](./project-secrets.md) -Defines project's secret keys that are used only in the scope of this particular Fluence project. You can manage project's keys using commands from `fluence key` group of commands \ No newline at end of file +Defines project's secret keys that are used only in the scope of this particular Fluence project. You can manage project's keys using commands from `fluence key` group of commands +## [workers.yaml](./workers.md) + +Defines workers and what they consist of. Currently worker includes a set of services that you want to deploy on a particular peer +## [hosts.yaml](./hosts.md) + +Defines which workers to host on which peer IDs +## [deployed.yaml](./deployed.md) + +A result of app deployment. This file is created automatically after successful deployment using `fluence workers deploy` command \ No newline at end of file diff --git a/docs/configs/app-properties-relays.md b/docs/configs/app-properties-relays.md index afeb1ab76..de329ee9c 100644 --- a/docs/configs/app-properties-relays.md +++ b/docs/configs/app-properties-relays.md @@ -1,6 +1,6 @@ ## relays Type -any of the folllowing: `string` or `array` ([Relays](app-properties-relays.md)) +any of the following: `string` or `array` ([Relays](app-properties-relays.md)) one (and only one) of diff --git a/docs/configs/app.md b/docs/configs/app.md index 727d22471..70f8d5766 100644 --- a/docs/configs/app.md +++ b/docs/configs/app.md @@ -55,7 +55,7 @@ Relays that you can connect to to find the peers where services are deployed * is optional -* Type: any of the folllowing: `string` or `array` ([Relays](app-properties-relays.md)) +* Type: any of the following: `string` or `array` ([Relays](app-properties-relays.md)) * cannot be null @@ -63,7 +63,7 @@ Relays that you can connect to to find the peers where services are deployed ### relays Type -any of the folllowing: `string` or `array` ([Relays](app-properties-relays.md)) +any of the following: `string` or `array` ([Relays](app-properties-relays.md)) one (and only one) of diff --git a/docs/configs/deployed-properties-version.md b/docs/configs/deployed-properties-version.md new file mode 100644 index 000000000..127ad5d3b --- /dev/null +++ b/docs/configs/deployed-properties-version.md @@ -0,0 +1,11 @@ +## version Type + +`number` + +## version Constraints + +**constant**: the value of this property must be equal to: + +```json +0 +``` diff --git a/docs/configs/deployed-properties-workers-items-properties-installation_spells-items-properties-host_id.md b/docs/configs/deployed-properties-workers-items-properties-installation_spells-items-properties-host_id.md new file mode 100644 index 000000000..e4588118d --- /dev/null +++ b/docs/configs/deployed-properties-workers-items-properties-installation_spells-items-properties-host_id.md @@ -0,0 +1,3 @@ +## host\_id Type + +`string` diff --git a/docs/configs/deployed-properties-workers-items-properties-installation_spells-items-properties-spell_id.md b/docs/configs/deployed-properties-workers-items-properties-installation_spells-items-properties-spell_id.md new file mode 100644 index 000000000..7d042289e --- /dev/null +++ b/docs/configs/deployed-properties-workers-items-properties-installation_spells-items-properties-spell_id.md @@ -0,0 +1,3 @@ +## spell\_id Type + +`string` diff --git a/docs/configs/deployed-properties-workers-items-properties-installation_spells-items-properties-worker_id.md b/docs/configs/deployed-properties-workers-items-properties-installation_spells-items-properties-worker_id.md new file mode 100644 index 000000000..fc60c0e76 --- /dev/null +++ b/docs/configs/deployed-properties-workers-items-properties-installation_spells-items-properties-worker_id.md @@ -0,0 +1,3 @@ +## worker\_id Type + +`string` diff --git a/docs/configs/deployed-properties-workers-items-properties-installation_spells-items.md b/docs/configs/deployed-properties-workers-items-properties-installation_spells-items.md new file mode 100644 index 000000000..2d45b499c --- /dev/null +++ b/docs/configs/deployed-properties-workers-items-properties-installation_spells-items.md @@ -0,0 +1,65 @@ +## items Type + +`object` ([Details](deployed-properties-workers-items-properties-installation_spells-items.md)) + +# items Properties + +| Property | Type | Required | Nullable | Defined by | +| :----------------------- | :------- | :------- | :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [host\_id](#host_id) | `string` | Required | cannot be null | [deployed.yaml](deployed-properties-workers-items-properties-installation_spells-items-properties-host_id.md "https://fluence.dev/schemas/deployed.yaml#/properties/workers/items/properties/installation_spells/items/properties/host_id") | +| [spell\_id](#spell_id) | `string` | Required | cannot be null | [deployed.yaml](deployed-properties-workers-items-properties-installation_spells-items-properties-spell_id.md "https://fluence.dev/schemas/deployed.yaml#/properties/workers/items/properties/installation_spells/items/properties/spell_id") | +| [worker\_id](#worker_id) | `string` | Required | cannot be null | [deployed.yaml](deployed-properties-workers-items-properties-installation_spells-items-properties-worker_id.md "https://fluence.dev/schemas/deployed.yaml#/properties/workers/items/properties/installation_spells/items/properties/worker_id") | + +## host\_id + + + +`host_id` + +* is required + +* Type: `string` + +* cannot be null + +* defined in: [deployed.yaml](deployed-properties-workers-items-properties-installation_spells-items-properties-host_id.md "https://fluence.dev/schemas/deployed.yaml#/properties/workers/items/properties/installation_spells/items/properties/host_id") + +### host\_id Type + +`string` + +## spell\_id + + + +`spell_id` + +* is required + +* Type: `string` + +* cannot be null + +* defined in: [deployed.yaml](deployed-properties-workers-items-properties-installation_spells-items-properties-spell_id.md "https://fluence.dev/schemas/deployed.yaml#/properties/workers/items/properties/installation_spells/items/properties/spell_id") + +### spell\_id Type + +`string` + +## worker\_id + + + +`worker_id` + +* is required + +* Type: `string` + +* cannot be null + +* defined in: [deployed.yaml](deployed-properties-workers-items-properties-installation_spells-items-properties-worker_id.md "https://fluence.dev/schemas/deployed.yaml#/properties/workers/items/properties/installation_spells/items/properties/worker_id") + +### worker\_id Type + +`string` diff --git a/docs/configs/deployed-properties-workers-items-properties-installation_spells.md b/docs/configs/deployed-properties-workers-items-properties-installation_spells.md new file mode 100644 index 000000000..8176e13fa --- /dev/null +++ b/docs/configs/deployed-properties-workers-items-properties-installation_spells.md @@ -0,0 +1,3 @@ +## installation\_spells Type + +`object[]` ([Details](deployed-properties-workers-items-properties-installation_spells-items.md)) diff --git a/docs/configs/deployed-properties-workers-items-properties-name.md b/docs/configs/deployed-properties-workers-items-properties-name.md new file mode 100644 index 000000000..141700b27 --- /dev/null +++ b/docs/configs/deployed-properties-workers-items-properties-name.md @@ -0,0 +1,3 @@ +## name Type + +`string` diff --git a/docs/configs/deployed-properties-workers-items.md b/docs/configs/deployed-properties-workers-items.md new file mode 100644 index 000000000..bf5a81590 --- /dev/null +++ b/docs/configs/deployed-properties-workers-items.md @@ -0,0 +1,46 @@ +## items Type + +`object` ([Details](deployed-properties-workers-items.md)) + +# items Properties + +| Property | Type | Required | Nullable | Defined by | +| :------------------------------------------- | :------- | :------- | :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [name](#name) | `string` | Required | cannot be null | [deployed.yaml](deployed-properties-workers-items-properties-name.md "https://fluence.dev/schemas/deployed.yaml#/properties/workers/items/properties/name") | +| [installation\_spells](#installation_spells) | `array` | Required | cannot be null | [deployed.yaml](deployed-properties-workers-items-properties-installation_spells.md "https://fluence.dev/schemas/deployed.yaml#/properties/workers/items/properties/installation_spells") | + +## name + + + +`name` + +* is required + +* Type: `string` + +* cannot be null + +* defined in: [deployed.yaml](deployed-properties-workers-items-properties-name.md "https://fluence.dev/schemas/deployed.yaml#/properties/workers/items/properties/name") + +### name Type + +`string` + +## installation\_spells + +A list of installation spells + +`installation_spells` + +* is required + +* Type: `object[]` ([Details](deployed-properties-workers-items-properties-installation_spells-items.md)) + +* cannot be null + +* defined in: [deployed.yaml](deployed-properties-workers-items-properties-installation_spells.md "https://fluence.dev/schemas/deployed.yaml#/properties/workers/items/properties/installation_spells") + +### installation\_spells Type + +`object[]` ([Details](deployed-properties-workers-items-properties-installation_spells-items.md)) diff --git a/docs/configs/deployed-properties-workers.md b/docs/configs/deployed-properties-workers.md new file mode 100644 index 000000000..19fa01038 --- /dev/null +++ b/docs/configs/deployed-properties-workers.md @@ -0,0 +1,3 @@ +## workers Type + +`object[]` ([Details](deployed-properties-workers-items.md)) diff --git a/docs/configs/deployed.md b/docs/configs/deployed.md new file mode 100644 index 000000000..f70c826de --- /dev/null +++ b/docs/configs/deployed.md @@ -0,0 +1,54 @@ +## deployed.yaml Type + +`object` ([deployed.yaml](deployed.md)) + +# deployed.yaml Properties + +| Property | Type | Required | Nullable | Defined by | +| :------------------ | :------- | :------- | :------------- | :-------------------------------------------------------------------------------------------------------------- | +| [version](#version) | `number` | Required | cannot be null | [deployed.yaml](deployed-properties-version.md "https://fluence.dev/schemas/deployed.yaml#/properties/version") | +| [workers](#workers) | `array` | Optional | cannot be null | [deployed.yaml](deployed-properties-workers.md "https://fluence.dev/schemas/deployed.yaml#/properties/workers") | + +## version + + + +`version` + +* is required + +* Type: `number` + +* cannot be null + +* defined in: [deployed.yaml](deployed-properties-version.md "https://fluence.dev/schemas/deployed.yaml#/properties/version") + +### version Type + +`number` + +### version Constraints + +**constant**: the value of this property must be equal to: + +```json +0 +``` + +## workers + +A list of deployed workers + +`workers` + +* is optional + +* Type: `object[]` ([Details](deployed-properties-workers-items.md)) + +* cannot be null + +* defined in: [deployed.yaml](deployed-properties-workers.md "https://fluence.dev/schemas/deployed.yaml#/properties/workers") + +### workers Type + +`object[]` ([Details](deployed-properties-workers-items.md)) diff --git a/docs/configs/fluence-properties-relays.md b/docs/configs/fluence-properties-relays.md index 872691f8e..0a611a69c 100644 --- a/docs/configs/fluence-properties-relays.md +++ b/docs/configs/fluence-properties-relays.md @@ -1,6 +1,6 @@ ## relays Type -any of the folllowing: `string` or `array` ([Relays](fluence-properties-relays.md)) +any of the following: `string` or `array` ([Relays](fluence-properties-relays.md)) one (and only one) of diff --git a/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-environment-variables.md b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-environment-variables.md new file mode 100644 index 000000000..ac8adb95f --- /dev/null +++ b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-environment-variables.md @@ -0,0 +1,3 @@ +## envs Type + +`object` ([Environment variables](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-environment-variables.md)) diff --git a/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-get.md b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-get.md new file mode 100644 index 000000000..4be036bfd --- /dev/null +++ b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-get.md @@ -0,0 +1,3 @@ +## get Type + +`string` diff --git a/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-loggerenabled.md b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-loggerenabled.md new file mode 100644 index 000000000..03a5ab240 --- /dev/null +++ b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-loggerenabled.md @@ -0,0 +1,3 @@ +## loggerEnabled Type + +`boolean` diff --git a/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-loggingmask.md b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-loggingmask.md new file mode 100644 index 000000000..e453fbfd9 --- /dev/null +++ b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-loggingmask.md @@ -0,0 +1,3 @@ +## loggingMask Type + +`number` diff --git a/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-maxheapsize.md b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-maxheapsize.md new file mode 100644 index 000000000..ac2e60c9d --- /dev/null +++ b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-maxheapsize.md @@ -0,0 +1,3 @@ +## maxHeapSize Type + +`string` diff --git a/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-mounted-binaries.md b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-mounted-binaries.md new file mode 100644 index 000000000..e7b546a97 --- /dev/null +++ b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-mounted-binaries.md @@ -0,0 +1,3 @@ +## mountedBinaries Type + +`object` ([Mounted binaries](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-mounted-binaries.md)) diff --git a/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-name.md b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-name.md new file mode 100644 index 000000000..141700b27 --- /dev/null +++ b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-name.md @@ -0,0 +1,3 @@ +## name Type + +`string` diff --git a/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-preopened-files-items.md b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-preopened-files-items.md new file mode 100644 index 000000000..98d204554 --- /dev/null +++ b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-preopened-files-items.md @@ -0,0 +1,3 @@ +## items Type + +`string` diff --git a/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-preopened-files.md b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-preopened-files.md new file mode 100644 index 000000000..8bfd13bf4 --- /dev/null +++ b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-preopened-files.md @@ -0,0 +1,3 @@ +## preopenedFiles Type + +`string[]` diff --git a/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-type.md b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-type.md new file mode 100644 index 000000000..2ae2c758f --- /dev/null +++ b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-type.md @@ -0,0 +1,20 @@ +## type Type + +`string` + +## type Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :----------- | :---------- | +| `"rust"` | | +| `"compiled"` | | + +## type Default Value + +The default value is: + +```json +"compiled" +``` diff --git a/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-version.md b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-version.md new file mode 100644 index 000000000..127ad5d3b --- /dev/null +++ b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-version.md @@ -0,0 +1,11 @@ +## version Type + +`number` + +## version Constraints + +**constant**: the value of this property must be equal to: + +```json +0 +``` diff --git a/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-volumes.md b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-volumes.md new file mode 100644 index 000000000..2401bbc8a --- /dev/null +++ b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides-properties-volumes.md @@ -0,0 +1,3 @@ +## volumes Type + +`object` ([Volumes](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-volumes.md)) diff --git a/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides.md b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides.md new file mode 100644 index 000000000..f726cc9fe --- /dev/null +++ b/docs/configs/fluence-properties-services-service-config-properties-overrides-module-overrides.md @@ -0,0 +1,283 @@ +## additionalProperties Type + +`object` ([Module overrides](fluence-properties-services-service-config-properties-overrides-module-overrides.md)) + +# additionalProperties Properties + +| Property | Type | Required | Nullable | Defined by | +| :---------------------------------- | :-------- | :------- | :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [type](#type) | `string` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-type.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/type") | +| [name](#name) | `string` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-name.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/name") | +| [maxHeapSize](#maxheapsize) | `string` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-maxheapsize.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/maxHeapSize") | +| [loggerEnabled](#loggerenabled) | `boolean` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-loggerenabled.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/loggerEnabled") | +| [loggingMask](#loggingmask) | `number` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-loggingmask.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/loggingMask") | +| [volumes](#volumes) | `object` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-volumes.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/volumes") | +| [preopenedFiles](#preopenedfiles) | `array` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-preopened-files.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/preopenedFiles") | +| [envs](#envs) | `object` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-environment-variables.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/envs") | +| [mountedBinaries](#mountedbinaries) | `object` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-mounted-binaries.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/mountedBinaries") | +| [version](#version) | `number` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-version.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/version") | +| [get](#get) | `string` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-get.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/get") | + +## type + +Module type "compiled" is for the precompiled modules. Module type "rust" is for the source code written in rust which can be compiled into a Marine module + +`type` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-type.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/type") + +### type Type + +`string` + +### type Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :----------- | :---------- | +| `"rust"` | | +| `"compiled"` | | + +### type Default Value + +The default value is: + +```json +"compiled" +``` + +## name + +"name" property from the Cargo.toml (for module type "rust") or name of the precompiled .wasm file (for module type "compiled") + +`name` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-name.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/name") + +### name Type + +`string` + +## maxHeapSize + +Max size of the heap that a module can allocate in format: \[number]\[whitespace?]\[specificator?] where ? is an optional field and specificator is one from the following (case-insensitive): + +K, Kb - kilobyte + +Ki, KiB - kibibyte + +M, Mb - megabyte + +Mi, MiB - mebibyte + +G, Gb - gigabyte + +Gi, GiB - gibibyte + +Current limit is 4 GiB + +`maxHeapSize` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-maxheapsize.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/maxHeapSize") + +### maxHeapSize Type + +`string` + +## loggerEnabled + +Set true to allow module to use the Marine SDK logger + +`loggerEnabled` + +* is optional + +* Type: `boolean` + +* cannot be null + +* defined in: [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-loggerenabled.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/loggerEnabled") + +### loggerEnabled Type + +`boolean` + +## loggingMask + +Used for logging management. Example: + +```rust +const TARGET_MAP: [(&str, i64); 4] = [ +("instruction", 1 << 1), +("data_cache", 1 << 2), +("next_peer_pks", 1 << 3), +("subtree_complete", 1 << 4), +]; +pub fn main() { +use std::collections::HashMap; +use std::iter::FromIterator; + +let target_map = HashMap::from_iter(TARGET_MAP.iter().cloned()); + +marine_rs_sdk::WasmLoggerBuilder::new() + .with_target_map(target_map) + .build() + .unwrap(); +} +#[marine] +pub fn foo() { +log::info!(target: "instruction", "this will print if (loggingMask & 1) != 0"); +log::info!(target: "data_cache", "this will print if (loggingMask & 2) != 0"); +} +``` + +`loggingMask` + +* is optional + +* Type: `number` + +* cannot be null + +* defined in: [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-loggingmask.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/loggingMask") + +### loggingMask Type + +`number` + +## volumes + +A map of accessible files and their aliases. Aliases should be used in Marine module development because it's hard to know the full path to a file. (This property replaces the legacy "mapped\_dirs" property so there is no need to duplicate the same paths in "preopenedFiles" dir) + +`volumes` + +* is optional + +* Type: `object` ([Volumes](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-volumes.md)) + +* cannot be null + +* defined in: [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-volumes.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/volumes") + +### volumes Type + +`object` ([Volumes](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-volumes.md)) + +## preopenedFiles + +A list of files and directories that this module could access with WASI + +`preopenedFiles` + +* is optional + +* Type: `string[]` + +* cannot be null + +* defined in: [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-preopened-files.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/preopenedFiles") + +### preopenedFiles Type + +`string[]` + +## envs + +environment variables accessible by a particular module with standard Rust env API like this: std::env::var(IPFS\_ADDR\_ENV\_NAME). + +Please note that Marine adds three additional environment variables. Module environment variables could be examined with repl + +`envs` + +* is optional + +* Type: `object` ([Environment variables](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-environment-variables.md)) + +* cannot be null + +* defined in: [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-environment-variables.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/envs") + +### envs Type + +`object` ([Environment variables](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-environment-variables.md)) + +## mountedBinaries + +A map of binary executable files that module is allowed to call. Example: curl: /usr/bin/curl + +`mountedBinaries` + +* is optional + +* Type: `object` ([Mounted binaries](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-mounted-binaries.md)) + +* cannot be null + +* defined in: [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-mounted-binaries.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/mountedBinaries") + +### mountedBinaries Type + +`object` ([Mounted binaries](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-mounted-binaries.md)) + +## version + + + +`version` + +* is optional + +* Type: `number` + +* cannot be null + +* defined in: [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-version.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/version") + +### version Type + +`number` + +### version Constraints + +**constant**: the value of this property must be equal to: + +```json +0 +``` + +## get + +Path to module directory or URL to the tar.gz archive with the module + +`get` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides-properties-get.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties/properties/get") + +### get Type + +`string` diff --git a/docs/configs/fluence-properties-services-service-config-properties-overrides.md b/docs/configs/fluence-properties-services-service-config-properties-overrides.md new file mode 100644 index 000000000..323109bbf --- /dev/null +++ b/docs/configs/fluence-properties-services-service-config-properties-overrides.md @@ -0,0 +1,27 @@ +## overrideModules Type + +`object` ([Overrides](fluence-properties-services-service-config-properties-overrides.md)) + +# overrideModules Properties + +| Property | Type | Required | Nullable | Defined by | +| :-------------------- | :------- | :------- | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Additional Properties | `object` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties") | + +## Additional Properties + +Additional properties are allowed, as long as they follow this schema: + +Module names as keys and overrides for the module config as values + +* is optional + +* Type: `object` ([Module overrides](fluence-properties-services-service-config-properties-overrides-module-overrides.md)) + +* cannot be null + +* defined in: [fluence.yaml](fluence-properties-services-service-config-properties-overrides-module-overrides.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules/additionalProperties") + +### additionalProperties Type + +`object` ([Module overrides](fluence-properties-services-service-config-properties-overrides-module-overrides.md)) diff --git a/docs/configs/fluence-properties-services-service-config.md b/docs/configs/fluence-properties-services-service-config.md index 0793584f3..3f61106ae 100644 --- a/docs/configs/fluence-properties-services-service-config.md +++ b/docs/configs/fluence-properties-services-service-config.md @@ -4,11 +4,12 @@ # additionalProperties Properties -| Property | Type | Required | Nullable | Defined by | -| :-------------------------- | :------- | :------- | :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [get](#get) | `string` | Required | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-get.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/get") | -| [deploy](#deploy) | `array` | Required | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-deployment-list.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/deploy") | -| [keyPairName](#keypairname) | `string` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-keypairname.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/keyPairName") | +| Property | Type | Required | Nullable | Defined by | +| :---------------------------------- | :------- | :------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [get](#get) | `string` | Required | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-get.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/get") | +| [overrideModules](#overridemodules) | `object` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-overrides.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules") | +| [deploy](#deploy) | `array` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-deployment-list.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/deploy") | +| [keyPairName](#keypairname) | `string` | Optional | cannot be null | [fluence.yaml](fluence-properties-services-service-config-properties-keypairname.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/keyPairName") | ## get @@ -28,13 +29,31 @@ Path to service directory or URL to the tar.gz archive with the service `string` +## overrideModules + +A map of modules to override + +`overrideModules` + +* is optional + +* Type: `object` ([Overrides](fluence-properties-services-service-config-properties-overrides.md)) + +* cannot be null + +* defined in: [fluence.yaml](fluence-properties-services-service-config-properties-overrides.md "https://fluence.dev/schemas/fluence.yaml#/properties/services/additionalProperties/properties/overrideModules") + +### overrideModules Type + +`object` ([Overrides](fluence-properties-services-service-config-properties-overrides.md)) + ## deploy List of deployments for the particular service `deploy` -* is required +* is optional * Type: `object[]` ([Deployment](fluence-properties-services-service-config-properties-deployment-list-deployment.md)) diff --git a/docs/configs/fluence.md b/docs/configs/fluence.md index e910c8919..c0c95c734 100644 --- a/docs/configs/fluence.md +++ b/docs/configs/fluence.md @@ -44,7 +44,7 @@ List of Fluence Peer multi addresses or a name of the network. This multi addres * is optional -* Type: any of the folllowing: `string` or `array` ([Relays](fluence-properties-relays.md)) +* Type: any of the following: `string` or `array` ([Relays](fluence-properties-relays.md)) * can be null @@ -52,7 +52,7 @@ List of Fluence Peer multi addresses or a name of the network. This multi addres ### relays Type -any of the folllowing: `string` or `array` ([Relays](fluence-properties-relays.md)) +any of the following: `string` or `array` ([Relays](fluence-properties-relays.md)) one (and only one) of diff --git a/docs/configs/hosts-properties-hosts-items-properties-peerids-items.md b/docs/configs/hosts-properties-hosts-items-properties-peerids-items.md new file mode 100644 index 000000000..98d204554 --- /dev/null +++ b/docs/configs/hosts-properties-hosts-items-properties-peerids-items.md @@ -0,0 +1,3 @@ +## items Type + +`string` diff --git a/docs/configs/hosts-properties-hosts-items-properties-peerids.md b/docs/configs/hosts-properties-hosts-items-properties-peerids.md new file mode 100644 index 000000000..44a048eee --- /dev/null +++ b/docs/configs/hosts-properties-hosts-items-properties-peerids.md @@ -0,0 +1,3 @@ +## peerIds Type + +`string[]` diff --git a/docs/configs/hosts-properties-hosts-items-properties-workername.md b/docs/configs/hosts-properties-hosts-items-properties-workername.md new file mode 100644 index 000000000..6ef21ac29 --- /dev/null +++ b/docs/configs/hosts-properties-hosts-items-properties-workername.md @@ -0,0 +1,3 @@ +## workerName Type + +`string` diff --git a/docs/configs/hosts-properties-hosts-items.md b/docs/configs/hosts-properties-hosts-items.md new file mode 100644 index 000000000..e9e690084 --- /dev/null +++ b/docs/configs/hosts-properties-hosts-items.md @@ -0,0 +1,46 @@ +## items Type + +`object` ([Details](hosts-properties-hosts-items.md)) + +# items Properties + +| Property | Type | Required | Nullable | Defined by | +| :------------------------ | :------- | :------- | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [workerName](#workername) | `string` | Required | cannot be null | [hosts.yaml](hosts-properties-hosts-items-properties-workername.md "https://fluence.dev/schemas/hosts.yaml#/properties/hosts/items/properties/workerName") | +| [peerIds](#peerids) | `array` | Required | cannot be null | [hosts.yaml](hosts-properties-hosts-items-properties-peerids.md "https://fluence.dev/schemas/hosts.yaml#/properties/hosts/items/properties/peerIds") | + +## workerName + +Name of the worker to host. The same as in workers.yaml + +`workerName` + +* is required + +* Type: `string` + +* cannot be null + +* defined in: [hosts.yaml](hosts-properties-hosts-items-properties-workername.md "https://fluence.dev/schemas/hosts.yaml#/properties/hosts/items/properties/workerName") + +### workerName Type + +`string` + +## peerIds + +a list of peer IDs to deploy on + +`peerIds` + +* is required + +* Type: `string[]` + +* cannot be null + +* defined in: [hosts.yaml](hosts-properties-hosts-items-properties-peerids.md "https://fluence.dev/schemas/hosts.yaml#/properties/hosts/items/properties/peerIds") + +### peerIds Type + +`string[]` diff --git a/docs/configs/hosts-properties-hosts.md b/docs/configs/hosts-properties-hosts.md new file mode 100644 index 000000000..0deb50200 --- /dev/null +++ b/docs/configs/hosts-properties-hosts.md @@ -0,0 +1,3 @@ +## hosts Type + +`object[]` ([Details](hosts-properties-hosts-items.md)) diff --git a/docs/configs/hosts-properties-version.md b/docs/configs/hosts-properties-version.md new file mode 100644 index 000000000..b87999cbd --- /dev/null +++ b/docs/configs/hosts-properties-version.md @@ -0,0 +1,11 @@ +## version Type + +`number` + +## version Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :---- | :---------- | +| `0` | | diff --git a/docs/configs/hosts.md b/docs/configs/hosts.md new file mode 100644 index 000000000..c2f13d085 --- /dev/null +++ b/docs/configs/hosts.md @@ -0,0 +1,54 @@ +## hosts.yaml Type + +`object` ([hosts.yaml](hosts.md)) + +# hosts.yaml Properties + +| Property | Type | Required | Nullable | Defined by | +| :------------------ | :------- | :------- | :------------- | :----------------------------------------------------------------------------------------------------- | +| [hosts](#hosts) | `array` | Required | cannot be null | [hosts.yaml](hosts-properties-hosts.md "https://fluence.dev/schemas/hosts.yaml#/properties/hosts") | +| [version](#version) | `number` | Required | cannot be null | [hosts.yaml](hosts-properties-version.md "https://fluence.dev/schemas/hosts.yaml#/properties/version") | + +## hosts + +Array of objects, each object defines a worker and a list of peer IDs to host it on + +`hosts` + +* is required + +* Type: `object[]` ([Details](hosts-properties-hosts-items.md)) + +* cannot be null + +* defined in: [hosts.yaml](hosts-properties-hosts.md "https://fluence.dev/schemas/hosts.yaml#/properties/hosts") + +### hosts Type + +`object[]` ([Details](hosts-properties-hosts-items.md)) + +## version + + + +`version` + +* is required + +* Type: `number` + +* cannot be null + +* defined in: [hosts.yaml](hosts-properties-version.md "https://fluence.dev/schemas/hosts.yaml#/properties/version") + +### version Type + +`number` + +### version Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :---- | :---------- | +| `0` | | diff --git a/docs/configs/workers-properties-version.md b/docs/configs/workers-properties-version.md new file mode 100644 index 000000000..b87999cbd --- /dev/null +++ b/docs/configs/workers-properties-version.md @@ -0,0 +1,11 @@ +## version Type + +`number` + +## version Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :---- | :---------- | +| `0` | | diff --git a/docs/configs/workers-properties-workers-additionalproperties-properties-services-items.md b/docs/configs/workers-properties-workers-additionalproperties-properties-services-items.md new file mode 100644 index 000000000..98d204554 --- /dev/null +++ b/docs/configs/workers-properties-workers-additionalproperties-properties-services-items.md @@ -0,0 +1,3 @@ +## items Type + +`string` diff --git a/docs/configs/workers-properties-workers-additionalproperties-properties-services.md b/docs/configs/workers-properties-workers-additionalproperties-properties-services.md new file mode 100644 index 000000000..8a8b8fff8 --- /dev/null +++ b/docs/configs/workers-properties-workers-additionalproperties-properties-services.md @@ -0,0 +1,3 @@ +## services Type + +`string[]` diff --git a/docs/configs/workers-properties-workers-additionalproperties.md b/docs/configs/workers-properties-workers-additionalproperties.md new file mode 100644 index 000000000..b69970465 --- /dev/null +++ b/docs/configs/workers-properties-workers-additionalproperties.md @@ -0,0 +1,27 @@ +## additionalProperties Type + +`object` ([Details](workers-properties-workers-additionalproperties.md)) + +# additionalProperties Properties + +| Property | Type | Required | Nullable | Defined by | +| :-------------------- | :------ | :------- | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [services](#services) | `array` | Required | cannot be null | [workers.yaml](workers-properties-workers-additionalproperties-properties-services.md "https://fluence.dev/schemas/workers.yaml#/properties/workers/additionalProperties/properties/services") | + +## services + +An array of service names include in this worker. Service names must be listed in fluence.yaml + +`services` + +* is required + +* Type: `string[]` + +* cannot be null + +* defined in: [workers.yaml](workers-properties-workers-additionalproperties-properties-services.md "https://fluence.dev/schemas/workers.yaml#/properties/workers/additionalProperties/properties/services") + +### services Type + +`string[]` diff --git a/docs/configs/workers-properties-workers.md b/docs/configs/workers-properties-workers.md new file mode 100644 index 000000000..90fe19332 --- /dev/null +++ b/docs/configs/workers-properties-workers.md @@ -0,0 +1,27 @@ +## workers Type + +`object` ([Details](workers-properties-workers.md)) + +# workers Properties + +| Property | Type | Required | Nullable | Defined by | +| :-------------------- | :------- | :------- | :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| Additional Properties | `object` | Optional | cannot be null | [workers.yaml](workers-properties-workers-additionalproperties.md "https://fluence.dev/schemas/workers.yaml#/properties/workers/additionalProperties") | + +## Additional Properties + +Additional properties are allowed, as long as they follow this schema: + +Worker config + +* is optional + +* Type: `object` ([Details](workers-properties-workers-additionalproperties.md)) + +* cannot be null + +* defined in: [workers.yaml](workers-properties-workers-additionalproperties.md "https://fluence.dev/schemas/workers.yaml#/properties/workers/additionalProperties") + +### additionalProperties Type + +`object` ([Details](workers-properties-workers-additionalproperties.md)) diff --git a/docs/configs/workers.md b/docs/configs/workers.md new file mode 100644 index 000000000..5c84ce860 --- /dev/null +++ b/docs/configs/workers.md @@ -0,0 +1,54 @@ +## workers.yaml Type + +`object` ([workers.yaml](workers.md)) + +# workers.yaml Properties + +| Property | Type | Required | Nullable | Defined by | +| :------------------ | :------- | :------- | :------------- | :----------------------------------------------------------------------------------------------------------- | +| [workers](#workers) | `object` | Required | cannot be null | [workers.yaml](workers-properties-workers.md "https://fluence.dev/schemas/workers.yaml#/properties/workers") | +| [version](#version) | `number` | Required | cannot be null | [workers.yaml](workers-properties-version.md "https://fluence.dev/schemas/workers.yaml#/properties/version") | + +## workers + +A Map with worker names as keys and worker configs as values + +`workers` + +* is required + +* Type: `object` ([Details](workers-properties-workers.md)) + +* cannot be null + +* defined in: [workers.yaml](workers-properties-workers.md "https://fluence.dev/schemas/workers.yaml#/properties/workers") + +### workers Type + +`object` ([Details](workers-properties-workers.md)) + +## version + + + +`version` + +* is required + +* Type: `number` + +* cannot be null + +* defined in: [workers.yaml](workers-properties-version.md "https://fluence.dev/schemas/workers.yaml#/properties/version") + +### version Type + +`number` + +### version Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :---- | :---------- | +| `0` | | diff --git a/package-lock.json b/package-lock.json index cfdfdf0c8..8ba05bd34 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,9 +30,11 @@ "ethers": "^5.7.2", "filenamify": "^5.1.1", "inquirer": "^9", + "ipfs-http-client": "^60.0.0", + "it-all": "^1.0.6", "lodash-es": "^4.17.21", "multiaddr": "^10.0.1", - "node-fetch": "^3.3.0", + "node-fetch": "^2.6.9", "platform": "^1.3.6", "replace-homedir": "^2.0.0", "web3": "^1.8.2", @@ -44,6 +46,10 @@ }, "devDependencies": { "@adobe/jsonschema2md": "^7.1.5", + "@fluencelabs/aqua-ipfs": "^0.5.9", + "@fluencelabs/aqua-lib": "^0.6.0", + "@fluencelabs/installation-spell": "^0.3.2", + "@fluencelabs/spell": "^0.1.0", "@swc/core": "^1.3.32", "@tsconfig/node18-strictest-esm": "^1.0.1", "@types/chokidar": "^2.1.3", @@ -70,6 +76,7 @@ "husky": "^8.0.3", "jest": "^29.4.1", "lint-staged": "^13.1.0", + "madge": "^6.0.0", "oclif": "^3", "prettier": "^2.8.3", "shx": "^0.3.4", @@ -665,6 +672,11 @@ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, + "node_modules/@chainsafe/is-ip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.0.1.tgz", + "integrity": "sha512-nqSJ8u2a1Rv9FYbyI8qpDhTYujaKEyLknNrTejLYoSWmdeg+2WB7R6BZqPZYfrJzDxVi3rl6ZQuoaEvpKRZWgQ==" + }, "node_modules/@chainsafe/libp2p-noise": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-4.1.2.tgz", @@ -1498,6 +1510,27 @@ "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-api/-/aqua-api-0.9.3.tgz", "integrity": "sha512-ieM2e7qMXgm9BPSSd2fxVbqLlYkR/a/aVTAQXO8gdx2rKKFqnTgFX4gpSOTxrrCMshi8OnXfd2OZi1hsJHTnKA==" }, + "node_modules/@fluencelabs/aqua-ipfs": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-ipfs/-/aqua-ipfs-0.5.9.tgz", + "integrity": "sha512-Vg7pYv4gEreOKfvzKEL5FchGqSKwat7JyKpqJO6h+FC5S1bl76UkI507+ExhijmUbQGznop8G33XFxyUi6q5SQ==", + "dev": true, + "dependencies": { + "@fluencelabs/aqua-lib": "^0.5.2" + } + }, + "node_modules/@fluencelabs/aqua-ipfs/node_modules/@fluencelabs/aqua-lib": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.5.2.tgz", + "integrity": "sha512-fmoFFE8myhLH9d+YR0+0ZPL2YIQyR6M1woAGu5d1xXI02Sjzn4id6dE4PpxHb8cSBPRie8AwsKobHCNqGxI8oA==", + "dev": true + }, + "node_modules/@fluencelabs/aqua-lib": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.6.0.tgz", + "integrity": "sha512-ifjtCM93KO3LhzPkMxqmXhwLmrg/scjOiyTihEVg7ns5N+BVzaK1eWzdOdqGdl9ZVoah43pdlQUepEo7VdRmsw==", + "dev": true + }, "node_modules/@fluencelabs/avm": { "version": "0.35.3", "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.35.3.tgz", @@ -1540,9 +1573,9 @@ } }, "node_modules/@fluencelabs/deal-aurora": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@fluencelabs/deal-aurora/-/deal-aurora-0.1.4.tgz", - "integrity": "sha512-JP4ORr1T44PHoxEF6wNzECiG42L+SHlF/636xp9bNIYASvzOfPTHIwLUdAkBLqirwBeJBufrc4kAzIscwYnMew==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@fluencelabs/deal-aurora/-/deal-aurora-0.1.6.tgz", + "integrity": "sha512-85X6CDlN5OVsGCLIG/h+1I41JmNbb9Rma+3duKxYhVwOSffmQLU3oYxdFCRPj7Zisvk1CjAqxofTxi7HTNBxPg==", "dependencies": { "@nomicfoundation/hardhat-toolbox": "^1.0.2", "@openzeppelin/contracts": "^4.8.0", @@ -1587,6 +1620,24 @@ "resolved": "https://registry.npmjs.org/@fluencelabs/fluence-network-environment/-/fluence-network-environment-1.0.13.tgz", "integrity": "sha512-2pci3T0sUHE08jwEs1r/vHKVT4XUh/A3j/QJ0eIhddsxyIjEksjdn05X7DF6STD14CF8GgBVOJEPgav8qaUMpA==" }, + "node_modules/@fluencelabs/installation-spell": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/installation-spell/-/installation-spell-0.3.2.tgz", + "integrity": "sha512-Nd8EAsbrR6+bDaE66NMrIMySslJovEx56dsKWvZRv4ALCmR+5ewsddCfVT9eUt/ECF8WlEonPqJ9XFQhklShmQ==", + "dev": true, + "dependencies": { + "@fluencelabs/aqua-ipfs": "0.5.9", + "@fluencelabs/aqua-lib": "0.6.0", + "@fluencelabs/registry": "0.7.0", + "@fluencelabs/spell": "0.3.2" + } + }, + "node_modules/@fluencelabs/installation-spell/node_modules/@fluencelabs/spell": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/spell/-/spell-0.3.2.tgz", + "integrity": "sha512-vaepdGq5r9OARrk9UJaqPEsP7cZsyVYLiAg9DocMJLW/9d6y1KIY+hmkqgimchFHX9vwjbnfRfkHI1SXbO3hQg==", + "dev": true + }, "node_modules/@fluencelabs/interfaces": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@fluencelabs/interfaces/-/interfaces-0.1.0.tgz", @@ -2009,9 +2060,9 @@ } }, "node_modules/@fluencelabs/marine-js/node_modules/ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "funding": [ { "type": "github", @@ -2759,6 +2810,43 @@ "node": ">=10" } }, + "node_modules/@fluencelabs/registry": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@fluencelabs/registry/-/registry-0.7.0.tgz", + "integrity": "sha512-9yL/CFqGgw6RvPSJZGYM7dCEVQUXrC+cHFAcNWLAcFkA3RaB4znqFYFQRFeo5VUvv1mda9l1BEdv1Q4uO17/hw==", + "dev": true, + "dependencies": { + "@fluencelabs/aqua-lib": "^0.5.1", + "@fluencelabs/trust-graph": "^3.0.1" + } + }, + "node_modules/@fluencelabs/registry/node_modules/@fluencelabs/aqua-lib": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.5.2.tgz", + "integrity": "sha512-fmoFFE8myhLH9d+YR0+0ZPL2YIQyR6M1woAGu5d1xXI02Sjzn4id6dE4PpxHb8cSBPRie8AwsKobHCNqGxI8oA==", + "dev": true + }, + "node_modules/@fluencelabs/spell": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fluencelabs/spell/-/spell-0.1.0.tgz", + "integrity": "sha512-Qgoz+U4xqANVY+kL696L+2ChbfxC4Uz4Q7vbq+APg54Ts1SDYpQN5xAmmd3uPT8V/mU2aDOwIm4Ry3EubLLgeA==", + "dev": true + }, + "node_modules/@fluencelabs/trust-graph": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/trust-graph/-/trust-graph-3.1.2.tgz", + "integrity": "sha512-HpyHtiomh09wv6/83z+bhbkqVngIUdqNGEXRTIPg4sArVPMZ9UCXBrkQsHDRqdMUx0lBAcgB3IjlbdhkwHGaXA==", + "dev": true, + "dependencies": { + "@fluencelabs/aqua-lib": "^0.5.2" + } + }, + "node_modules/@fluencelabs/trust-graph/node_modules/@fluencelabs/aqua-lib": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.5.2.tgz", + "integrity": "sha512-fmoFFE8myhLH9d+YR0+0ZPL2YIQyR6M1woAGu5d1xXI02Sjzn4id6dE4PpxHb8cSBPRie8AwsKobHCNqGxI8oA==", + "dev": true + }, "node_modules/@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -2803,6 +2891,71 @@ "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==" }, + "node_modules/@ipld/dag-cbor": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.0.0.tgz", + "integrity": "sha512-zdsiSiYDEOIDW7mmWOYWC9gukjXO+F8wqxz/LfN7iSwTfIyipC8+UQrCbPupFMRb/33XQTZk8yl3My8vUQBRoA==", + "dependencies": { + "cborg": "^1.10.0", + "multiformats": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@ipld/dag-cbor/node_modules/multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@ipld/dag-json": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-10.0.1.tgz", + "integrity": "sha512-XE1Eqw3eNVrSfOhtqCM/gwCxEgYFBzkDlkwhEeMmMvhd0rLBfSyVzXbahZSlv97tiTPEIx5rt41gcFAda3W8zg==", + "dependencies": { + "cborg": "^1.10.0", + "multiformats": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@ipld/dag-json/node_modules/multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@ipld/dag-pb": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-4.0.0.tgz", + "integrity": "sha512-8FB/qTlNowCiszL9Sek8xH6xIQxIioXuzZ5B1jVPknQMVkd08nZUHzDjrn1Y6MqJ5PrXWLrBwNghGMWPPpvNVw==", + "dependencies": { + "multiformats": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@ipld/dag-pb/node_modules/multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", @@ -3039,9 +3192,9 @@ } }, "node_modules/@jest/core/node_modules/ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "dev": true, "funding": [ { @@ -3441,6 +3594,163 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@libp2p/interface-connection": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-3.0.8.tgz", + "integrity": "sha512-JiI9xVPkiSgW9hkvHWA4e599OLPNSACrpgtx6UffHG9N+Jpt0IOmM4iLic8bSIYkZJBOQFG1Sv/gVNB98Uq0Nw==", + "dependencies": { + "@libp2p/interface-peer-id": "^2.0.0", + "@libp2p/interfaces": "^3.0.0", + "@multiformats/multiaddr": "^11.0.0", + "it-stream-types": "^1.0.4", + "uint8arraylist": "^2.1.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interface-keychain": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/interface-keychain/-/interface-keychain-2.0.4.tgz", + "integrity": "sha512-RCH0PL9um/ejsPiWIOzxFzjPzL2nT2tRUtCDo1aBQqoBi7eYp4I4ya1KbzgWDPTmNuuFtCReRMQsZ7/KVirKPA==", + "dependencies": { + "@libp2p/interface-peer-id": "^2.0.0", + "multiformats": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interface-keychain/node_modules/multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interface-peer-id": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.1.tgz", + "integrity": "sha512-k01hKHTAZWMOiBC+yyFsmBguEMvhPkXnQtqLtFqga2fVZu8Zve7zFAtQYLhQjeJ4/apeFtO6ddTS8mCE6hl4OA==", + "dependencies": { + "multiformats": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interface-peer-id/node_modules/multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interface-peer-info": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-info/-/interface-peer-info-1.0.8.tgz", + "integrity": "sha512-LRvZt/9bZFYW7seAwuSg2hZuPl+FRTAsij5HtyvVwmpfVxipm6yQrKjQ+LiK/SZhIDVsSJ+UjF0mluJj+jeAzQ==", + "dependencies": { + "@libp2p/interface-peer-id": "^2.0.0", + "@multiformats/multiaddr": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interface-pubsub": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-3.0.6.tgz", + "integrity": "sha512-c1aVHAhxmEh9IpLBgJyCsMscVDl7YUeP1Iq6ILEQoWiPJhNpQqdfmqyk7ZfrzuBU19VFe1EqH0bLuLDbtfysTQ==", + "dependencies": { + "@libp2p/interface-connection": "^3.0.0", + "@libp2p/interface-peer-id": "^2.0.0", + "@libp2p/interfaces": "^3.0.0", + "it-pushable": "^3.0.0", + "uint8arraylist": "^2.1.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interfaces": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@libp2p/interfaces/-/interfaces-3.3.1.tgz", + "integrity": "sha512-3N+goQt74SmaVOjwpwMPKLNgh1uDQGw8GD12c40Kc86WOq0qvpm3NfACW+H8Su2X6KmWjCSMzk9JWs9+8FtUfg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/logger": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-2.0.5.tgz", + "integrity": "sha512-WEhxsc7+gsfuTcljI4vSgW/H2f18aBaC+JiO01FcX841Wxe9szjzHdBLDh9eqygUlzoK0LEeIBfctN7ibzus5A==", + "dependencies": { + "@libp2p/interface-peer-id": "^2.0.0", + "debug": "^4.3.3", + "interface-datastore": "^7.0.0", + "multiformats": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/logger/node_modules/multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/peer-id": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-2.0.1.tgz", + "integrity": "sha512-uGIR4rS+j+IzzIu0kih4MonZEfRmjGNfXaSPMIFOeMxZItZT6TIpxoVNYxHl4YtneSFKzlLnf9yx9EhRcyfy8Q==", + "dependencies": { + "@libp2p/interface-peer-id": "^2.0.0", + "@libp2p/interfaces": "^3.2.0", + "multiformats": "^11.0.0", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/peer-id/node_modules/multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/peer-id/node_modules/uint8arrays": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.3.tgz", + "integrity": "sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg==", + "dependencies": { + "multiformats": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/@metamask/eth-sig-util": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", @@ -3515,6 +3825,56 @@ "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" }, + "node_modules/@multiformats/multiaddr": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-11.4.0.tgz", + "integrity": "sha512-rLIhSOCKQhm/fCjg+5tVM9xrtjbZjZKJg6bb65YbFsNoPSYhweEohXO8Pkg2xbRy3NqVEVkS+8DB/+VhNvjd5Q==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "dns-over-http-resolver": "^2.1.0", + "err-code": "^3.0.1", + "multiformats": "^11.0.0", + "uint8arrays": "^4.0.2", + "varint": "^6.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@multiformats/multiaddr-to-uri": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-9.0.2.tgz", + "integrity": "sha512-vrWmfFadmix5Ab9l//oRQdQ7O3J5bGJpJRMSm21bHlQB0XV4xtNU6vMZBVXeu3Su79LgflEp37cjTFE3yKf3Hw==", + "dependencies": { + "@multiformats/multiaddr": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@multiformats/multiaddr/node_modules/multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@multiformats/multiaddr/node_modules/uint8arrays": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.3.tgz", + "integrity": "sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg==", + "dependencies": { + "multiformats": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/@noble/ed25519": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", @@ -3765,15 +4125,14 @@ } }, "node_modules/@nomicfoundation/hardhat-chai-matchers": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.5.tgz", - "integrity": "sha512-+W5C/+5FHI2xBajUN9THSNc1UP6FUsA7LeLmfnaC9VMi/50/DEjjxd8OmizEXgV1Bjck7my4NVQLL1Ti39FkpA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.6.tgz", + "integrity": "sha512-f5ZMNmabZeZegEfuxn/0kW+mm7+yV7VNDxLpMOMGXWFJ2l/Ct3QShujzDRF9cOkK9Ui/hbDeOWGZqyQALDXVCQ==", "peer": true, "dependencies": { "@ethersproject/abi": "^5.1.2", "@types/chai-as-promised": "^7.1.3", "chai-as-promised": "^7.1.1", - "chalk": "^2.4.2", "deep-eql": "^4.0.1", "ordinal": "^1.0.3" }, @@ -3785,9 +4144,9 @@ } }, "node_modules/@nomicfoundation/hardhat-network-helpers": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.7.tgz", - "integrity": "sha512-X+3mNvn8B7BY5hpIaLO+TrfzWq12bpux+ajGGdmdcfC78NXmYmOZkAtiz1QZx1YIZGMS1LaXzPXyBExxKFpCaw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.8.tgz", + "integrity": "sha512-MNqQbzUJZnCMIYvlniC3U+kcavz/PhhQSsY90tbEtUyMj/IQqsLwIRZa4ctjABh3Bz0KCh9OXUZ7Yk/d9hr45Q==", "peer": true, "dependencies": { "ethereumjs-util": "^7.1.4" @@ -4014,9 +4373,9 @@ } }, "node_modules/@nomiclabs/hardhat-etherscan": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.5.tgz", - "integrity": "sha512-PxPX28AGBAlxgXLU27NB3oiMsklxbNhM75SDC4v1QPCyPeAxGm4xV0WpYbR10W7sxY2WF3Ek7u7GhjbQWa2Fcg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.6.tgz", + "integrity": "sha512-5WFIZeLLgWPiCJqm/4ie7UNXn7FXfzYmqnKwOKU2MLETGolzY1cueSYUTww/P8f+Zc9xfJLmzqSYcGLW/3j/IQ==", "peer": true, "dependencies": { "@ethersproject/abi": "^5.1.2", @@ -4490,9 +4849,9 @@ } }, "node_modules/@oclif/core": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@oclif/core/-/core-2.0.9.tgz", - "integrity": "sha512-SLwSQa1No4br0D9cLY8lleXvcs3K/YpSQdo0md6z8AHx3P+l0/fv9dtIlYYD8MqsRUcNPxshJ3ZkN2sNNM5VjQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@oclif/core/-/core-2.1.2.tgz", + "integrity": "sha512-l7Kx+80zuDgi9o4gZe39XQeYvQuj6Hf+B31kXSUSntgXpfLdDbpFSZH/GP7tsldzG4icrpmSwnLDOz8MNB40Hg==", "dependencies": { "@types/cli-progress": "^3.11.0", "ansi-escapes": "^4.3.2", @@ -4500,7 +4859,7 @@ "cardinal": "^2.1.1", "chalk": "^4.1.2", "clean-stack": "^3.0.1", - "cli-progress": "^3.10.0", + "cli-progress": "^3.11.2", "debug": "^4.3.4", "ejs": "^3.1.6", "fs-extra": "^9.1.0", @@ -4518,7 +4877,7 @@ "strip-ansi": "^6.0.1", "supports-color": "^8.1.1", "supports-hyperlinks": "^2.2.0", - "tslib": "^2.4.1", + "tslib": "^2.5.0", "widest-line": "^3.1.0", "wordwrap": "^1.0.0", "wrap-ansi": "^7.0.0" @@ -4650,11 +5009,11 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/@oclif/plugin-autocomplete": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-1.4.5.tgz", - "integrity": "sha512-qc8BVlOsfUjGDhzHQNYRRWjqJFOyaAPTZK0GqVcrpyeFt3MyXpC0Du8g0tKex/xo+JgaYLAAiN1ZnWWcm4r0Gw==", + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-1.4.6.tgz", + "integrity": "sha512-dawJk8Eb5dxsHTEttKZIOJkJ9PPKB59hL8BrqdCkr+WB4Xerm3G6rNeGWErOVYcOLe8y+nWAeYUE8OHNPn2E9g==", "dependencies": { - "@oclif/core": "^2.0.7", + "@oclif/core": "^2.1.2", "chalk": "^4.1.0", "debug": "^4.3.4", "fs-extra": "^9.0.1" @@ -4715,12 +5074,12 @@ } }, "node_modules/@oclif/plugin-not-found": { - "version": "2.3.18", - "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-2.3.18.tgz", - "integrity": "sha512-yUXgdPwjE/JIuWZ23Ge6G5gM+qiw7Baq/26oBq3eusIP6hZuHYeCpwQ96Zy5aHcjm2NSZcMjkZG1jARyr9BzkQ==", + "version": "2.3.20", + "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-2.3.20.tgz", + "integrity": "sha512-U93rjsL5Z2AWUtURx6R83tNottH6jAsUIGFBu+ZdM4p3bPOPCg9Kmofca6xudiV7ppWxbG5EejZOUGYcdKa/SA==", "dependencies": { - "@oclif/color": "^1.0.3", - "@oclif/core": "^2.0.3", + "@oclif/color": "^1.0.4", + "@oclif/core": "^2.1.2", "fast-levenshtein": "^3.0.0", "lodash": "^4.17.21" }, @@ -4729,12 +5088,12 @@ } }, "node_modules/@oclif/plugin-warn-if-update-available": { - "version": "2.0.26", - "resolved": "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-2.0.26.tgz", - "integrity": "sha512-eMwDOzxPdN1X0y5G0W/GJXFRUvevT6gOrbbRLPoboTUwcFRqhFOJ7jCqGUTomeDfMRgAb3O+3bcD64lIb/y+FA==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-2.0.27.tgz", + "integrity": "sha512-be6dnM3bhf7r6Jy1rzPjOt5qV5MZtqda4p1krbH9a5Ww6jAsYh6CIeKbIP2zPUFthoejG9wt7UFQt3J110DdMQ==", "dev": true, "dependencies": { - "@oclif/core": "^2.0.8", + "@oclif/core": "^2.1.2", "chalk": "^4.1.0", "debug": "^4.1.0", "fs-extra": "^9.0.1", @@ -4933,48 +5292,6 @@ "once": "^1.4.0" } }, - "node_modules/@octokit/request/node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@octokit/request/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/@octokit/request/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/@octokit/request/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/@octokit/rest": { "version": "18.12.0", "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", @@ -5467,9 +5784,9 @@ } }, "node_modules/@swc/core": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.32.tgz", - "integrity": "sha512-Yx/n1j+uUkcqlJAW8IRg8Qymgkdow6NHJZPFShiR0YiaYq2sXY+JHmvh16O6GkL91Y+gTlDUS7uVgDz50czJUQ==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.35.tgz", + "integrity": "sha512-KmiBin0XSVzJhzX19zTiCqmLslZ40Cl7zqskJcTDeIrRhfgKdiAsxzYUanJgMJIRjYtl9Kcg1V/Ip2o2wL8v3w==", "devOptional": true, "hasInstallScript": true, "engines": { @@ -5480,22 +5797,22 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.3.32", - "@swc/core-darwin-x64": "1.3.32", - "@swc/core-linux-arm-gnueabihf": "1.3.32", - "@swc/core-linux-arm64-gnu": "1.3.32", - "@swc/core-linux-arm64-musl": "1.3.32", - "@swc/core-linux-x64-gnu": "1.3.32", - "@swc/core-linux-x64-musl": "1.3.32", - "@swc/core-win32-arm64-msvc": "1.3.32", - "@swc/core-win32-ia32-msvc": "1.3.32", - "@swc/core-win32-x64-msvc": "1.3.32" + "@swc/core-darwin-arm64": "1.3.35", + "@swc/core-darwin-x64": "1.3.35", + "@swc/core-linux-arm-gnueabihf": "1.3.35", + "@swc/core-linux-arm64-gnu": "1.3.35", + "@swc/core-linux-arm64-musl": "1.3.35", + "@swc/core-linux-x64-gnu": "1.3.35", + "@swc/core-linux-x64-musl": "1.3.35", + "@swc/core-win32-arm64-msvc": "1.3.35", + "@swc/core-win32-ia32-msvc": "1.3.35", + "@swc/core-win32-x64-msvc": "1.3.35" } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.32.tgz", - "integrity": "sha512-o19bhlxuUgjUElm6i+QhXgZ0vD6BebiB/gQpK3en5aAwhOvinwr4sah3GqFXsQzz/prKVDuMkj9SW6F/Ug5hgg==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.35.tgz", + "integrity": "sha512-zQUFkHx4gZpu0uo2IspvPnKsz8bsdXd5bC33xwjtoAI1cpLerDyqo4v2zIahEp+FdKZjyVsLHtfJiQiA1Qka3A==", "cpu": [ "arm64" ], @@ -5508,9 +5825,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.32.tgz", - "integrity": "sha512-hVEGd+v5Afh+YekGADOGKwhuS4/AXk91nLuk7pmhWkk8ceQ1cfmah90kXjIXUlCe2G172MLRfHNWlZxr29E/Og==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.35.tgz", + "integrity": "sha512-oOSkSGWtALovaw22lNevKD434OQTPf8X+dVPvPMrJXJpJ34dWDlFWpLntoc+arvKLNZ7LQmTuk8rR1hkrAY7cw==", "cpu": [ "x64" ], @@ -5523,9 +5840,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.32.tgz", - "integrity": "sha512-5X01WqI9EbJ69oHAOGlI08YqvEIXMfT/mCJ1UWDQBb21xWRE2W1yFAAeuqOLtiagLrXjPv/UKQ0S2gyWQR5AXQ==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.35.tgz", + "integrity": "sha512-Yie8k00O6O8BCATS/xeKStquV4OYSskUGRDXBQVDw1FrE23PHaSeHCgg4q6iNZjJzXCOJbaTCKnYoIDn9DMf7A==", "cpu": [ "arm" ], @@ -5538,9 +5855,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.32.tgz", - "integrity": "sha512-PTJ6oPiutkNBg+m22bUUPa4tNuMmsgpSnsnv2wnWVOgK0lhvQT6bAPTUXDq/8peVAgR/SlpP2Ht8TRRqYMRjRQ==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.35.tgz", + "integrity": "sha512-Zlv3WHa/4x2p51HSvjUWXHfSe1Gl2prqImUZJc8NZOlj75BFzVuR0auhQ+LbwvIQ3gaA1LODX9lyS9wXL3yjxA==", "cpu": [ "arm64" ], @@ -5553,9 +5870,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.32.tgz", - "integrity": "sha512-lG0VOuYNPWOCJ99Aza69cTljjeft/wuRQeYFF8d+1xCQS/OT7gnbgi7BOz39uSHIPTBqfzdIsuvzdKlp9QydrQ==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.35.tgz", + "integrity": "sha512-u6tCYsrSyZ8U+4jLMA/O82veBfLy2aUpn51WxQaeH7wqZGy9TGSJXoO8vWxARQ6b72vjsnKDJHP4MD8hFwcctg==", "cpu": [ "arm64" ], @@ -5568,9 +5885,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.32.tgz", - "integrity": "sha512-ecqtSWX4NBrs7Ji2VX3fDWeqUfrbLlYqBuufAziCM27xMxwlAVgmyGQk4FYgoQ3SAUAu3XFH87+3Q7uWm2X7xg==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.35.tgz", + "integrity": "sha512-Dtxf2IbeH7XlNhP1Qt2/MvUPkpEbn7hhGfpSRs4ot8D3Vf5QEX4S/QtC1OsFWuciiYgHAT1Ybjt4xZic9DSkmA==", "cpu": [ "x64" ], @@ -5583,9 +5900,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.32.tgz", - "integrity": "sha512-rl3dMcUuENVkpk5NGW/LXovjK0+JFm4GWPjy4NM3Q5cPvhBpGwSeLZlR+zAw9K0fdGoIXiayRTTfENrQwwsH+g==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.35.tgz", + "integrity": "sha512-4XavNJ60GprjpTiESCu5daJUnmErixPAqDitJSMu4TV32LNIE8G00S9pDLXinDTW1rgcGtQdq1NLkNRmwwovtg==", "cpu": [ "x64" ], @@ -5598,9 +5915,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.32.tgz", - "integrity": "sha512-VlybAZp8DcS66CH1LDnfp9zdwbPlnGXREtHDMHaBfK9+80AWVTg+zn0tCYz+HfcrRONqxbudwOUIPj+dwl/8jw==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.35.tgz", + "integrity": "sha512-dNGfKCUSX2M4qVyaS80Lyos0FkXyHRCvrdQ2Y4Hrg3FVokiuw3yY6fLohpUfQ5ws3n2A39dh7jGDeh34+l0sGA==", "cpu": [ "arm64" ], @@ -5613,9 +5930,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.32.tgz", - "integrity": "sha512-MEUMdpUFIQ+RD+K/iHhHKfu0TFNj9VXwIxT5hmPeqyboKo095CoFEFBJ0sHG04IGlnu8T9i+uE2Pi18qUEbFug==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.35.tgz", + "integrity": "sha512-ChuPSrDR+JBf7S7dEKPicnG8A3bM0uWPsW2vG+V2wH4iNfNxKVemESHosmYVeEZXqMpomNMvLyeHep1rjRsc0Q==", "cpu": [ "ia32" ], @@ -5628,9 +5945,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.32.tgz", - "integrity": "sha512-DPMoneNFQco7SqmVVOUv1Vn53YmoImEfrAPMY9KrqQzgfzqNTuL2JvfxUqfAxwQ6pEKYAdyKJvZ483rIhgG9XQ==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.35.tgz", + "integrity": "sha512-/RvphT4WfuGfIK84Ha0dovdPrKB1bW/mc+dtdmhv2E3EGkNc5FoueNwYmXWRimxnU7X0X7IkcRhyKB4G5DeAmg==", "cpu": [ "x64" ], @@ -7674,6 +7991,12 @@ "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", "peer": true }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, "node_modules/any-signal": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.1.tgz", @@ -7691,6 +8014,12 @@ "node": ">= 8" } }, + "node_modules/app-module-path": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", + "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==", + "dev": true + }, "node_modules/aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", @@ -7889,6 +8218,15 @@ "node": "*" } }, + "node_modules/ast-module-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-3.0.0.tgz", + "integrity": "sha512-CMxMCOCS+4D+DkOQfuZf+vLrSEmY/7xtORwdxs4wtcC1wVgvk2MqFFTwQCFhvWsI4KPU9lcWXPI8DgRiz+xetQ==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -7956,9 +8294,9 @@ } }, "node_modules/aws-sdk": { - "version": "2.1310.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1310.0.tgz", - "integrity": "sha512-D0m9uFUa1UVXWTe4GSyNJP4+6DXwboE2FEG/URkLoo4r9Q8LHxwNFCGkBhaoEwssREyRe2LOYS1Nag/6WyvC6Q==", + "version": "2.1313.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1313.0.tgz", + "integrity": "sha512-8GMdtV2Uch3HL2c6+P3lNZFTcg/fqq9L3EWYRLb6ljCZvWKTssjdkjSJFDyTReNgeiKV224YRPYQbKpOEz4flQ==", "dev": true, "dependencies": { "buffer": "4.9.2", @@ -8387,6 +8725,18 @@ "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" }, + "node_modules/blob-to-it": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-2.0.0.tgz", + "integrity": "sha512-O9P902MzxHg8fjIAzmK4HSo9WmcMn1ACJvSHJvIYWDr4na7GLyR5iQTf0i2EXlnM5EIWmWtk+vh38tTph9JiPA==", + "dependencies": { + "browser-readablestream-to-it": "^2.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -8481,9 +8831,13 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" }, "node_modules/browser-readablestream-to-it": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz", - "integrity": "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-2.0.0.tgz", + "integrity": "sha512-x7L6NN0FF0LchYKA7D5x2/oJ+n6Y8A0gFaazIxH2AkHr+fjFJvsDUYLLQKAfIkpKiLjQEkbjF0DBw7HRT1ylNA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } }, "node_modules/browser-stdout": { "version": "1.3.1", @@ -8737,7 +9091,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "peer": true, "dependencies": { "streamsearch": "^1.1.0" }, @@ -8870,9 +9223,9 @@ } }, "node_modules/cacache/node_modules/tar/node_modules/minipass": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.2.tgz", - "integrity": "sha512-4Hbzei7ZyBp+1aw0874YWpKOubZd/jc53/XU+gkYry1QV+VvrbO8icLM5CUtm4F0hyXn85DXYKEMIS26gitD3A==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.3.tgz", + "integrity": "sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw==", "dev": true, "engines": { "node": ">=8" @@ -8955,9 +9308,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001450", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz", - "integrity": "sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==", + "version": "1.0.30001451", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001451.tgz", + "integrity": "sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==", "funding": [ { "type": "opencollective", @@ -9007,6 +9360,14 @@ "node": ">=12.19" } }, + "node_modules/cborg": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.0.tgz", + "integrity": "sha512-/eM0JCaL99HDHxjySNQJLaolZFVdl6VA0/hEKIoiQPcQzE5LrG5QHdml0HaBt31brgB9dNe1zMr3f8IVrpotRQ==", + "bin": { + "cborg": "cli.js" + } + }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", @@ -10108,44 +10469,6 @@ "whatwg-fetch": "^2.0.4" } }, - "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/cross-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/cross-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/cross-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -10229,6 +10552,24 @@ "type": "^1.0.1" } }, + "node_modules/dag-jose": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/dag-jose/-/dag-jose-4.0.0.tgz", + "integrity": "sha512-tw595L3UYoOUT9dSJPbBEG/qpRpw24kRZxa5SLRnlnr+g5L7O8oEs1d3W5TiVA1oJZbthVsf0Vi3zFN66qcEBA==", + "dependencies": { + "@ipld/dag-cbor": "^9.0.0", + "multiformats": "^11.0.0" + } + }, + "node_modules/dag-jose/node_modules/multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/dargs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", @@ -10271,6 +10612,41 @@ "node": ">=10" } }, + "node_modules/data-urls/node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "peer": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/data-urls/node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "peer": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "peer": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/datastore-core": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-7.0.3.tgz", @@ -10293,6 +10669,45 @@ "npm": ">=7.0.0" } }, + "node_modules/datastore-core/node_modules/interface-datastore": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.1.tgz", + "integrity": "sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg==", + "dependencies": { + "interface-store": "^2.0.2", + "nanoid": "^3.0.2", + "uint8arrays": "^3.0.0" + } + }, + "node_modules/datastore-core/node_modules/interface-store": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", + "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" + }, + "node_modules/datastore-core/node_modules/it-map": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", + "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" + }, + "node_modules/datastore-core/node_modules/it-pushable": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", + "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", + "dependencies": { + "fast-fifo": "^1.0.0" + } + }, + "node_modules/datastore-core/node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/date-fns": { "version": "2.29.3", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", @@ -10634,9 +11049,9 @@ } }, "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -10670,6 +11085,82 @@ "node": ">= 0.8" } }, + "node_modules/dependency-tree": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/dependency-tree/-/dependency-tree-9.0.0.tgz", + "integrity": "sha512-osYHZJ1fBSon3lNLw70amAXsQ+RGzXsPvk9HbBgTLbp/bQBmpH5mOmsUvqXU+YEWVU0ZLewsmzOET/8jWswjDQ==", + "dev": true, + "dependencies": { + "commander": "^2.20.3", + "debug": "^4.3.1", + "filing-cabinet": "^3.0.1", + "precinct": "^9.0.0", + "typescript": "^4.0.0" + }, + "bin": { + "dependency-tree": "bin/cli.js" + }, + "engines": { + "node": "^10.13 || ^12 || >=14" + } + }, + "node_modules/dependency-tree/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/dependency-tree/node_modules/module-definition": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-4.0.0.tgz", + "integrity": "sha512-wntiAHV4lDn24BQn2kX6LKq0y85phHLHiv3aOPDF+lIs06kVjEMTe/ZTdrbVLnQV5FQsjik21taknvMhKY1Cug==", + "dev": true, + "dependencies": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^5.0.0" + }, + "bin": { + "module-definition": "bin/cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dependency-tree/node_modules/precinct": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-9.0.1.tgz", + "integrity": "sha512-hVNS6JvfvlZ64B3ezKeGAcVhIuOvuAiSVzagHX/+KjVPkYWoCNkfyMgCl1bjDtAFQSlzi95NcS9ykUWrl1L1vA==", + "dev": true, + "dependencies": { + "commander": "^9.1.0", + "detective-amd": "^4.0.1", + "detective-cjs": "^4.0.0", + "detective-es6": "^3.0.0", + "detective-less": "^1.0.2", + "detective-postcss": "^6.0.1", + "detective-sass": "^4.0.1", + "detective-scss": "^3.0.0", + "detective-stylus": "^2.0.0", + "detective-typescript": "^9.0.0", + "module-definition": "^4.0.0", + "node-source-walk": "^5.0.0" + }, + "bin": { + "precinct": "bin/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.14.0 || >=16.0.0" + } + }, + "node_modules/dependency-tree/node_modules/precinct/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, "node_modules/deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", @@ -10731,6 +11222,227 @@ "detect-port": "bin/detect-port.js" } }, + "node_modules/detective-amd": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-4.0.1.tgz", + "integrity": "sha512-bDo22IYbJ8yzALB0Ow5CQLtyhU1BpDksLB9dsWHI9Eh0N3OQR6aQqhjPsNDd69ncYwRfL1sTo7OA9T3VRVSe2Q==", + "dev": true, + "dependencies": { + "ast-module-types": "^3.0.0", + "escodegen": "^2.0.0", + "get-amd-module-type": "^4.0.0", + "node-source-walk": "^5.0.0" + }, + "bin": { + "detective-amd": "bin/cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/detective-amd/node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/detective-amd/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/detective-amd/node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/detective-amd/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/detective-amd/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/detective-amd/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/detective-amd/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/detective-cjs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-4.0.0.tgz", + "integrity": "sha512-VsD6Yo1+1xgxJWoeDRyut7eqZ8EWaJI70C5eanSAPcBHzenHZx0uhjxaaEfIm0cHII7dBiwU98Orh44bwXN2jg==", + "dev": true, + "dependencies": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^5.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/detective-es6": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-3.0.0.tgz", + "integrity": "sha512-Uv2b5Uih7vorYlqGzCX+nTPUb4CMzUAn3VPHTV5p5lBkAN4cAApLGgUz4mZE2sXlBfv4/LMmeP7qzxHV/ZcfWA==", + "dev": true, + "dependencies": { + "node-source-walk": "^5.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/detective-less": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/detective-less/-/detective-less-1.0.2.tgz", + "integrity": "sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA==", + "dev": true, + "dependencies": { + "debug": "^4.0.0", + "gonzales-pe": "^4.2.3", + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">= 6.0" + } + }, + "node_modules/detective-less/node_modules/node-source-walk": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.3.0.tgz", + "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/detective-postcss": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-6.1.0.tgz", + "integrity": "sha512-ZFZnEmUrL2XHAC0j/4D1fdwZbo/anAcK84soJh7qc7xfx2Kc8gFO5Bk5I9jU7NLC/OAF1Yho1GLxEDnmQnRH2A==", + "dev": true, + "dependencies": { + "is-url": "^1.2.4", + "postcss": "^8.4.12", + "postcss-values-parser": "^6.0.2" + }, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/detective-sass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-4.0.1.tgz", + "integrity": "sha512-80zfpxux1krOrkxCHbtwvIs2gNHUBScnSqlGl0FvUuHVz8HD6vD2ov66OroMctyvzhM67fxhuEeVjIk18s6yTQ==", + "dev": true, + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^5.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/detective-scss": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-3.0.0.tgz", + "integrity": "sha512-37MB/mhJyS45ngqfzd6eTbuLMoDgdZnH03ZOMW2m9WqJ/Rlbuc8kZAr0Ypovaf1DJiTRzy5mmxzOTja85jbzlA==", + "dev": true, + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^5.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/detective-stylus": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-2.0.1.tgz", + "integrity": "sha512-/Tvs1pWLg8eYwwV6kZQY5IslGaYqc/GACxjcaGudiNtN5nKCH6o2WnJK3j0gA3huCnoQcbv8X7oz/c1lnvE3zQ==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/detective-typescript": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-9.0.0.tgz", + "integrity": "sha512-lR78AugfUSBojwlSRZBeEqQ1l8LI7rbxOl1qTUnGLcjZQDjZmrZCb7R46rK8U8B5WzFvJrxa7fEBA8FoD/n5fA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "^5.13.0", + "ast-module-types": "^3.0.0", + "node-source-walk": "^5.0.0", + "typescript": "^4.5.5" + }, + "engines": { + "node": "^12.20.0 || ^14.14.0 || >=16.0.0" + } + }, "node_modules/dezalgo": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", @@ -10792,13 +11504,18 @@ } }, "node_modules/dns-over-http-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", - "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-2.1.1.tgz", + "integrity": "sha512-Lm/eXB7yAQLJ5WxlBGwYfBY7utduXPZykcSmcG6K7ozM0wrZFvxZavhT6PqI0kd/5CUTfev/RrEFQqyU4CGPew==", "dependencies": { "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" + "native-fetch": "^4.0.2", + "receptacle": "^1.3.2", + "undici": "^5.12.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, "node_modules/doctrine": { @@ -10903,9 +11620,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.288", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.288.tgz", - "integrity": "sha512-8s9aJf3YiokIrR+HOQzNOGmEHFXVUQzXM/JaViVvKdCkNUjS+lEa/uT7xw3nDVG/IgfxiIwUGkwJ6AR1pTpYsQ==" + "version": "1.4.295", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.295.tgz", + "integrity": "sha512-lEO94zqf1bDA3aepxwnWoHUjA8sZ+2owgcSZjYQy0+uOSEclJX0VieZC+r+wLpSxUHRd6gG32znTWmr+5iGzFw==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -10978,6 +11695,19 @@ "once": "^1.4.0" } }, + "node_modules/enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", @@ -11309,9 +12039,9 @@ } }, "node_modules/eslint": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", - "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz", + "integrity": "sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.4.1", @@ -12651,44 +13381,6 @@ "safe-event-emitter": "^1.0.1" } }, - "node_modules/eth-json-rpc-infura/node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/eth-json-rpc-infura/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/eth-json-rpc-infura/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/eth-json-rpc-infura/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/eth-json-rpc-middleware": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz", @@ -12743,25 +13435,6 @@ "safe-event-emitter": "^1.0.1" } }, - "node_modules/eth-json-rpc-middleware/node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/eth-json-rpc-middleware/node_modules/pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -12770,25 +13443,6 @@ "node": ">=4" } }, - "node_modules/eth-json-rpc-middleware/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/eth-json-rpc-middleware/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/eth-json-rpc-middleware/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/eth-lib": { "version": "0.1.29", "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", @@ -13555,28 +14209,6 @@ "xxhashjs": "0.2.2" } }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, "node_modules/figures": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", @@ -13682,6 +14314,52 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/filing-cabinet": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-3.3.0.tgz", + "integrity": "sha512-Tnbpbme1ONaHXV5DGcw0OFpcfP3p2itRf5VXO1bguBXdIewDbK6ZFBK//DGKM0BuCzaQLQNY4f5gljzxY1VCUw==", + "dev": true, + "dependencies": { + "app-module-path": "^2.2.0", + "commander": "^2.20.3", + "debug": "^4.3.3", + "enhanced-resolve": "^5.8.3", + "is-relative-path": "^1.0.2", + "module-definition": "^3.3.1", + "module-lookup-amd": "^7.0.1", + "resolve": "^1.21.0", + "resolve-dependency-path": "^2.0.0", + "sass-lookup": "^3.0.0", + "stylus-lookup": "^3.0.1", + "tsconfig-paths": "^3.10.1", + "typescript": "^3.9.7" + }, + "bin": { + "filing-cabinet": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/filing-cabinet/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/filing-cabinet/node_modules/typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -13845,6 +14523,13 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, + "node_modules/flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", + "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", + "dev": true + }, "node_modules/follow-redirects": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", @@ -13899,17 +14584,6 @@ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -14051,6 +14725,19 @@ "node": ">=6.9.0" } }, + "node_modules/get-amd-module-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-4.0.0.tgz", + "integrity": "sha512-GbBawUCuA2tY8ztiMiVo3e3P95gc2TVrfYFfpUHdHQA8WyxMCckK29bQsVKhYX8SUf+w6JLhL2LG8tSC0ANt9Q==", + "dev": true, + "dependencies": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^5.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -14086,6 +14773,12 @@ "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -14318,6 +15011,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gonzales-pe": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", + "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "gonzales": "bin/gonzales.js" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -14445,9 +15153,9 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/hardhat": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.12.6.tgz", - "integrity": "sha512-0Ent1O5DsPgvaVb5sxEgsQ3bJRt/Ex92tsoO+xjoNH2Qc4bFmhI5/CHVlFikulalxOPjNmw5XQ2vJFuVQFESAA==", + "version": "2.12.7", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.12.7.tgz", + "integrity": "sha512-voWoN6zn5d8BOEaczSyK/1PyfdeOeI3SbGCFb36yCHTJUt6OIqLb+ZDX30VhA1UsYKzLqG7UnWl3fKJUuANc6A==", "peer": true, "dependencies": { "@ethersproject/abi": "^5.1.2", @@ -15174,6 +15882,12 @@ "node": ">=8" } }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", + "dev": true + }, "node_modules/infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", @@ -15197,8 +15911,7 @@ "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "peer": true + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/inquirer": { "version": "9.1.4", @@ -15308,9 +16021,9 @@ } }, "node_modules/inquirer/node_modules/type-fest": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.5.6.tgz", - "integrity": "sha512-6bd2bflx8ed7c99tc6zSTIzHr1/QG29bQoK4Qh8MYGnlPbODUzGxklLShjwc/xWQQFHgIci+y5Arv7Rbb0LjXw==", + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.5.7.tgz", + "integrity": "sha512-6J4bYzb4sdkcLBty4XW7F18VPI66M4boXNE+CY40532oq2OJe6AVMB5NmjOp6skt/jw5mRjz/hLRpuglz0U+FA==", "engines": { "node": ">=14.16" }, @@ -15335,26 +16048,55 @@ } }, "node_modules/interface-datastore": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.1.tgz", - "integrity": "sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-7.0.4.tgz", + "integrity": "sha512-Q8LZS/jfFFHz6XyZazLTAc078SSCoa27ZPBOfobWdpDiFO7FqPA2yskitUJIhaCgxNK8C+/lMBUTBNfVIDvLiw==", "dependencies": { - "interface-store": "^2.0.2", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" + "interface-store": "^3.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/interface-datastore/node_modules/multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/interface-datastore/node_modules/uint8arrays": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.3.tgz", + "integrity": "sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg==", + "dependencies": { + "multiformats": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, "node_modules/interface-store": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", - "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-3.0.4.tgz", + "integrity": "sha512-OjHUuGXbH4eXSBx1TF1tTySvjLldPLzRSYYXJwrEQI+XfH5JWYZofr0gVMV4F8XTwC+4V7jomDYkvGRmDSRKqQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } }, "node_modules/internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dependencies": { - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" }, @@ -15413,6 +16155,189 @@ "node": ">= 10" } }, + "node_modules/ipfs-core-types": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.14.0.tgz", + "integrity": "sha512-qO1xVO3n5m7scTXXtMz8hDTLdwXInnwqadIDQpXC446BIlaYyRWUvLcFQ2bOjQql9/CPNTaPHzjzr5Y1XxqpJw==", + "dependencies": { + "@ipld/dag-pb": "^4.0.0", + "@libp2p/interface-keychain": "^2.0.0", + "@libp2p/interface-peer-id": "^2.0.0", + "@libp2p/interface-peer-info": "^1.0.2", + "@libp2p/interface-pubsub": "^3.0.0", + "@multiformats/multiaddr": "^11.0.0", + "@types/node": "^18.0.0", + "interface-datastore": "^7.0.0", + "ipfs-unixfs": "^9.0.0", + "multiformats": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-core-types/node_modules/multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-core-utils": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.18.0.tgz", + "integrity": "sha512-7N/KfsOPGJu9mwN8EQwrW9HXgS5RNM3WUyjIMWk49KlpYmsXectXuC9i6npI1vn1W/oUaIOZt3lHx37jecnepw==", + "dependencies": { + "@libp2p/logger": "^2.0.0", + "@multiformats/multiaddr": "^11.0.0", + "@multiformats/multiaddr-to-uri": "^9.0.1", + "any-signal": "^3.0.0", + "blob-to-it": "^2.0.0", + "browser-readablestream-to-it": "^2.0.0", + "err-code": "^3.0.1", + "ipfs-core-types": "^0.14.0", + "ipfs-unixfs": "^9.0.0", + "ipfs-utils": "^9.0.13", + "it-all": "^2.0.0", + "it-map": "^2.0.0", + "it-peekable": "^2.0.0", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "multiformats": "^11.0.0", + "nanoid": "^4.0.0", + "parse-duration": "^1.0.0", + "timeout-abort-controller": "^3.0.0", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-core-utils/node_modules/it-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-2.0.0.tgz", + "integrity": "sha512-I/yi9ogTY59lFxtfsDSlI9w9QZtC/5KJt6g7CPPBJJh2xql2ZS7Ghcp9hoqDDbc4QfwQvtx8Loy0zlKQ8H5gFg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-core-utils/node_modules/multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-core-utils/node_modules/uint8arrays": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.3.tgz", + "integrity": "sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg==", + "dependencies": { + "multiformats": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-http-client": { + "version": "60.0.0", + "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-60.0.0.tgz", + "integrity": "sha512-d6Rqc1UP5nWhp7j0PumK80CA5LvbTvskro+qGw7hgWvbfQ0rX/5ddig7ELvVYJbJM4YBxCJSaSHDEOGoSpzzKg==", + "dependencies": { + "@ipld/dag-cbor": "^9.0.0", + "@ipld/dag-json": "^10.0.0", + "@ipld/dag-pb": "^4.0.0", + "@libp2p/logger": "^2.0.0", + "@libp2p/peer-id": "^2.0.0", + "@multiformats/multiaddr": "^11.0.0", + "any-signal": "^3.0.0", + "dag-jose": "^4.0.0", + "err-code": "^3.0.1", + "ipfs-core-types": "^0.14.0", + "ipfs-core-utils": "^0.18.0", + "ipfs-utils": "^9.0.13", + "it-first": "^2.0.0", + "it-last": "^2.0.0", + "merge-options": "^3.0.4", + "multiformats": "^11.0.0", + "parse-duration": "^1.0.0", + "stream-to-it": "^0.2.2", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-http-client/node_modules/multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-http-client/node_modules/uint8arrays": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.3.tgz", + "integrity": "sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg==", + "dependencies": { + "multiformats": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-unixfs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-9.0.1.tgz", + "integrity": "sha512-jh2CbXyxID+v3jLml9CqMwjdSS9ZRnsGfQGGPOfem0/hT/L48xUeTPvh7qLFWkZcIMhZtG+fnS1teei8x5uGBg==", + "dependencies": { + "err-code": "^3.0.1", + "protobufjs": "^7.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-unixfs/node_modules/long": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", + "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" + }, + "node_modules/ipfs-unixfs/node_modules/protobufjs": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.2.tgz", + "integrity": "sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/ipfs-utils": { "version": "9.0.14", "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.14.tgz", @@ -15440,42 +16365,28 @@ "npm": ">=7.0.0" } }, - "node_modules/ipfs-utils/node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dependencies": { - "whatwg-url": "^5.0.0" + "node_modules/ipfs-utils/node_modules/browser-readablestream-to-it": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz", + "integrity": "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==" + }, + "node_modules/ipfs-utils/node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/ipfs-utils/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/ipfs-utils/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/ipfs-utils/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "node_modules/ipfs-utils/node_modules/native-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "peerDependencies": { + "node-fetch": "*" } }, "node_modules/is-arguments": { @@ -15771,6 +16682,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-observable": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-2.1.0.tgz", @@ -15829,6 +16749,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-relative-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-relative-path/-/is-relative-path-1.0.2.tgz", + "integrity": "sha512-i1h+y50g+0hRbBD+dbnInl3JlJ702aar58snAeX+MxBAPvzXGej7sYoPMhlnykabt0ZzCJNBEyzMlekuQZN7fA==", + "dev": true + }, "node_modules/is-retry-allowed": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", @@ -15931,6 +16866,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true + }, + "node_modules/is-url-superb": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", + "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -16117,9 +17070,13 @@ "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" }, "node_modules/it-first": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", - "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-2.0.0.tgz", + "integrity": "sha512-fzZGzVf01exFyIZXNjkpSMFr1eW2+J1K0v018tYY26Dd4f/O3pWlBTdrOBfSQRZwtI8Pst6c7eKhYczWvFs6tA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } }, "node_modules/it-foreach": { "version": "0.1.1", @@ -16145,6 +17102,23 @@ "p-defer": "^3.0.0" } }, + "node_modules/it-handshake/node_modules/it-pushable": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", + "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", + "dependencies": { + "fast-fifo": "^1.0.0" + } + }, + "node_modules/it-last": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-last/-/it-last-2.0.0.tgz", + "integrity": "sha512-u0GHZ01tWYtPvDkOaqZSLLWjFv3IJw9cPL9mbEV7wnE8DOsbVoXIuKpnz3U6pySl5RzPVjTzSHOc961ZYttBxg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/it-length-prefixed": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", @@ -16156,9 +17130,13 @@ } }, "node_modules/it-map": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", - "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-2.0.0.tgz", + "integrity": "sha512-mLgtk/NZaN7NZ06iLrMXCA6jjhtZO0vZT5Ocsp31H+nsGI18RSPVmUbFyA1sWx7q+g92J22Sixya7T2QSSAwfA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } }, "node_modules/it-merge": { "version": "1.0.4", @@ -16168,6 +17146,14 @@ "it-pushable": "^1.4.0" } }, + "node_modules/it-merge/node_modules/it-pushable": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", + "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", + "dependencies": { + "fast-fifo": "^1.0.0" + } + }, "node_modules/it-pair": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz", @@ -16186,17 +17172,27 @@ "it-length-prefixed": "^5.0.2" } }, + "node_modules/it-peekable": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-2.0.0.tgz", + "integrity": "sha512-+eacms2jr2wQqIRxU25eqWPHaEeR4IurrS9hTScmCJpWagRkC8WHw7atciEA6KArOiyxHCAXg5Q5We7/RhvqAQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/it-pipe": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" }, "node_modules/it-pushable": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", - "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", - "dependencies": { - "fast-fifo": "^1.0.0" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.2.tgz", + "integrity": "sha512-zU9FbeoGT0f+yobwm8agol2OTMXbq4ZSWLEi7hug6TEZx4qVhGhGyp31cayH04aBYsIoO2Nr5kgMjH/oWj2BJQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, "node_modules/it-reader": { @@ -16215,6 +17211,15 @@ "it-all": "^1.0.6" } }, + "node_modules/it-stream-types": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-1.0.5.tgz", + "integrity": "sha512-I88Ka1nHgfX62e5mi5LLL+oueqz7Ltg0bUdtsUKDe9SoUqbQPf2Mp5kxDTe9pNhHQGs4pvYPAINwuZ1HAt42TA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/it-take": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", @@ -16517,9 +17522,9 @@ } }, "node_modules/jest-config/node_modules/ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "dev": true, "funding": [ { @@ -16761,9 +17766,9 @@ } }, "node_modules/jest-environment-jsdom/node_modules/ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "funding": [ { "type": "github", @@ -17147,9 +18152,9 @@ } }, "node_modules/jest-jasmine2/node_modules/ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "funding": [ { "type": "github", @@ -18110,9 +19115,9 @@ } }, "node_modules/jest-util/node_modules/ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "devOptional": true, "funding": [ { @@ -18265,9 +19270,9 @@ } }, "node_modules/js-base64": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.4.tgz", - "integrity": "sha512-wpM/wi20Tl+3ifTyi0RdDckS4YTD4Lf953mBRrpG8547T7hInHNPEj8+ck4gB8VDcGyeAWFK++Wb/fU1BeavKQ==" + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", + "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" }, "node_modules/js-sdsl": { "version": "4.3.0", @@ -18442,6 +19447,18 @@ "node": ">=6" } }, + "node_modules/jsdom/node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "peer": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jsdom/node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -18463,6 +19480,29 @@ "node": ">= 4.0.0" } }, + "node_modules/jsdom/node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "peer": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/jsdom/node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "peer": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -18974,6 +20014,14 @@ "uint8arrays": "^3.0.0" } }, + "node_modules/libp2p-interfaces/node_modules/it-pushable": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", + "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", + "dependencies": { + "fast-fifo": "^1.0.0" + } + }, "node_modules/libp2p-interfaces/node_modules/libp2p-crypto": { "version": "0.21.2", "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.21.2.tgz", @@ -19006,6 +20054,14 @@ "varint": "^6.0.0" } }, + "node_modules/libp2p-mplex/node_modules/it-pushable": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", + "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", + "dependencies": { + "fast-fifo": "^1.0.0" + } + }, "node_modules/libp2p-utils": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.4.1.tgz", @@ -19039,6 +20095,31 @@ "p-timeout": "^4.1.0" } }, + "node_modules/libp2p/node_modules/interface-datastore": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.1.tgz", + "integrity": "sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg==", + "dependencies": { + "interface-store": "^2.0.2", + "nanoid": "^3.0.2", + "uint8arrays": "^3.0.0" + } + }, + "node_modules/libp2p/node_modules/interface-store": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", + "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" + }, + "node_modules/libp2p/node_modules/it-first": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", + "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" + }, + "node_modules/libp2p/node_modules/it-map": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", + "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" + }, "node_modules/libp2p/node_modules/libp2p-crypto": { "version": "0.21.2", "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.21.2.tgz", @@ -19057,6 +20138,17 @@ "node": ">=12.0.0" } }, + "node_modules/libp2p/node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/lilconfig": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", @@ -19606,6 +20698,201 @@ "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==" }, + "node_modules/madge": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/madge/-/madge-6.0.0.tgz", + "integrity": "sha512-dddxP62sj5pL+l9MJnq9C34VFqmRj+2+uSOdn/7lOTSliLRH0WyQ8uCEF3VxkPRNOBvMKK2xumnIE15HRSAL9A==", + "dev": true, + "dependencies": { + "chalk": "^4.1.1", + "commander": "^7.2.0", + "commondir": "^1.0.1", + "debug": "^4.3.1", + "dependency-tree": "^9.0.0", + "detective-amd": "^4.0.1", + "detective-cjs": "^4.0.0", + "detective-es6": "^3.0.0", + "detective-less": "^1.0.2", + "detective-postcss": "^6.1.0", + "detective-sass": "^4.0.1", + "detective-scss": "^3.0.0", + "detective-stylus": "^2.0.1", + "detective-typescript": "^9.0.0", + "ora": "^5.4.1", + "pluralize": "^8.0.0", + "precinct": "^8.1.0", + "pretty-ms": "^7.0.1", + "rc": "^1.2.7", + "stream-to-array": "^2.3.0", + "ts-graphviz": "^1.5.0", + "typescript": "^3.9.5", + "walkdir": "^0.4.1" + }, + "bin": { + "madge": "bin/cli.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "individual", + "url": "https://www.paypal.me/pahen" + } + }, + "node_modules/madge/node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/madge/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/madge/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/madge/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/madge/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/madge/node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/madge/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/madge/node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/madge/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/madge/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/madge/node_modules/typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/mafmt": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-10.0.0.tgz", @@ -20874,9 +22161,9 @@ } }, "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -21295,6 +22582,34 @@ "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" }, + "node_modules/module-definition": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-3.4.0.tgz", + "integrity": "sha512-XxJ88R1v458pifaSkPNLUTdSPNVGMP2SXVncVmApGO+gAfrLANiYe6JofymCzVceGOMwQE2xogxBSc8uB7XegA==", + "dev": true, + "dependencies": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^4.0.0" + }, + "bin": { + "module-definition": "bin/cli.js" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/module-definition/node_modules/node-source-walk": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.3.0.tgz", + "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, "node_modules/module-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", @@ -21304,6 +22619,31 @@ "node": ">=10" } }, + "node_modules/module-lookup-amd": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz", + "integrity": "sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ==", + "dev": true, + "dependencies": { + "commander": "^2.8.1", + "debug": "^4.1.0", + "glob": "^7.1.6", + "requirejs": "^2.3.5", + "requirejs-config-file": "^4.0.0" + }, + "bin": { + "lookup-amd": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/module-lookup-amd/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/mortice": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mortice/-/mortice-2.0.1.tgz", @@ -21315,6 +22655,17 @@ "promise-timeout": "^1.3.0" } }, + "node_modules/mortice/node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -21360,6 +22711,24 @@ "multiaddr": "^10.0.0" } }, + "node_modules/multiaddr/node_modules/dns-over-http-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", + "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", + "dependencies": { + "debug": "^4.3.1", + "native-fetch": "^3.0.0", + "receptacle": "^1.3.2" + } + }, + "node_modules/multiaddr/node_modules/native-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "peerDependencies": { + "node-fetch": "*" + } + }, "node_modules/multibase": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", @@ -21444,6 +22813,11 @@ "uint8arrays": "^3.0.0" } }, + "node_modules/multistream-select/node_modules/it-first": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", + "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" + }, "node_modules/mutable-proxy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/mutable-proxy/-/mutable-proxy-1.0.0.tgz", @@ -21469,14 +22843,14 @@ "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==" }, "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.1.tgz", + "integrity": "sha512-udKGtCCUafD3nQtJg9wBhRP3KMbPglUsgV5JVsXhvyBs/oefqb4sqMEhKBBgqZncYowu58p1prsZQBYvAj/Gww==", "bin": { - "nanoid": "bin/nanoid.cjs" + "nanoid": "bin/nanoid.js" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": "^14 || ^16 || >=18" } }, "node_modules/napi-macros": { @@ -21502,11 +22876,11 @@ } }, "node_modules/native-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", - "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-4.0.2.tgz", + "integrity": "sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==", "peerDependencies": { - "node-fetch": "*" + "undici": "*" } }, "node_modules/natural-compare": { @@ -21577,24 +22951,6 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, "node_modules/node-emoji": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", @@ -21624,28 +22980,22 @@ } }, "node_modules/node-fetch": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", - "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" + "whatwg-url": "^5.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "4.x || >=6.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/node-fetch/node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "engines": { - "node": ">= 12" + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/node-forge": { @@ -21768,9 +23118,9 @@ } }, "node_modules/node-gyp/node_modules/minipass": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.2.tgz", - "integrity": "sha512-4Hbzei7ZyBp+1aw0874YWpKOubZd/jc53/XU+gkYry1QV+VvrbO8icLM5CUtm4F0hyXn85DXYKEMIS26gitD3A==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.3.tgz", + "integrity": "sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw==", "dev": true, "engines": { "node": ">=8" @@ -21891,6 +23241,18 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" }, + "node_modules/node-source-walk": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.0.tgz", + "integrity": "sha512-58APXoMXpmmU+oVBJFajhTCoD8d/OGtngnVAWzIo2A8yn0IXwBzvIVIsTzoie/SrA37u+1hnpNz2HMWx/VIqlw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/nofilter": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", @@ -22467,9 +23829,9 @@ } }, "node_modules/npm-registry-fetch/node_modules/tar/node_modules/minipass": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.2.tgz", - "integrity": "sha512-4Hbzei7ZyBp+1aw0874YWpKOubZd/jc53/XU+gkYry1QV+VvrbO8icLM5CUtm4F0hyXn85DXYKEMIS26gitD3A==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.3.tgz", + "integrity": "sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw==", "dev": true, "engines": { "node": ">=8" @@ -23284,9 +24646,9 @@ } }, "node_modules/pacote/node_modules/tar/node_modules/minipass": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.2.tgz", - "integrity": "sha512-4Hbzei7ZyBp+1aw0874YWpKOubZd/jc53/XU+gkYry1QV+VvrbO8icLM5CUtm4F0hyXn85DXYKEMIS26gitD3A==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.3.tgz", + "integrity": "sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw==", "dev": true, "engines": { "node": ">=8" @@ -23354,6 +24716,11 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/parse-duration": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.2.tgz", + "integrity": "sha512-Dg27N6mfok+ow1a2rj/nRjtCfaKrHUZV2SJpEn/s8GaVUSlf4GGRCRP1c13Hj+wfPKVMrFDqLMLITkYKgKxyyg==" + }, "node_modules/parse-headers": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", @@ -23376,6 +24743,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -23735,6 +25111,15 @@ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/pngjs": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", @@ -23753,6 +25138,59 @@ "trouter": "^2.0.1" } }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-values-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz", + "integrity": "sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==", + "dev": true, + "dependencies": { + "color-name": "^1.1.4", + "is-url-superb": "^4.0.0", + "quote-unquote": "^1.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "postcss": "^8.2.9" + } + }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/preact": { "version": "10.4.1", "resolved": "https://registry.npmjs.org/preact/-/preact-10.4.1.tgz", @@ -23762,6 +25200,418 @@ "url": "https://opencollective.com/preact" } }, + "node_modules/precinct": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-8.3.1.tgz", + "integrity": "sha512-pVppfMWLp2wF68rwHqBIpPBYY8Kd12lDhk8LVQzOwqllifVR15qNFyod43YLyFpurKRZQKnE7E4pofAagDOm2Q==", + "dev": true, + "dependencies": { + "commander": "^2.20.3", + "debug": "^4.3.3", + "detective-amd": "^3.1.0", + "detective-cjs": "^3.1.1", + "detective-es6": "^2.2.1", + "detective-less": "^1.0.2", + "detective-postcss": "^4.0.0", + "detective-sass": "^3.0.1", + "detective-scss": "^2.0.1", + "detective-stylus": "^1.0.0", + "detective-typescript": "^7.0.0", + "module-definition": "^3.3.1", + "node-source-walk": "^4.2.0" + }, + "bin": { + "precinct": "bin/cli.js" + }, + "engines": { + "node": "^10.13 || ^12 || >=14" + } + }, + "node_modules/precinct/node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/precinct/node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/precinct/node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/precinct/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/precinct/node_modules/detective-amd": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-3.1.2.tgz", + "integrity": "sha512-jffU26dyqJ37JHR/o44La6CxtrDf3Rt9tvd2IbImJYxWKTMdBjctp37qoZ6ZcY80RHg+kzWz4bXn39e4P7cctQ==", + "dev": true, + "dependencies": { + "ast-module-types": "^3.0.0", + "escodegen": "^2.0.0", + "get-amd-module-type": "^3.0.0", + "node-source-walk": "^4.2.0" + }, + "bin": { + "detective-amd": "bin/cli.js" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/precinct/node_modules/detective-cjs": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-3.1.3.tgz", + "integrity": "sha512-ljs7P0Yj9MK64B7G0eNl0ThWSYjhAaSYy+fQcpzaKalYl/UoQBOzOeLCSFEY1qEBhziZ3w7l46KG/nH+s+L7BQ==", + "dev": true, + "dependencies": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/precinct/node_modules/detective-es6": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.2.tgz", + "integrity": "sha512-eZUKCUsbHm8xoeoCM0z6JFwvDfJ5Ww5HANo+jPR7AzkFpW9Mun3t/TqIF2jjeWa2TFbAiGaWESykf2OQp3oeMw==", + "dev": true, + "dependencies": { + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/precinct/node_modules/detective-postcss": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-4.0.0.tgz", + "integrity": "sha512-Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "is-url": "^1.2.4", + "postcss": "^8.1.7", + "postcss-values-parser": "^2.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/precinct/node_modules/detective-sass": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-3.0.2.tgz", + "integrity": "sha512-DNVYbaSlmti/eztFGSfBw4nZvwsTaVXEQ4NsT/uFckxhJrNRFUh24d76KzoCC3aarvpZP9m8sC2L1XbLej4F7g==", + "dev": true, + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/precinct/node_modules/detective-scss": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-2.0.2.tgz", + "integrity": "sha512-hDWnWh/l0tht/7JQltumpVea/inmkBaanJUcXRB9kEEXVwVUMuZd6z7eusQ6GcBFrfifu3pX/XPyD7StjbAiBg==", + "dev": true, + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/precinct/node_modules/detective-stylus": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-1.0.3.tgz", + "integrity": "sha512-4/bfIU5kqjwugymoxLXXLltzQNeQfxGoLm2eIaqtnkWxqbhap9puDVpJPVDx96hnptdERzS5Cy6p9N8/08A69Q==", + "dev": true + }, + "node_modules/precinct/node_modules/detective-typescript": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-7.0.2.tgz", + "integrity": "sha512-unqovnhxzvkCz3m1/W4QW4qGsvXCU06aU2BAm8tkza+xLnp9SOFnob2QsTxUv5PdnQKfDvWcv9YeOeFckWejwA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "^4.33.0", + "ast-module-types": "^2.7.1", + "node-source-walk": "^4.2.0", + "typescript": "^3.9.10" + }, + "engines": { + "node": "^10.13 || >=12.0.0" + } + }, + "node_modules/precinct/node_modules/detective-typescript/node_modules/ast-module-types": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-2.7.1.tgz", + "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", + "dev": true + }, + "node_modules/precinct/node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/precinct/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/precinct/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/precinct/node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/precinct/node_modules/get-amd-module-type": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-3.0.2.tgz", + "integrity": "sha512-PcuKwB8ouJnKuAPn6Hk3UtdfKoUV3zXRqVEvj8XGIXqjWfgd1j7QGdXy5Z9OdQfzVt1Sk29HVe/P+X74ccOuqw==", + "dev": true, + "dependencies": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^4.2.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/precinct/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/precinct/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/precinct/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/precinct/node_modules/node-source-walk": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.3.0.tgz", + "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/precinct/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/precinct/node_modules/postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "dev": true, + "dependencies": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=6.14.4" + } + }, + "node_modules/precinct/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/precinct/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/precinct/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/precinct/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/precinct/node_modules/typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/precinct/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/precond": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", @@ -23804,9 +25654,9 @@ } }, "node_modules/prettier": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz", - "integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==", + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", + "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==", "bin": { "prettier": "bin-prettier.js" }, @@ -23855,6 +25705,21 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/pretty-ms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "dev": true, + "dependencies": { + "parse-ms": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/private-ip": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.3.4.tgz", @@ -24381,6 +26246,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/quote-unquote": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/quote-unquote/-/quote-unquote-1.0.0.tgz", + "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", + "dev": true + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -24420,6 +26291,30 @@ "node": ">= 0.8" } }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", @@ -24929,6 +26824,32 @@ "node": ">=0.10.5" } }, + "node_modules/requirejs": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", + "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", + "dev": true, + "bin": { + "r_js": "bin/r.js", + "r.js": "bin/r.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/requirejs-config-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", + "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.0", + "stringify-object": "^3.2.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -24975,6 +26896,15 @@ "node": ">=8" } }, + "node_modules/resolve-dependency-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz", + "integrity": "sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -25213,6 +27143,27 @@ "truncate-utf8-bytes": "^1.0.0" } }, + "node_modules/sass-lookup": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sass-lookup/-/sass-lookup-3.0.0.tgz", + "integrity": "sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==", + "dev": true, + "dependencies": { + "commander": "^2.16.0" + }, + "bin": { + "sass-lookup": "bin/cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/sass-lookup/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/sax": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", @@ -25990,6 +27941,15 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -26172,6 +28132,15 @@ "node": ">=0.10.0" } }, + "node_modules/stream-to-array": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", + "integrity": "sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==", + "dev": true, + "dependencies": { + "any-promise": "^1.1.0" + } + }, "node_modules/stream-to-it": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", @@ -26192,7 +28161,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "peer": true, "engines": { "node": ">=10.0.0" } @@ -26292,6 +28260,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -26398,6 +28380,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/stylus-lookup": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-3.0.2.tgz", + "integrity": "sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==", + "dev": true, + "dependencies": { + "commander": "^2.8.1", + "debug": "^4.1.0" + }, + "bin": { + "stylus-lookup": "bin/cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/stylus-lookup/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -26627,6 +28631,15 @@ "minimist": "^1.1.0" } }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/tar": { "version": "4.4.19", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", @@ -26909,16 +28922,9 @@ } }, "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "peer": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/tree-kill": { "version": "1.2.2", @@ -27431,9 +29437,9 @@ } }, "node_modules/ts-command-line-args/node_modules/ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "funding": [ { "type": "github", @@ -28171,6 +30177,19 @@ "typescript": ">=3.7.0" } }, + "node_modules/ts-graphviz": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ts-graphviz/-/ts-graphviz-1.5.3.tgz", + "integrity": "sha512-72wo3Y6ZO8FMB9OgzHTB5W/9P5nG6JrO3L3UfWI3oXaFJRqbOyGDxVrfjvF4M7Gnq4B8a0KpeHkpNkUXINqd4A==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kamiazya" + } + }, "node_modules/ts-jest": { "version": "29.0.5", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.0.5.tgz", @@ -28596,6 +30615,39 @@ "node": ">=0.8.0" } }, + "node_modules/uint8arraylist": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.3.tgz", + "integrity": "sha512-oEVZr4/GrH87K0kjNce6z8pSCzLEPqHNLNR5sj8cJOySrTP8Vb/pMIbZKLJGhQKxm1TiZ31atNrpn820Pyqpow==", + "dependencies": { + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/uint8arraylist/node_modules/multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/uint8arraylist/node_modules/uint8arrays": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.3.tgz", + "integrity": "sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg==", + "dependencies": { + "multiformats": "^11.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/uint8arrays": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", @@ -28656,10 +30708,9 @@ } }, "node_modules/undici": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.18.0.tgz", - "integrity": "sha512-1iVwbhonhFytNdg0P4PqyIAXbdlVZVebtPDvuM36m66mRw4OGrCm2MYynJv/UENFLdP13J1nPVQzVE2zTs1OeA==", - "peer": true, + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.19.1.tgz", + "integrity": "sha512-YiZ61LPIgY73E7syxCDxxa3LV2yl3sN8spnIuTct60boiiRaE1J8mNWHO8Im2Zi/sFrPusjLlmRPrsyraSqX6A==", "dependencies": { "busboy": "^1.6.0" }, @@ -28698,6 +30749,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", + "dev": true + }, "node_modules/unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -29059,9 +31116,9 @@ } }, "node_modules/vfile": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.6.tgz", - "integrity": "sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==", + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", @@ -29158,6 +31215,15 @@ "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==", "dev": true }, + "node_modules/walkdir": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", + "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -29718,25 +31784,6 @@ } } }, - "node_modules/web3-providers-http/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/web3-providers-http/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/web3-providers-http/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/web3-providers-ipc": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz", @@ -29800,13 +31847,9 @@ } }, "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "peer": true, - "engines": { - "node": ">=10.4" - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/websocket": { "version": "1.0.34", @@ -29858,17 +31901,12 @@ "peer": true }, "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "peer": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "node_modules/wherearewe": { @@ -30308,9 +32346,9 @@ } }, "node_modules/yeoman-environment": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.13.0.tgz", - "integrity": "sha512-eBPpBZCvFzx6yk17x+ZrOHp8ADDv6qHradV+SgdugaQKIy9NjEX5AkbwdTHLOgccSTkQ9rN791xvYOu6OmqjBg==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.14.1.tgz", + "integrity": "sha512-IjH9lCm0CKbNqH7x59c75feg64bz/WOk72j/wwMRiEQvcD47eKYduJmbyohR9pncmveJw/kkoJy3/OazARk7KA==", "dev": true, "dependencies": { "@npmcli/arborist": "^4.0.4", @@ -30636,9 +32674,9 @@ "dev": true }, "node_modules/yeoman-generator": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-5.7.0.tgz", - "integrity": "sha512-z9ZwgKoDOd+llPDCwn8Ax2l4In5FMhlslxdeByW4AMxhT+HbTExXKEAahsClHSbwZz1i5OzRwLwRIUdOJBr5Bw==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-5.7.1.tgz", + "integrity": "sha512-5X9Ep5Zu7gw6JDpahkgCorsz8BUQ0iDbnLO3Ov0UgLc9GedTUMk0a2DMkEspq7+fZHtVcOQ2C/YIbzpDH/5OMg==", "dev": true, "dependencies": { "chalk": "^4.1.0", @@ -31378,6 +33416,11 @@ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, + "@chainsafe/is-ip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.0.1.tgz", + "integrity": "sha512-nqSJ8u2a1Rv9FYbyI8qpDhTYujaKEyLknNrTejLYoSWmdeg+2WB7R6BZqPZYfrJzDxVi3rl6ZQuoaEvpKRZWgQ==" + }, "@chainsafe/libp2p-noise": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-4.1.2.tgz", @@ -31896,6 +33939,29 @@ "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-api/-/aqua-api-0.9.3.tgz", "integrity": "sha512-ieM2e7qMXgm9BPSSd2fxVbqLlYkR/a/aVTAQXO8gdx2rKKFqnTgFX4gpSOTxrrCMshi8OnXfd2OZi1hsJHTnKA==" }, + "@fluencelabs/aqua-ipfs": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-ipfs/-/aqua-ipfs-0.5.9.tgz", + "integrity": "sha512-Vg7pYv4gEreOKfvzKEL5FchGqSKwat7JyKpqJO6h+FC5S1bl76UkI507+ExhijmUbQGznop8G33XFxyUi6q5SQ==", + "dev": true, + "requires": { + "@fluencelabs/aqua-lib": "^0.5.2" + }, + "dependencies": { + "@fluencelabs/aqua-lib": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.5.2.tgz", + "integrity": "sha512-fmoFFE8myhLH9d+YR0+0ZPL2YIQyR6M1woAGu5d1xXI02Sjzn4id6dE4PpxHb8cSBPRie8AwsKobHCNqGxI8oA==", + "dev": true + } + } + }, + "@fluencelabs/aqua-lib": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.6.0.tgz", + "integrity": "sha512-ifjtCM93KO3LhzPkMxqmXhwLmrg/scjOiyTihEVg7ns5N+BVzaK1eWzdOdqGdl9ZVoah43pdlQUepEo7VdRmsw==", + "dev": true + }, "@fluencelabs/avm": { "version": "0.35.3", "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.35.3.tgz", @@ -31929,9 +33995,9 @@ } }, "@fluencelabs/deal-aurora": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@fluencelabs/deal-aurora/-/deal-aurora-0.1.4.tgz", - "integrity": "sha512-JP4ORr1T44PHoxEF6wNzECiG42L+SHlF/636xp9bNIYASvzOfPTHIwLUdAkBLqirwBeJBufrc4kAzIscwYnMew==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@fluencelabs/deal-aurora/-/deal-aurora-0.1.6.tgz", + "integrity": "sha512-85X6CDlN5OVsGCLIG/h+1I41JmNbb9Rma+3duKxYhVwOSffmQLU3oYxdFCRPj7Zisvk1CjAqxofTxi7HTNBxPg==", "requires": { "@nomicfoundation/hardhat-toolbox": "^1.0.2", "@openzeppelin/contracts": "^4.8.0", @@ -31969,6 +34035,26 @@ "resolved": "https://registry.npmjs.org/@fluencelabs/fluence-network-environment/-/fluence-network-environment-1.0.13.tgz", "integrity": "sha512-2pci3T0sUHE08jwEs1r/vHKVT4XUh/A3j/QJ0eIhddsxyIjEksjdn05X7DF6STD14CF8GgBVOJEPgav8qaUMpA==" }, + "@fluencelabs/installation-spell": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/installation-spell/-/installation-spell-0.3.2.tgz", + "integrity": "sha512-Nd8EAsbrR6+bDaE66NMrIMySslJovEx56dsKWvZRv4ALCmR+5ewsddCfVT9eUt/ECF8WlEonPqJ9XFQhklShmQ==", + "dev": true, + "requires": { + "@fluencelabs/aqua-ipfs": "0.5.9", + "@fluencelabs/aqua-lib": "0.6.0", + "@fluencelabs/registry": "0.7.0", + "@fluencelabs/spell": "0.3.2" + }, + "dependencies": { + "@fluencelabs/spell": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/spell/-/spell-0.3.2.tgz", + "integrity": "sha512-vaepdGq5r9OARrk9UJaqPEsP7cZsyVYLiAg9DocMJLW/9d6y1KIY+hmkqgimchFHX9vwjbnfRfkHI1SXbO3hQg==", + "dev": true + } + } + }, "@fluencelabs/interfaces": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@fluencelabs/interfaces/-/interfaces-0.1.0.tgz", @@ -32305,9 +34391,9 @@ } }, "ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==" + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==" }, "cliui": { "version": "7.0.4", @@ -32873,6 +34959,47 @@ } } }, + "@fluencelabs/registry": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@fluencelabs/registry/-/registry-0.7.0.tgz", + "integrity": "sha512-9yL/CFqGgw6RvPSJZGYM7dCEVQUXrC+cHFAcNWLAcFkA3RaB4znqFYFQRFeo5VUvv1mda9l1BEdv1Q4uO17/hw==", + "dev": true, + "requires": { + "@fluencelabs/aqua-lib": "^0.5.1", + "@fluencelabs/trust-graph": "^3.0.1" + }, + "dependencies": { + "@fluencelabs/aqua-lib": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.5.2.tgz", + "integrity": "sha512-fmoFFE8myhLH9d+YR0+0ZPL2YIQyR6M1woAGu5d1xXI02Sjzn4id6dE4PpxHb8cSBPRie8AwsKobHCNqGxI8oA==", + "dev": true + } + } + }, + "@fluencelabs/spell": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fluencelabs/spell/-/spell-0.1.0.tgz", + "integrity": "sha512-Qgoz+U4xqANVY+kL696L+2ChbfxC4Uz4Q7vbq+APg54Ts1SDYpQN5xAmmd3uPT8V/mU2aDOwIm4Ry3EubLLgeA==", + "dev": true + }, + "@fluencelabs/trust-graph": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/trust-graph/-/trust-graph-3.1.2.tgz", + "integrity": "sha512-HpyHtiomh09wv6/83z+bhbkqVngIUdqNGEXRTIPg4sArVPMZ9UCXBrkQsHDRqdMUx0lBAcgB3IjlbdhkwHGaXA==", + "dev": true, + "requires": { + "@fluencelabs/aqua-lib": "^0.5.2" + }, + "dependencies": { + "@fluencelabs/aqua-lib": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.5.2.tgz", + "integrity": "sha512-fmoFFE8myhLH9d+YR0+0ZPL2YIQyR6M1woAGu5d1xXI02Sjzn4id6dE4PpxHb8cSBPRie8AwsKobHCNqGxI8oA==", + "dev": true + } + } + }, "@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -32907,6 +35034,53 @@ "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==" }, + "@ipld/dag-cbor": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.0.0.tgz", + "integrity": "sha512-zdsiSiYDEOIDW7mmWOYWC9gukjXO+F8wqxz/LfN7iSwTfIyipC8+UQrCbPupFMRb/33XQTZk8yl3My8vUQBRoA==", + "requires": { + "cborg": "^1.10.0", + "multiformats": "^11.0.0" + }, + "dependencies": { + "multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==" + } + } + }, + "@ipld/dag-json": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-10.0.1.tgz", + "integrity": "sha512-XE1Eqw3eNVrSfOhtqCM/gwCxEgYFBzkDlkwhEeMmMvhd0rLBfSyVzXbahZSlv97tiTPEIx5rt41gcFAda3W8zg==", + "requires": { + "cborg": "^1.10.0", + "multiformats": "^11.0.0" + }, + "dependencies": { + "multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==" + } + } + }, + "@ipld/dag-pb": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-4.0.0.tgz", + "integrity": "sha512-8FB/qTlNowCiszL9Sek8xH6xIQxIioXuzZ5B1jVPknQMVkd08nZUHzDjrn1Y6MqJ5PrXWLrBwNghGMWPPpvNVw==", + "requires": { + "multiformats": "^11.0.0" + }, + "dependencies": { + "multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==" + } + } + }, "@isaacs/string-locale-compare": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", @@ -33085,9 +35259,9 @@ } }, "ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "dev": true }, "slash": { @@ -33393,6 +35567,119 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "@libp2p/interface-connection": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-3.0.8.tgz", + "integrity": "sha512-JiI9xVPkiSgW9hkvHWA4e599OLPNSACrpgtx6UffHG9N+Jpt0IOmM4iLic8bSIYkZJBOQFG1Sv/gVNB98Uq0Nw==", + "requires": { + "@libp2p/interface-peer-id": "^2.0.0", + "@libp2p/interfaces": "^3.0.0", + "@multiformats/multiaddr": "^11.0.0", + "it-stream-types": "^1.0.4", + "uint8arraylist": "^2.1.2" + } + }, + "@libp2p/interface-keychain": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/interface-keychain/-/interface-keychain-2.0.4.tgz", + "integrity": "sha512-RCH0PL9um/ejsPiWIOzxFzjPzL2nT2tRUtCDo1aBQqoBi7eYp4I4ya1KbzgWDPTmNuuFtCReRMQsZ7/KVirKPA==", + "requires": { + "@libp2p/interface-peer-id": "^2.0.0", + "multiformats": "^11.0.0" + }, + "dependencies": { + "multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==" + } + } + }, + "@libp2p/interface-peer-id": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.1.tgz", + "integrity": "sha512-k01hKHTAZWMOiBC+yyFsmBguEMvhPkXnQtqLtFqga2fVZu8Zve7zFAtQYLhQjeJ4/apeFtO6ddTS8mCE6hl4OA==", + "requires": { + "multiformats": "^11.0.0" + }, + "dependencies": { + "multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==" + } + } + }, + "@libp2p/interface-peer-info": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-info/-/interface-peer-info-1.0.8.tgz", + "integrity": "sha512-LRvZt/9bZFYW7seAwuSg2hZuPl+FRTAsij5HtyvVwmpfVxipm6yQrKjQ+LiK/SZhIDVsSJ+UjF0mluJj+jeAzQ==", + "requires": { + "@libp2p/interface-peer-id": "^2.0.0", + "@multiformats/multiaddr": "^11.0.0" + } + }, + "@libp2p/interface-pubsub": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-3.0.6.tgz", + "integrity": "sha512-c1aVHAhxmEh9IpLBgJyCsMscVDl7YUeP1Iq6ILEQoWiPJhNpQqdfmqyk7ZfrzuBU19VFe1EqH0bLuLDbtfysTQ==", + "requires": { + "@libp2p/interface-connection": "^3.0.0", + "@libp2p/interface-peer-id": "^2.0.0", + "@libp2p/interfaces": "^3.0.0", + "it-pushable": "^3.0.0", + "uint8arraylist": "^2.1.2" + } + }, + "@libp2p/interfaces": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@libp2p/interfaces/-/interfaces-3.3.1.tgz", + "integrity": "sha512-3N+goQt74SmaVOjwpwMPKLNgh1uDQGw8GD12c40Kc86WOq0qvpm3NfACW+H8Su2X6KmWjCSMzk9JWs9+8FtUfg==" + }, + "@libp2p/logger": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-2.0.5.tgz", + "integrity": "sha512-WEhxsc7+gsfuTcljI4vSgW/H2f18aBaC+JiO01FcX841Wxe9szjzHdBLDh9eqygUlzoK0LEeIBfctN7ibzus5A==", + "requires": { + "@libp2p/interface-peer-id": "^2.0.0", + "debug": "^4.3.3", + "interface-datastore": "^7.0.0", + "multiformats": "^11.0.0" + }, + "dependencies": { + "multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==" + } + } + }, + "@libp2p/peer-id": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-2.0.1.tgz", + "integrity": "sha512-uGIR4rS+j+IzzIu0kih4MonZEfRmjGNfXaSPMIFOeMxZItZT6TIpxoVNYxHl4YtneSFKzlLnf9yx9EhRcyfy8Q==", + "requires": { + "@libp2p/interface-peer-id": "^2.0.0", + "@libp2p/interfaces": "^3.2.0", + "multiformats": "^11.0.0", + "uint8arrays": "^4.0.2" + }, + "dependencies": { + "multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==" + }, + "uint8arrays": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.3.tgz", + "integrity": "sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg==", + "requires": { + "multiformats": "^11.0.0" + } + } + } + }, "@metamask/eth-sig-util": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", @@ -33463,6 +35750,42 @@ "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" }, + "@multiformats/multiaddr": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-11.4.0.tgz", + "integrity": "sha512-rLIhSOCKQhm/fCjg+5tVM9xrtjbZjZKJg6bb65YbFsNoPSYhweEohXO8Pkg2xbRy3NqVEVkS+8DB/+VhNvjd5Q==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "dns-over-http-resolver": "^2.1.0", + "err-code": "^3.0.1", + "multiformats": "^11.0.0", + "uint8arrays": "^4.0.2", + "varint": "^6.0.0" + }, + "dependencies": { + "multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==" + }, + "uint8arrays": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.3.tgz", + "integrity": "sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg==", + "requires": { + "multiformats": "^11.0.0" + } + } + } + }, + "@multiformats/multiaddr-to-uri": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-9.0.2.tgz", + "integrity": "sha512-vrWmfFadmix5Ab9l//oRQdQ7O3J5bGJpJRMSm21bHlQB0XV4xtNU6vMZBVXeu3Su79LgflEp37cjTFE3yKf3Hw==", + "requires": { + "@multiformats/multiaddr": "^11.0.0" + } + }, "@noble/ed25519": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", @@ -33656,23 +35979,22 @@ } }, "@nomicfoundation/hardhat-chai-matchers": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.5.tgz", - "integrity": "sha512-+W5C/+5FHI2xBajUN9THSNc1UP6FUsA7LeLmfnaC9VMi/50/DEjjxd8OmizEXgV1Bjck7my4NVQLL1Ti39FkpA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.6.tgz", + "integrity": "sha512-f5ZMNmabZeZegEfuxn/0kW+mm7+yV7VNDxLpMOMGXWFJ2l/Ct3QShujzDRF9cOkK9Ui/hbDeOWGZqyQALDXVCQ==", "peer": true, "requires": { "@ethersproject/abi": "^5.1.2", "@types/chai-as-promised": "^7.1.3", "chai-as-promised": "^7.1.1", - "chalk": "^2.4.2", "deep-eql": "^4.0.1", "ordinal": "^1.0.3" } }, "@nomicfoundation/hardhat-network-helpers": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.7.tgz", - "integrity": "sha512-X+3mNvn8B7BY5hpIaLO+TrfzWq12bpux+ajGGdmdcfC78NXmYmOZkAtiz1QZx1YIZGMS1LaXzPXyBExxKFpCaw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.8.tgz", + "integrity": "sha512-MNqQbzUJZnCMIYvlniC3U+kcavz/PhhQSsY90tbEtUyMj/IQqsLwIRZa4ctjABh3Bz0KCh9OXUZ7Yk/d9hr45Q==", "peer": true, "requires": { "ethereumjs-util": "^7.1.4" @@ -33780,9 +36102,9 @@ "requires": {} }, "@nomiclabs/hardhat-etherscan": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.5.tgz", - "integrity": "sha512-PxPX28AGBAlxgXLU27NB3oiMsklxbNhM75SDC4v1QPCyPeAxGm4xV0WpYbR10W7sxY2WF3Ek7u7GhjbQWa2Fcg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.6.tgz", + "integrity": "sha512-5WFIZeLLgWPiCJqm/4ie7UNXn7FXfzYmqnKwOKU2MLETGolzY1cueSYUTww/P8f+Zc9xfJLmzqSYcGLW/3j/IQ==", "peer": true, "requires": { "@ethersproject/abi": "^5.1.2", @@ -34168,9 +36490,9 @@ } }, "@oclif/core": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@oclif/core/-/core-2.0.9.tgz", - "integrity": "sha512-SLwSQa1No4br0D9cLY8lleXvcs3K/YpSQdo0md6z8AHx3P+l0/fv9dtIlYYD8MqsRUcNPxshJ3ZkN2sNNM5VjQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@oclif/core/-/core-2.1.2.tgz", + "integrity": "sha512-l7Kx+80zuDgi9o4gZe39XQeYvQuj6Hf+B31kXSUSntgXpfLdDbpFSZH/GP7tsldzG4icrpmSwnLDOz8MNB40Hg==", "requires": { "@types/cli-progress": "^3.11.0", "ansi-escapes": "^4.3.2", @@ -34178,7 +36500,7 @@ "cardinal": "^2.1.1", "chalk": "^4.1.2", "clean-stack": "^3.0.1", - "cli-progress": "^3.10.0", + "cli-progress": "^3.11.2", "debug": "^4.3.4", "ejs": "^3.1.6", "fs-extra": "^9.1.0", @@ -34196,7 +36518,7 @@ "strip-ansi": "^6.0.1", "supports-color": "^8.1.1", "supports-hyperlinks": "^2.2.0", - "tslib": "^2.4.1", + "tslib": "^2.5.0", "widest-line": "^3.1.0", "wordwrap": "^1.0.0", "wrap-ansi": "^7.0.0" @@ -34296,11 +36618,11 @@ } }, "@oclif/plugin-autocomplete": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-1.4.5.tgz", - "integrity": "sha512-qc8BVlOsfUjGDhzHQNYRRWjqJFOyaAPTZK0GqVcrpyeFt3MyXpC0Du8g0tKex/xo+JgaYLAAiN1ZnWWcm4r0Gw==", + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-1.4.6.tgz", + "integrity": "sha512-dawJk8Eb5dxsHTEttKZIOJkJ9PPKB59hL8BrqdCkr+WB4Xerm3G6rNeGWErOVYcOLe8y+nWAeYUE8OHNPn2E9g==", "requires": { - "@oclif/core": "^2.0.7", + "@oclif/core": "^2.1.2", "chalk": "^4.1.0", "debug": "^4.3.4", "fs-extra": "^9.0.1" @@ -34345,23 +36667,23 @@ } }, "@oclif/plugin-not-found": { - "version": "2.3.18", - "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-2.3.18.tgz", - "integrity": "sha512-yUXgdPwjE/JIuWZ23Ge6G5gM+qiw7Baq/26oBq3eusIP6hZuHYeCpwQ96Zy5aHcjm2NSZcMjkZG1jARyr9BzkQ==", + "version": "2.3.20", + "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-2.3.20.tgz", + "integrity": "sha512-U93rjsL5Z2AWUtURx6R83tNottH6jAsUIGFBu+ZdM4p3bPOPCg9Kmofca6xudiV7ppWxbG5EejZOUGYcdKa/SA==", "requires": { - "@oclif/color": "^1.0.3", - "@oclif/core": "^2.0.3", + "@oclif/color": "^1.0.4", + "@oclif/core": "^2.1.2", "fast-levenshtein": "^3.0.0", "lodash": "^4.17.21" } }, "@oclif/plugin-warn-if-update-available": { - "version": "2.0.26", - "resolved": "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-2.0.26.tgz", - "integrity": "sha512-eMwDOzxPdN1X0y5G0W/GJXFRUvevT6gOrbbRLPoboTUwcFRqhFOJ7jCqGUTomeDfMRgAb3O+3bcD64lIb/y+FA==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-2.0.27.tgz", + "integrity": "sha512-be6dnM3bhf7r6Jy1rzPjOt5qV5MZtqda4p1krbH9a5Ww6jAsYh6CIeKbIP2zPUFthoejG9wt7UFQt3J110DdMQ==", "dev": true, "requires": { - "@oclif/core": "^2.0.8", + "@oclif/core": "^2.1.2", "chalk": "^4.1.0", "debug": "^4.1.0", "fs-extra": "^9.0.1", @@ -34517,39 +36839,6 @@ "is-plain-object": "^5.0.0", "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } } }, "@octokit/request-error": { @@ -35019,81 +37308,81 @@ } }, "@swc/core": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.32.tgz", - "integrity": "sha512-Yx/n1j+uUkcqlJAW8IRg8Qymgkdow6NHJZPFShiR0YiaYq2sXY+JHmvh16O6GkL91Y+gTlDUS7uVgDz50czJUQ==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.35.tgz", + "integrity": "sha512-KmiBin0XSVzJhzX19zTiCqmLslZ40Cl7zqskJcTDeIrRhfgKdiAsxzYUanJgMJIRjYtl9Kcg1V/Ip2o2wL8v3w==", "devOptional": true, "requires": { - "@swc/core-darwin-arm64": "1.3.32", - "@swc/core-darwin-x64": "1.3.32", - "@swc/core-linux-arm-gnueabihf": "1.3.32", - "@swc/core-linux-arm64-gnu": "1.3.32", - "@swc/core-linux-arm64-musl": "1.3.32", - "@swc/core-linux-x64-gnu": "1.3.32", - "@swc/core-linux-x64-musl": "1.3.32", - "@swc/core-win32-arm64-msvc": "1.3.32", - "@swc/core-win32-ia32-msvc": "1.3.32", - "@swc/core-win32-x64-msvc": "1.3.32" + "@swc/core-darwin-arm64": "1.3.35", + "@swc/core-darwin-x64": "1.3.35", + "@swc/core-linux-arm-gnueabihf": "1.3.35", + "@swc/core-linux-arm64-gnu": "1.3.35", + "@swc/core-linux-arm64-musl": "1.3.35", + "@swc/core-linux-x64-gnu": "1.3.35", + "@swc/core-linux-x64-musl": "1.3.35", + "@swc/core-win32-arm64-msvc": "1.3.35", + "@swc/core-win32-ia32-msvc": "1.3.35", + "@swc/core-win32-x64-msvc": "1.3.35" } }, "@swc/core-darwin-arm64": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.32.tgz", - "integrity": "sha512-o19bhlxuUgjUElm6i+QhXgZ0vD6BebiB/gQpK3en5aAwhOvinwr4sah3GqFXsQzz/prKVDuMkj9SW6F/Ug5hgg==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.35.tgz", + "integrity": "sha512-zQUFkHx4gZpu0uo2IspvPnKsz8bsdXd5bC33xwjtoAI1cpLerDyqo4v2zIahEp+FdKZjyVsLHtfJiQiA1Qka3A==", "optional": true }, "@swc/core-darwin-x64": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.32.tgz", - "integrity": "sha512-hVEGd+v5Afh+YekGADOGKwhuS4/AXk91nLuk7pmhWkk8ceQ1cfmah90kXjIXUlCe2G172MLRfHNWlZxr29E/Og==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.35.tgz", + "integrity": "sha512-oOSkSGWtALovaw22lNevKD434OQTPf8X+dVPvPMrJXJpJ34dWDlFWpLntoc+arvKLNZ7LQmTuk8rR1hkrAY7cw==", "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.32.tgz", - "integrity": "sha512-5X01WqI9EbJ69oHAOGlI08YqvEIXMfT/mCJ1UWDQBb21xWRE2W1yFAAeuqOLtiagLrXjPv/UKQ0S2gyWQR5AXQ==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.35.tgz", + "integrity": "sha512-Yie8k00O6O8BCATS/xeKStquV4OYSskUGRDXBQVDw1FrE23PHaSeHCgg4q6iNZjJzXCOJbaTCKnYoIDn9DMf7A==", "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.32.tgz", - "integrity": "sha512-PTJ6oPiutkNBg+m22bUUPa4tNuMmsgpSnsnv2wnWVOgK0lhvQT6bAPTUXDq/8peVAgR/SlpP2Ht8TRRqYMRjRQ==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.35.tgz", + "integrity": "sha512-Zlv3WHa/4x2p51HSvjUWXHfSe1Gl2prqImUZJc8NZOlj75BFzVuR0auhQ+LbwvIQ3gaA1LODX9lyS9wXL3yjxA==", "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.32.tgz", - "integrity": "sha512-lG0VOuYNPWOCJ99Aza69cTljjeft/wuRQeYFF8d+1xCQS/OT7gnbgi7BOz39uSHIPTBqfzdIsuvzdKlp9QydrQ==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.35.tgz", + "integrity": "sha512-u6tCYsrSyZ8U+4jLMA/O82veBfLy2aUpn51WxQaeH7wqZGy9TGSJXoO8vWxARQ6b72vjsnKDJHP4MD8hFwcctg==", "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.32.tgz", - "integrity": "sha512-ecqtSWX4NBrs7Ji2VX3fDWeqUfrbLlYqBuufAziCM27xMxwlAVgmyGQk4FYgoQ3SAUAu3XFH87+3Q7uWm2X7xg==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.35.tgz", + "integrity": "sha512-Dtxf2IbeH7XlNhP1Qt2/MvUPkpEbn7hhGfpSRs4ot8D3Vf5QEX4S/QtC1OsFWuciiYgHAT1Ybjt4xZic9DSkmA==", "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.32.tgz", - "integrity": "sha512-rl3dMcUuENVkpk5NGW/LXovjK0+JFm4GWPjy4NM3Q5cPvhBpGwSeLZlR+zAw9K0fdGoIXiayRTTfENrQwwsH+g==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.35.tgz", + "integrity": "sha512-4XavNJ60GprjpTiESCu5daJUnmErixPAqDitJSMu4TV32LNIE8G00S9pDLXinDTW1rgcGtQdq1NLkNRmwwovtg==", "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.32.tgz", - "integrity": "sha512-VlybAZp8DcS66CH1LDnfp9zdwbPlnGXREtHDMHaBfK9+80AWVTg+zn0tCYz+HfcrRONqxbudwOUIPj+dwl/8jw==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.35.tgz", + "integrity": "sha512-dNGfKCUSX2M4qVyaS80Lyos0FkXyHRCvrdQ2Y4Hrg3FVokiuw3yY6fLohpUfQ5ws3n2A39dh7jGDeh34+l0sGA==", "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.32.tgz", - "integrity": "sha512-MEUMdpUFIQ+RD+K/iHhHKfu0TFNj9VXwIxT5hmPeqyboKo095CoFEFBJ0sHG04IGlnu8T9i+uE2Pi18qUEbFug==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.35.tgz", + "integrity": "sha512-ChuPSrDR+JBf7S7dEKPicnG8A3bM0uWPsW2vG+V2wH4iNfNxKVemESHosmYVeEZXqMpomNMvLyeHep1rjRsc0Q==", "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.3.32", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.32.tgz", - "integrity": "sha512-DPMoneNFQco7SqmVVOUv1Vn53YmoImEfrAPMY9KrqQzgfzqNTuL2JvfxUqfAxwQ6pEKYAdyKJvZ483rIhgG9XQ==", + "version": "1.3.35", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.35.tgz", + "integrity": "sha512-/RvphT4WfuGfIK84Ha0dovdPrKB1bW/mc+dtdmhv2E3EGkNc5FoueNwYmXWRimxnU7X0X7IkcRhyKB4G5DeAmg==", "optional": true }, "@szmarczak/http-timer": { @@ -36819,6 +39108,12 @@ "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", "peer": true }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, "any-signal": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.1.tgz", @@ -36833,6 +39128,12 @@ "picomatch": "^2.0.4" } }, + "app-module-path": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", + "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==", + "dev": true + }, "aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", @@ -36985,6 +39286,12 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "peer": true }, + "ast-module-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-3.0.0.tgz", + "integrity": "sha512-CMxMCOCS+4D+DkOQfuZf+vLrSEmY/7xtORwdxs4wtcC1wVgvk2MqFFTwQCFhvWsI4KPU9lcWXPI8DgRiz+xetQ==", + "dev": true + }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -37042,9 +39349,9 @@ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" }, "aws-sdk": { - "version": "2.1310.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1310.0.tgz", - "integrity": "sha512-D0m9uFUa1UVXWTe4GSyNJP4+6DXwboE2FEG/URkLoo4r9Q8LHxwNFCGkBhaoEwssREyRe2LOYS1Nag/6WyvC6Q==", + "version": "2.1313.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1313.0.tgz", + "integrity": "sha512-8GMdtV2Uch3HL2c6+P3lNZFTcg/fqq9L3EWYRLb6ljCZvWKTssjdkjSJFDyTReNgeiKV224YRPYQbKpOEz4flQ==", "dev": true, "requires": { "buffer": "4.9.2", @@ -37375,6 +39682,14 @@ "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" }, + "blob-to-it": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-2.0.0.tgz", + "integrity": "sha512-O9P902MzxHg8fjIAzmK4HSo9WmcMn1ACJvSHJvIYWDr4na7GLyR5iQTf0i2EXlnM5EIWmWtk+vh38tTph9JiPA==", + "requires": { + "browser-readablestream-to-it": "^2.0.0" + } + }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -37464,9 +39779,9 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" }, "browser-readablestream-to-it": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz", - "integrity": "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-2.0.0.tgz", + "integrity": "sha512-x7L6NN0FF0LchYKA7D5x2/oJ+n6Y8A0gFaazIxH2AkHr+fjFJvsDUYLLQKAfIkpKiLjQEkbjF0DBw7HRT1ylNA==" }, "browser-stdout": { "version": "1.3.1", @@ -37676,7 +39991,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "peer": true, "requires": { "streamsearch": "^1.1.0" } @@ -37776,9 +40090,9 @@ }, "dependencies": { "minipass": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.2.tgz", - "integrity": "sha512-4Hbzei7ZyBp+1aw0874YWpKOubZd/jc53/XU+gkYry1QV+VvrbO8icLM5CUtm4F0hyXn85DXYKEMIS26gitD3A==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.3.tgz", + "integrity": "sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw==", "dev": true } } @@ -37840,9 +40154,9 @@ "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==" }, "caniuse-lite": { - "version": "1.0.30001450", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz", - "integrity": "sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==" + "version": "1.0.30001451", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001451.tgz", + "integrity": "sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==" }, "cardinal": { "version": "2.1.1", @@ -37873,6 +40187,11 @@ "nofilter": "^3.1.0" } }, + "cborg": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.0.tgz", + "integrity": "sha512-/eM0JCaL99HDHxjySNQJLaolZFVdl6VA0/hEKIoiQPcQzE5LrG5QHdml0HaBt31brgB9dNe1zMr3f8IVrpotRQ==" + }, "ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", @@ -38749,35 +41068,6 @@ "requires": { "node-fetch": "^2.6.7", "whatwg-fetch": "^2.0.4" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } } }, "cross-spawn": { @@ -38853,6 +41143,22 @@ "type": "^1.0.1" } }, + "dag-jose": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/dag-jose/-/dag-jose-4.0.0.tgz", + "integrity": "sha512-tw595L3UYoOUT9dSJPbBEG/qpRpw24kRZxa5SLRnlnr+g5L7O8oEs1d3W5TiVA1oJZbthVsf0Vi3zFN66qcEBA==", + "requires": { + "@ipld/dag-cbor": "^9.0.0", + "multiformats": "^11.0.0" + }, + "dependencies": { + "multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==" + } + } + }, "dargs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", @@ -38881,6 +41187,34 @@ "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", "whatwg-url": "^8.0.0" + }, + "dependencies": { + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "peer": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "peer": true + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "peer": true, + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + } } }, "datastore-core": { @@ -38899,6 +41233,41 @@ "it-pushable": "^1.4.2", "it-take": "^1.0.1", "uint8arrays": "^3.0.0" + }, + "dependencies": { + "interface-datastore": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.1.tgz", + "integrity": "sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg==", + "requires": { + "interface-store": "^2.0.2", + "nanoid": "^3.0.2", + "uint8arrays": "^3.0.0" + } + }, + "interface-store": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", + "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" + }, + "it-map": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", + "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" + }, + "it-pushable": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", + "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", + "requires": { + "fast-fifo": "^1.0.0" + } + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + } } }, "date-fns": { @@ -39162,9 +41531,9 @@ } }, "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", "requires": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -39186,6 +41555,65 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, + "dependency-tree": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/dependency-tree/-/dependency-tree-9.0.0.tgz", + "integrity": "sha512-osYHZJ1fBSon3lNLw70amAXsQ+RGzXsPvk9HbBgTLbp/bQBmpH5mOmsUvqXU+YEWVU0ZLewsmzOET/8jWswjDQ==", + "dev": true, + "requires": { + "commander": "^2.20.3", + "debug": "^4.3.1", + "filing-cabinet": "^3.0.1", + "precinct": "^9.0.0", + "typescript": "^4.0.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "module-definition": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-4.0.0.tgz", + "integrity": "sha512-wntiAHV4lDn24BQn2kX6LKq0y85phHLHiv3aOPDF+lIs06kVjEMTe/ZTdrbVLnQV5FQsjik21taknvMhKY1Cug==", + "dev": true, + "requires": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^5.0.0" + } + }, + "precinct": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-9.0.1.tgz", + "integrity": "sha512-hVNS6JvfvlZ64B3ezKeGAcVhIuOvuAiSVzagHX/+KjVPkYWoCNkfyMgCl1bjDtAFQSlzi95NcS9ykUWrl1L1vA==", + "dev": true, + "requires": { + "commander": "^9.1.0", + "detective-amd": "^4.0.1", + "detective-cjs": "^4.0.0", + "detective-es6": "^3.0.0", + "detective-less": "^1.0.2", + "detective-postcss": "^6.0.1", + "detective-sass": "^4.0.1", + "detective-scss": "^3.0.0", + "detective-stylus": "^2.0.0", + "detective-typescript": "^9.0.0", + "module-definition": "^4.0.0", + "node-source-walk": "^5.0.0" + }, + "dependencies": { + "commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true + } + } + } + } + }, "deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", @@ -39233,6 +41661,174 @@ "debug": "4" } }, + "detective-amd": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-4.0.1.tgz", + "integrity": "sha512-bDo22IYbJ8yzALB0Ow5CQLtyhU1BpDksLB9dsWHI9Eh0N3OQR6aQqhjPsNDd69ncYwRfL1sTo7OA9T3VRVSe2Q==", + "dev": true, + "requires": { + "ast-module-types": "^3.0.0", + "escodegen": "^2.0.0", + "get-amd-module-type": "^4.0.0", + "node-source-walk": "^5.0.0" + }, + "dependencies": { + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "detective-cjs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-4.0.0.tgz", + "integrity": "sha512-VsD6Yo1+1xgxJWoeDRyut7eqZ8EWaJI70C5eanSAPcBHzenHZx0uhjxaaEfIm0cHII7dBiwU98Orh44bwXN2jg==", + "dev": true, + "requires": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^5.0.0" + } + }, + "detective-es6": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-3.0.0.tgz", + "integrity": "sha512-Uv2b5Uih7vorYlqGzCX+nTPUb4CMzUAn3VPHTV5p5lBkAN4cAApLGgUz4mZE2sXlBfv4/LMmeP7qzxHV/ZcfWA==", + "dev": true, + "requires": { + "node-source-walk": "^5.0.0" + } + }, + "detective-less": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/detective-less/-/detective-less-1.0.2.tgz", + "integrity": "sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA==", + "dev": true, + "requires": { + "debug": "^4.0.0", + "gonzales-pe": "^4.2.3", + "node-source-walk": "^4.0.0" + }, + "dependencies": { + "node-source-walk": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.3.0.tgz", + "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", + "dev": true, + "requires": { + "@babel/parser": "^7.0.0" + } + } + } + }, + "detective-postcss": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-6.1.0.tgz", + "integrity": "sha512-ZFZnEmUrL2XHAC0j/4D1fdwZbo/anAcK84soJh7qc7xfx2Kc8gFO5Bk5I9jU7NLC/OAF1Yho1GLxEDnmQnRH2A==", + "dev": true, + "requires": { + "is-url": "^1.2.4", + "postcss": "^8.4.12", + "postcss-values-parser": "^6.0.2" + } + }, + "detective-sass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-4.0.1.tgz", + "integrity": "sha512-80zfpxux1krOrkxCHbtwvIs2gNHUBScnSqlGl0FvUuHVz8HD6vD2ov66OroMctyvzhM67fxhuEeVjIk18s6yTQ==", + "dev": true, + "requires": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^5.0.0" + } + }, + "detective-scss": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-3.0.0.tgz", + "integrity": "sha512-37MB/mhJyS45ngqfzd6eTbuLMoDgdZnH03ZOMW2m9WqJ/Rlbuc8kZAr0Ypovaf1DJiTRzy5mmxzOTja85jbzlA==", + "dev": true, + "requires": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^5.0.0" + } + }, + "detective-stylus": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-2.0.1.tgz", + "integrity": "sha512-/Tvs1pWLg8eYwwV6kZQY5IslGaYqc/GACxjcaGudiNtN5nKCH6o2WnJK3j0gA3huCnoQcbv8X7oz/c1lnvE3zQ==", + "dev": true + }, + "detective-typescript": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-9.0.0.tgz", + "integrity": "sha512-lR78AugfUSBojwlSRZBeEqQ1l8LI7rbxOl1qTUnGLcjZQDjZmrZCb7R46rK8U8B5WzFvJrxa7fEBA8FoD/n5fA==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "^5.13.0", + "ast-module-types": "^3.0.0", + "node-source-walk": "^5.0.0", + "typescript": "^4.5.5" + } + }, "dezalgo": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", @@ -39287,13 +41883,14 @@ } }, "dns-over-http-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", - "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-2.1.1.tgz", + "integrity": "sha512-Lm/eXB7yAQLJ5WxlBGwYfBY7utduXPZykcSmcG6K7ozM0wrZFvxZavhT6PqI0kd/5CUTfev/RrEFQqyU4CGPew==", "requires": { "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" + "native-fetch": "^4.0.2", + "receptacle": "^1.3.2", + "undici": "^5.12.0" } }, "doctrine": { @@ -39381,9 +41978,9 @@ } }, "electron-to-chromium": { - "version": "1.4.288", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.288.tgz", - "integrity": "sha512-8s9aJf3YiokIrR+HOQzNOGmEHFXVUQzXM/JaViVvKdCkNUjS+lEa/uT7xw3nDVG/IgfxiIwUGkwJ6AR1pTpYsQ==" + "version": "1.4.295", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.295.tgz", + "integrity": "sha512-lEO94zqf1bDA3aepxwnWoHUjA8sZ+2owgcSZjYQy0+uOSEclJX0VieZC+r+wLpSxUHRd6gG32znTWmr+5iGzFw==" }, "elliptic": { "version": "6.5.4", @@ -39448,6 +42045,16 @@ "once": "^1.4.0" } }, + "enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, "enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", @@ -39707,9 +42314,9 @@ } }, "eslint": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", - "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz", + "integrity": "sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==", "dev": true, "requires": { "@eslint/eslintrc": "^1.4.1", @@ -40761,33 +43368,6 @@ "eth-rpc-errors": "^3.0.0", "safe-event-emitter": "^1.0.1" } - }, - "node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } } } }, @@ -40842,37 +43422,10 @@ "safe-event-emitter": "^1.0.1" } }, - "node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==" - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } } } }, @@ -41586,15 +44139,6 @@ "xxhashjs": "0.2.2" } }, - "fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "requires": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - } - }, "figures": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", @@ -41671,6 +44215,41 @@ "trim-repeated": "^2.0.0" } }, + "filing-cabinet": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-3.3.0.tgz", + "integrity": "sha512-Tnbpbme1ONaHXV5DGcw0OFpcfP3p2itRf5VXO1bguBXdIewDbK6ZFBK//DGKM0BuCzaQLQNY4f5gljzxY1VCUw==", + "dev": true, + "requires": { + "app-module-path": "^2.2.0", + "commander": "^2.20.3", + "debug": "^4.3.3", + "enhanced-resolve": "^5.8.3", + "is-relative-path": "^1.0.2", + "module-definition": "^3.3.1", + "module-lookup-amd": "^7.0.1", + "resolve": "^1.21.0", + "resolve-dependency-path": "^2.0.0", + "sass-lookup": "^3.0.0", + "stylus-lookup": "^3.0.1", + "tsconfig-paths": "^3.10.1", + "typescript": "^3.9.7" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true + } + } + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -41814,6 +44393,12 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", + "dev": true + }, "follow-redirects": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", @@ -41848,14 +44433,6 @@ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" }, - "formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "requires": { - "fetch-blob": "^3.1.2" - } - }, "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -41966,6 +44543,16 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" }, + "get-amd-module-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-4.0.0.tgz", + "integrity": "sha512-GbBawUCuA2tY8ztiMiVo3e3P95gc2TVrfYFfpUHdHQA8WyxMCckK29bQsVKhYX8SUf+w6JLhL2LG8tSC0ANt9Q==", + "dev": true, + "requires": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^5.0.0" + } + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -41992,6 +44579,12 @@ "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -42159,6 +44752,15 @@ "slash": "^4.0.0" } }, + "gonzales-pe": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", + "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, "gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -42254,9 +44856,9 @@ } }, "hardhat": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.12.6.tgz", - "integrity": "sha512-0Ent1O5DsPgvaVb5sxEgsQ3bJRt/Ex92tsoO+xjoNH2Qc4bFmhI5/CHVlFikulalxOPjNmw5XQ2vJFuVQFESAA==", + "version": "2.12.7", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.12.7.tgz", + "integrity": "sha512-voWoN6zn5d8BOEaczSyK/1PyfdeOeI3SbGCFb36yCHTJUt6OIqLb+ZDX30VhA1UsYKzLqG7UnWl3fKJUuANc6A==", "peer": true, "requires": { "@ethersproject/abi": "^5.1.2", @@ -42800,6 +45402,12 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", + "dev": true + }, "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", @@ -42823,8 +45431,7 @@ "ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "peer": true + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "inquirer": { "version": "9.1.4", @@ -42895,9 +45502,9 @@ } }, "type-fest": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.5.6.tgz", - "integrity": "sha512-6bd2bflx8ed7c99tc6zSTIzHr1/QG29bQoK4Qh8MYGnlPbODUzGxklLShjwc/xWQQFHgIci+y5Arv7Rbb0LjXw==" + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.5.7.tgz", + "integrity": "sha512-6J4bYzb4sdkcLBty4XW7F18VPI66M4boXNE+CY40532oq2OJe6AVMB5NmjOp6skt/jw5mRjz/hLRpuglz0U+FA==" }, "wrap-ansi": { "version": "8.1.0", @@ -42912,26 +45519,41 @@ } }, "interface-datastore": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.1.tgz", - "integrity": "sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-7.0.4.tgz", + "integrity": "sha512-Q8LZS/jfFFHz6XyZazLTAc078SSCoa27ZPBOfobWdpDiFO7FqPA2yskitUJIhaCgxNK8C+/lMBUTBNfVIDvLiw==", "requires": { - "interface-store": "^2.0.2", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" + "interface-store": "^3.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + }, + "dependencies": { + "multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==" + }, + "uint8arrays": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.3.tgz", + "integrity": "sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg==", + "requires": { + "multiformats": "^11.0.0" + } + } } }, "interface-store": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", - "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-3.0.4.tgz", + "integrity": "sha512-OjHUuGXbH4eXSBx1TF1tTySvjLldPLzRSYYXJwrEQI+XfH5JWYZofr0gVMV4F8XTwC+4V7jomDYkvGRmDSRKqQ==" }, "internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "requires": { - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" } @@ -42975,6 +45597,153 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" }, + "ipfs-core-types": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.14.0.tgz", + "integrity": "sha512-qO1xVO3n5m7scTXXtMz8hDTLdwXInnwqadIDQpXC446BIlaYyRWUvLcFQ2bOjQql9/CPNTaPHzjzr5Y1XxqpJw==", + "requires": { + "@ipld/dag-pb": "^4.0.0", + "@libp2p/interface-keychain": "^2.0.0", + "@libp2p/interface-peer-id": "^2.0.0", + "@libp2p/interface-peer-info": "^1.0.2", + "@libp2p/interface-pubsub": "^3.0.0", + "@multiformats/multiaddr": "^11.0.0", + "@types/node": "^18.0.0", + "interface-datastore": "^7.0.0", + "ipfs-unixfs": "^9.0.0", + "multiformats": "^11.0.0" + }, + "dependencies": { + "multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==" + } + } + }, + "ipfs-core-utils": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.18.0.tgz", + "integrity": "sha512-7N/KfsOPGJu9mwN8EQwrW9HXgS5RNM3WUyjIMWk49KlpYmsXectXuC9i6npI1vn1W/oUaIOZt3lHx37jecnepw==", + "requires": { + "@libp2p/logger": "^2.0.0", + "@multiformats/multiaddr": "^11.0.0", + "@multiformats/multiaddr-to-uri": "^9.0.1", + "any-signal": "^3.0.0", + "blob-to-it": "^2.0.0", + "browser-readablestream-to-it": "^2.0.0", + "err-code": "^3.0.1", + "ipfs-core-types": "^0.14.0", + "ipfs-unixfs": "^9.0.0", + "ipfs-utils": "^9.0.13", + "it-all": "^2.0.0", + "it-map": "^2.0.0", + "it-peekable": "^2.0.0", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "multiformats": "^11.0.0", + "nanoid": "^4.0.0", + "parse-duration": "^1.0.0", + "timeout-abort-controller": "^3.0.0", + "uint8arrays": "^4.0.2" + }, + "dependencies": { + "it-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-2.0.0.tgz", + "integrity": "sha512-I/yi9ogTY59lFxtfsDSlI9w9QZtC/5KJt6g7CPPBJJh2xql2ZS7Ghcp9hoqDDbc4QfwQvtx8Loy0zlKQ8H5gFg==" + }, + "multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==" + }, + "uint8arrays": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.3.tgz", + "integrity": "sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg==", + "requires": { + "multiformats": "^11.0.0" + } + } + } + }, + "ipfs-http-client": { + "version": "60.0.0", + "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-60.0.0.tgz", + "integrity": "sha512-d6Rqc1UP5nWhp7j0PumK80CA5LvbTvskro+qGw7hgWvbfQ0rX/5ddig7ELvVYJbJM4YBxCJSaSHDEOGoSpzzKg==", + "requires": { + "@ipld/dag-cbor": "^9.0.0", + "@ipld/dag-json": "^10.0.0", + "@ipld/dag-pb": "^4.0.0", + "@libp2p/logger": "^2.0.0", + "@libp2p/peer-id": "^2.0.0", + "@multiformats/multiaddr": "^11.0.0", + "any-signal": "^3.0.0", + "dag-jose": "^4.0.0", + "err-code": "^3.0.1", + "ipfs-core-types": "^0.14.0", + "ipfs-core-utils": "^0.18.0", + "ipfs-utils": "^9.0.13", + "it-first": "^2.0.0", + "it-last": "^2.0.0", + "merge-options": "^3.0.4", + "multiformats": "^11.0.0", + "parse-duration": "^1.0.0", + "stream-to-it": "^0.2.2", + "uint8arrays": "^4.0.2" + }, + "dependencies": { + "multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==" + }, + "uint8arrays": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.3.tgz", + "integrity": "sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg==", + "requires": { + "multiformats": "^11.0.0" + } + } + } + }, + "ipfs-unixfs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-9.0.1.tgz", + "integrity": "sha512-jh2CbXyxID+v3jLml9CqMwjdSS9ZRnsGfQGGPOfem0/hT/L48xUeTPvh7qLFWkZcIMhZtG+fnS1teei8x5uGBg==", + "requires": { + "err-code": "^3.0.1", + "protobufjs": "^7.0.0" + }, + "dependencies": { + "long": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", + "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" + }, + "protobufjs": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.2.tgz", + "integrity": "sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } + } + } + }, "ipfs-utils": { "version": "9.0.14", "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.14.tgz", @@ -42998,32 +45767,21 @@ "stream-to-it": "^0.2.2" }, "dependencies": { - "node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "browser-readablestream-to-it": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz", + "integrity": "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==" }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } + "native-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "requires": {} } } }, @@ -43206,6 +45964,12 @@ "has-tostringtag": "^1.0.0" } }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true + }, "is-observable": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-2.1.0.tgz", @@ -43243,6 +46007,18 @@ "has-tostringtag": "^1.0.0" } }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "dev": true + }, + "is-relative-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-relative-path/-/is-relative-path-1.0.2.tgz", + "integrity": "sha512-i1h+y50g+0hRbBD+dbnInl3JlJ702aar58snAeX+MxBAPvzXGej7sYoPMhlnykabt0ZzCJNBEyzMlekuQZN7fA==", + "dev": true + }, "is-retry-allowed": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", @@ -43309,6 +46085,18 @@ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==" }, + "is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true + }, + "is-url-superb": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", + "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", + "dev": true + }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -43455,9 +46243,9 @@ "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" }, "it-first": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", - "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-2.0.0.tgz", + "integrity": "sha512-fzZGzVf01exFyIZXNjkpSMFr1eW2+J1K0v018tYY26Dd4f/O3pWlBTdrOBfSQRZwtI8Pst6c7eKhYczWvFs6tA==" }, "it-foreach": { "version": "0.1.1", @@ -43481,8 +46269,23 @@ "it-pushable": "^1.4.0", "it-reader": "^3.0.0", "p-defer": "^3.0.0" + }, + "dependencies": { + "it-pushable": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", + "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", + "requires": { + "fast-fifo": "^1.0.0" + } + } } }, + "it-last": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-last/-/it-last-2.0.0.tgz", + "integrity": "sha512-u0GHZ01tWYtPvDkOaqZSLLWjFv3IJw9cPL9mbEV7wnE8DOsbVoXIuKpnz3U6pySl5RzPVjTzSHOc961ZYttBxg==" + }, "it-length-prefixed": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", @@ -43494,9 +46297,9 @@ } }, "it-map": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", - "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-2.0.0.tgz", + "integrity": "sha512-mLgtk/NZaN7NZ06iLrMXCA6jjhtZO0vZT5Ocsp31H+nsGI18RSPVmUbFyA1sWx7q+g92J22Sixya7T2QSSAwfA==" }, "it-merge": { "version": "1.0.4", @@ -43504,6 +46307,16 @@ "integrity": "sha512-DcL6GksTD2HQ7+5/q3JznXaLNfwjyG3/bObaF98da+oHfUiPmdo64oJlT9J8R8G5sJRU7thwaY5zxoAKCn7FJw==", "requires": { "it-pushable": "^1.4.0" + }, + "dependencies": { + "it-pushable": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", + "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", + "requires": { + "fast-fifo": "^1.0.0" + } + } } }, "it-pair": { @@ -43524,18 +46337,20 @@ "it-length-prefixed": "^5.0.2" } }, + "it-peekable": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-2.0.0.tgz", + "integrity": "sha512-+eacms2jr2wQqIRxU25eqWPHaEeR4IurrS9hTScmCJpWagRkC8WHw7atciEA6KArOiyxHCAXg5Q5We7/RhvqAQ==" + }, "it-pipe": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" }, "it-pushable": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", - "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", - "requires": { - "fast-fifo": "^1.0.0" - } + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.2.tgz", + "integrity": "sha512-zU9FbeoGT0f+yobwm8agol2OTMXbq4ZSWLEi7hug6TEZx4qVhGhGyp31cayH04aBYsIoO2Nr5kgMjH/oWj2BJQ==" }, "it-reader": { "version": "3.0.0", @@ -43553,6 +46368,11 @@ "it-all": "^1.0.6" } }, + "it-stream-types": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-1.0.5.tgz", + "integrity": "sha512-I88Ka1nHgfX62e5mi5LLL+oueqz7Ltg0bUdtsUKDe9SoUqbQPf2Mp5kxDTe9pNhHQGs4pvYPAINwuZ1HAt42TA==" + }, "it-take": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", @@ -43770,9 +46590,9 @@ } }, "ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "dev": true }, "slash": { @@ -43960,9 +46780,9 @@ } }, "ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "peer": true }, "jest-message-util": { @@ -44267,9 +47087,9 @@ } }, "ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "peer": true }, "convert-source-map": { @@ -45023,9 +47843,9 @@ } }, "ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "devOptional": true }, "supports-color": { @@ -45136,9 +47956,9 @@ "dev": true }, "js-base64": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.4.tgz", - "integrity": "sha512-wpM/wi20Tl+3ifTyi0RdDckS4YTD4Lf953mBRrpG8547T7hInHNPEj8+ck4gB8VDcGyeAWFK++Wb/fU1BeavKQ==" + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", + "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" }, "js-sdsl": { "version": "4.3.0", @@ -45271,6 +48091,15 @@ "url-parse": "^1.5.3" } }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "peer": true, + "requires": { + "punycode": "^2.1.1" + } + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -45285,6 +48114,23 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "peer": true + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "peer": true + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "peer": true, + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } } } }, @@ -45685,6 +48531,31 @@ "xsalsa20": "^1.1.0" }, "dependencies": { + "interface-datastore": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.1.tgz", + "integrity": "sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg==", + "requires": { + "interface-store": "^2.0.2", + "nanoid": "^3.0.2", + "uint8arrays": "^3.0.0" + } + }, + "interface-store": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", + "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" + }, + "it-first": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", + "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" + }, + "it-map": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", + "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" + }, "libp2p-crypto": { "version": "0.21.2", "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.21.2.tgz", @@ -45699,6 +48570,11 @@ "protobufjs": "^6.11.2", "uint8arrays": "^3.0.0" } + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" } } }, @@ -45747,6 +48623,14 @@ "uint8arrays": "^3.0.0" }, "dependencies": { + "it-pushable": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", + "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", + "requires": { + "fast-fifo": "^1.0.0" + } + }, "libp2p-crypto": { "version": "0.21.2", "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.21.2.tgz", @@ -45776,6 +48660,16 @@ "it-pipe": "^1.1.0", "it-pushable": "^1.4.1", "varint": "^6.0.0" + }, + "dependencies": { + "it-pushable": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", + "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", + "requires": { + "fast-fifo": "^1.0.0" + } + } } }, "libp2p-utils": { @@ -46207,6 +49101,139 @@ "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==" }, + "madge": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/madge/-/madge-6.0.0.tgz", + "integrity": "sha512-dddxP62sj5pL+l9MJnq9C34VFqmRj+2+uSOdn/7lOTSliLRH0WyQ8uCEF3VxkPRNOBvMKK2xumnIE15HRSAL9A==", + "dev": true, + "requires": { + "chalk": "^4.1.1", + "commander": "^7.2.0", + "commondir": "^1.0.1", + "debug": "^4.3.1", + "dependency-tree": "^9.0.0", + "detective-amd": "^4.0.1", + "detective-cjs": "^4.0.0", + "detective-es6": "^3.0.0", + "detective-less": "^1.0.2", + "detective-postcss": "^6.1.0", + "detective-sass": "^4.0.1", + "detective-scss": "^3.0.0", + "detective-stylus": "^2.0.1", + "detective-typescript": "^9.0.0", + "ora": "^5.4.1", + "pluralize": "^8.0.0", + "precinct": "^8.1.0", + "pretty-ms": "^7.0.1", + "rc": "^1.2.7", + "stream-to-array": "^2.3.0", + "ts-graphviz": "^1.5.0", + "typescript": "^3.9.5", + "walkdir": "^0.4.1" + }, + "dependencies": { + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true + } + } + }, "mafmt": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-10.0.0.tgz", @@ -47112,9 +50139,9 @@ } }, "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, "minipass": { "version": "2.9.0", @@ -47457,12 +50484,54 @@ "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" }, + "module-definition": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-3.4.0.tgz", + "integrity": "sha512-XxJ88R1v458pifaSkPNLUTdSPNVGMP2SXVncVmApGO+gAfrLANiYe6JofymCzVceGOMwQE2xogxBSc8uB7XegA==", + "dev": true, + "requires": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^4.0.0" + }, + "dependencies": { + "node-source-walk": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.3.0.tgz", + "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", + "dev": true, + "requires": { + "@babel/parser": "^7.0.0" + } + } + } + }, "module-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", "peer": true }, + "module-lookup-amd": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz", + "integrity": "sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ==", + "dev": true, + "requires": { + "commander": "^2.8.1", + "debug": "^4.1.0", + "glob": "^7.1.6", + "requirejs": "^2.3.5", + "requirejs-config-file": "^4.0.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, "mortice": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mortice/-/mortice-2.0.1.tgz", @@ -47472,6 +50541,13 @@ "observable-webworkers": "^1.0.0", "p-queue": "^6.0.0", "promise-timeout": "^1.3.0" + }, + "dependencies": { + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + } } }, "mri": { @@ -47501,6 +50577,24 @@ "multiformats": "^9.4.5", "uint8arrays": "^3.0.0", "varint": "^6.0.0" + }, + "dependencies": { + "dns-over-http-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", + "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", + "requires": { + "debug": "^4.3.1", + "native-fetch": "^3.0.0", + "receptacle": "^1.3.2" + } + }, + "native-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "requires": {} + } } }, "multiaddr-to-uri": { @@ -47579,6 +50673,13 @@ "it-reader": "^3.0.0", "p-defer": "^3.0.0", "uint8arrays": "^3.0.0" + }, + "dependencies": { + "it-first": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", + "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" + } } }, "mutable-proxy": { @@ -47602,9 +50703,9 @@ "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==" }, "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.1.tgz", + "integrity": "sha512-udKGtCCUafD3nQtJg9wBhRP3KMbPglUsgV5JVsXhvyBs/oefqb4sqMEhKBBgqZncYowu58p1prsZQBYvAj/Gww==" }, "napi-macros": { "version": "2.0.0", @@ -47626,9 +50727,9 @@ } }, "native-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", - "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-4.0.2.tgz", + "integrity": "sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==", "requires": {} }, "natural-compare": { @@ -47688,11 +50789,6 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" }, - "node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" - }, "node-emoji": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", @@ -47721,20 +50817,11 @@ } }, "node-fetch": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", - "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", "requires": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "dependencies": { - "data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==" - } + "whatwg-url": "^5.0.0" } }, "node-forge": { @@ -47822,9 +50909,9 @@ } }, "minipass": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.2.tgz", - "integrity": "sha512-4Hbzei7ZyBp+1aw0874YWpKOubZd/jc53/XU+gkYry1QV+VvrbO8icLM5CUtm4F0hyXn85DXYKEMIS26gitD3A==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.3.tgz", + "integrity": "sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw==", "dev": true }, "minizlib": { @@ -47921,6 +51008,15 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" }, + "node-source-walk": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.0.tgz", + "integrity": "sha512-58APXoMXpmmU+oVBJFajhTCoD8d/OGtngnVAWzIo2A8yn0IXwBzvIVIsTzoie/SrA37u+1hnpNz2HMWx/VIqlw==", + "dev": true, + "requires": { + "@babel/parser": "^7.0.0" + } + }, "nofilter": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", @@ -48368,9 +51464,9 @@ }, "dependencies": { "minipass": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.2.tgz", - "integrity": "sha512-4Hbzei7ZyBp+1aw0874YWpKOubZd/jc53/XU+gkYry1QV+VvrbO8icLM5CUtm4F0hyXn85DXYKEMIS26gitD3A==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.3.tgz", + "integrity": "sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw==", "dev": true } } @@ -48971,9 +52067,9 @@ }, "dependencies": { "minipass": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.2.tgz", - "integrity": "sha512-4Hbzei7ZyBp+1aw0874YWpKOubZd/jc53/XU+gkYry1QV+VvrbO8icLM5CUtm4F0hyXn85DXYKEMIS26gitD3A==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.3.tgz", + "integrity": "sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw==", "dev": true } } @@ -49036,6 +52132,11 @@ "just-diff-apply": "^5.2.0" } }, + "parse-duration": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.2.tgz", + "integrity": "sha512-Dg27N6mfok+ow1a2rj/nRjtCfaKrHUZV2SJpEn/s8GaVUSlf4GGRCRP1c13Hj+wfPKVMrFDqLMLITkYKgKxyyg==" + }, "parse-headers": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", @@ -49052,6 +52153,12 @@ "lines-and-columns": "^1.1.6" } }, + "parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "dev": true + }, "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -49318,6 +52425,12 @@ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true + }, "pngjs": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", @@ -49333,11 +52446,340 @@ "trouter": "^2.0.1" } }, + "postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "dependencies": { + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + } + } + }, + "postcss-values-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz", + "integrity": "sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==", + "dev": true, + "requires": { + "color-name": "^1.1.4", + "is-url-superb": "^4.0.0", + "quote-unquote": "^1.0.0" + } + }, "preact": { "version": "10.4.1", "resolved": "https://registry.npmjs.org/preact/-/preact-10.4.1.tgz", "integrity": "sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q==" }, + "precinct": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-8.3.1.tgz", + "integrity": "sha512-pVppfMWLp2wF68rwHqBIpPBYY8Kd12lDhk8LVQzOwqllifVR15qNFyod43YLyFpurKRZQKnE7E4pofAagDOm2Q==", + "dev": true, + "requires": { + "commander": "^2.20.3", + "debug": "^4.3.3", + "detective-amd": "^3.1.0", + "detective-cjs": "^3.1.1", + "detective-es6": "^2.2.1", + "detective-less": "^1.0.2", + "detective-postcss": "^4.0.0", + "detective-sass": "^3.0.1", + "detective-scss": "^2.0.1", + "detective-stylus": "^1.0.0", + "detective-typescript": "^7.0.0", + "module-definition": "^3.3.1", + "node-source-walk": "^4.2.0" + }, + "dependencies": { + "@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "detective-amd": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-3.1.2.tgz", + "integrity": "sha512-jffU26dyqJ37JHR/o44La6CxtrDf3Rt9tvd2IbImJYxWKTMdBjctp37qoZ6ZcY80RHg+kzWz4bXn39e4P7cctQ==", + "dev": true, + "requires": { + "ast-module-types": "^3.0.0", + "escodegen": "^2.0.0", + "get-amd-module-type": "^3.0.0", + "node-source-walk": "^4.2.0" + } + }, + "detective-cjs": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-3.1.3.tgz", + "integrity": "sha512-ljs7P0Yj9MK64B7G0eNl0ThWSYjhAaSYy+fQcpzaKalYl/UoQBOzOeLCSFEY1qEBhziZ3w7l46KG/nH+s+L7BQ==", + "dev": true, + "requires": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^4.0.0" + } + }, + "detective-es6": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.2.tgz", + "integrity": "sha512-eZUKCUsbHm8xoeoCM0z6JFwvDfJ5Ww5HANo+jPR7AzkFpW9Mun3t/TqIF2jjeWa2TFbAiGaWESykf2OQp3oeMw==", + "dev": true, + "requires": { + "node-source-walk": "^4.0.0" + } + }, + "detective-postcss": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-4.0.0.tgz", + "integrity": "sha512-Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "is-url": "^1.2.4", + "postcss": "^8.1.7", + "postcss-values-parser": "^2.0.1" + } + }, + "detective-sass": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-3.0.2.tgz", + "integrity": "sha512-DNVYbaSlmti/eztFGSfBw4nZvwsTaVXEQ4NsT/uFckxhJrNRFUh24d76KzoCC3aarvpZP9m8sC2L1XbLej4F7g==", + "dev": true, + "requires": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^4.0.0" + } + }, + "detective-scss": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-2.0.2.tgz", + "integrity": "sha512-hDWnWh/l0tht/7JQltumpVea/inmkBaanJUcXRB9kEEXVwVUMuZd6z7eusQ6GcBFrfifu3pX/XPyD7StjbAiBg==", + "dev": true, + "requires": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^4.0.0" + } + }, + "detective-stylus": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-1.0.3.tgz", + "integrity": "sha512-4/bfIU5kqjwugymoxLXXLltzQNeQfxGoLm2eIaqtnkWxqbhap9puDVpJPVDx96hnptdERzS5Cy6p9N8/08A69Q==", + "dev": true + }, + "detective-typescript": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-7.0.2.tgz", + "integrity": "sha512-unqovnhxzvkCz3m1/W4QW4qGsvXCU06aU2BAm8tkza+xLnp9SOFnob2QsTxUv5PdnQKfDvWcv9YeOeFckWejwA==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "^4.33.0", + "ast-module-types": "^2.7.1", + "node-source-walk": "^4.2.0", + "typescript": "^3.9.10" + }, + "dependencies": { + "ast-module-types": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-2.7.1.tgz", + "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", + "dev": true + } + } + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "get-amd-module-type": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-3.0.2.tgz", + "integrity": "sha512-PcuKwB8ouJnKuAPn6Hk3UtdfKoUV3zXRqVEvj8XGIXqjWfgd1j7QGdXy5Z9OdQfzVt1Sk29HVe/P+X74ccOuqw==", + "dev": true, + "requires": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^4.2.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "node-source-walk": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.3.0.tgz", + "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", + "dev": true, + "requires": { + "@babel/parser": "^7.0.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "dev": true, + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, "precond": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", @@ -49368,9 +52810,9 @@ "peer": true }, "prettier": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz", - "integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==" + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", + "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==" }, "pretty-bytes": { "version": "5.6.0", @@ -49397,6 +52839,15 @@ } } }, + "pretty-ms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "dev": true, + "requires": { + "parse-ms": "^2.1.0" + } + }, "private-ip": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.3.4.tgz", @@ -49798,6 +53249,12 @@ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" }, + "quote-unquote": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/quote-unquote/-/quote-unquote-1.0.0.tgz", + "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", + "dev": true + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -49831,6 +53288,26 @@ "unpipe": "1.0.0" } }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true + } + } + }, "react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", @@ -50218,6 +53695,22 @@ "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", "dev": true }, + "requirejs": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", + "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", + "dev": true + }, + "requirejs-config-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", + "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", + "dev": true, + "requires": { + "esprima": "^4.0.0", + "stringify-object": "^3.2.1" + } + }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -50254,6 +53747,12 @@ } } }, + "resolve-dependency-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz", + "integrity": "sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -50409,6 +53908,23 @@ "truncate-utf8-bytes": "^1.0.0" } }, + "sass-lookup": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sass-lookup/-/sass-lookup-3.0.0.tgz", + "integrity": "sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==", + "dev": true, + "requires": { + "commander": "^2.16.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, "sax": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", @@ -51016,6 +54532,12 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, "source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -51171,6 +54693,15 @@ "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", "peer": true }, + "stream-to-array": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", + "integrity": "sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==", + "dev": true, + "requires": { + "any-promise": "^1.1.0" + } + }, "stream-to-it": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", @@ -51187,8 +54718,7 @@ "streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "peer": true + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" }, "strict-event-emitter": { "version": "0.4.6", @@ -51266,6 +54796,17 @@ "es-abstract": "^1.20.4" } }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + } + }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -51340,6 +54881,24 @@ "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-2.0.0.tgz", "integrity": "sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==" }, + "stylus-lookup": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-3.0.2.tgz", + "integrity": "sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==", + "dev": true, + "requires": { + "commander": "^2.8.1", + "debug": "^4.1.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -51518,6 +55077,12 @@ "minimist": "^1.1.0" } }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, "tar": { "version": "4.4.19", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", @@ -51737,13 +55302,9 @@ } }, "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "peer": true, - "requires": { - "punycode": "^2.1.1" - } + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "tree-kill": { "version": "1.2.2", @@ -52138,9 +55699,9 @@ } }, "ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "optional": true, "peer": true }, @@ -52714,6 +56275,12 @@ "peer": true, "requires": {} }, + "ts-graphviz": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ts-graphviz/-/ts-graphviz-1.5.3.tgz", + "integrity": "sha512-72wo3Y6ZO8FMB9OgzHTB5W/9P5nG6JrO3L3UfWI3oXaFJRqbOyGDxVrfjvF4M7Gnq4B8a0KpeHkpNkUXINqd4A==", + "dev": true + }, "ts-jest": { "version": "29.0.5", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.0.5.tgz", @@ -53012,6 +56579,29 @@ "optional": true, "peer": true }, + "uint8arraylist": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.3.tgz", + "integrity": "sha512-oEVZr4/GrH87K0kjNce6z8pSCzLEPqHNLNR5sj8cJOySrTP8Vb/pMIbZKLJGhQKxm1TiZ31atNrpn820Pyqpow==", + "requires": { + "uint8arrays": "^4.0.2" + }, + "dependencies": { + "multiformats": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==" + }, + "uint8arrays": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.3.tgz", + "integrity": "sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg==", + "requires": { + "multiformats": "^11.0.0" + } + } + } + }, "uint8arrays": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", @@ -53057,10 +56647,9 @@ } }, "undici": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.18.0.tgz", - "integrity": "sha512-1iVwbhonhFytNdg0P4PqyIAXbdlVZVebtPDvuM36m66mRw4OGrCm2MYynJv/UENFLdP13J1nPVQzVE2zTs1OeA==", - "peer": true, + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.19.1.tgz", + "integrity": "sha512-YiZ61LPIgY73E7syxCDxxa3LV2yl3sN8spnIuTct60boiiRaE1J8mNWHO8Im2Zi/sFrPusjLlmRPrsyraSqX6A==", "requires": { "busboy": "^1.6.0" } @@ -53088,6 +56677,12 @@ } } }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", + "dev": true + }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -53375,9 +56970,9 @@ } }, "vfile": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.6.tgz", - "integrity": "sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==", + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", "dev": true, "requires": { "@types/unist": "^2.0.0", @@ -53455,6 +57050,12 @@ "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==", "dev": true }, + "walkdir": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", + "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", + "dev": true + }, "walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -53923,25 +57524,6 @@ "requires": { "whatwg-url": "^5.0.0" } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } } } }, @@ -53997,10 +57579,9 @@ } }, "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "peer": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "websocket": { "version": "1.0.34", @@ -54051,14 +57632,12 @@ "peer": true }, "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "peer": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "wherearewe": { @@ -54396,9 +57975,9 @@ } }, "yeoman-environment": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.13.0.tgz", - "integrity": "sha512-eBPpBZCvFzx6yk17x+ZrOHp8ADDv6qHradV+SgdugaQKIy9NjEX5AkbwdTHLOgccSTkQ9rN791xvYOu6OmqjBg==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.14.1.tgz", + "integrity": "sha512-IjH9lCm0CKbNqH7x59c75feg64bz/WOk72j/wwMRiEQvcD47eKYduJmbyohR9pncmveJw/kkoJy3/OazARk7KA==", "dev": true, "requires": { "@npmcli/arborist": "^4.0.4", @@ -54632,9 +58211,9 @@ } }, "yeoman-generator": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-5.7.0.tgz", - "integrity": "sha512-z9ZwgKoDOd+llPDCwn8Ax2l4In5FMhlslxdeByW4AMxhT+HbTExXKEAahsClHSbwZz1i5OzRwLwRIUdOJBr5Bw==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-5.7.1.tgz", + "integrity": "sha512-5X9Ep5Zu7gw6JDpahkgCorsz8BUQ0iDbnLO3Ov0UgLc9GedTUMk0a2DMkEspq7+fZHtVcOQ2C/YIbzpDH/5OMg==", "dev": true, "requires": { "chalk": "^4.1.0", diff --git a/package.json b/package.json index 8addda1ce..ed98cd06f 100644 --- a/package.json +++ b/package.json @@ -27,12 +27,16 @@ "postpack": "shx rm -f oclif.manifest.json", "prepack": "npm run build && oclif manifest && cd docs/commands && oclif readme --no-aliases", "test": "shx rm -rf tmp && shx mkdir tmp && npm pack --pack-destination ./tmp && cd tmp && npm init -y && npm i ./fluencelabs-cli-${npm_package_version}.tgz && cd .. && ts-node ./test/setupTests.ts && node --experimental-vm-modules node_modules/jest/bin/jest.js", - "posttest": "npm run lint", + "posttest": "npm run lint && npm run circular", "prepare": "husky install", - "check": "npm run build && npm run lint-fix", + "check": "npm run build && npm run lint-fix && npm run circular", + "circular": "madge --circular --extensions ts ./", "pre-commit": "exitzero npm run build && exitzero npm run lint-fix && cd docs/commands && oclif readme --no-aliases && git add README.md", "clean": "shx rm -rf .fluence && shx rm -rf fluence-lock.yaml && shx rm -rf fluence.yaml && shx rm -rf src/aqua && shx rm -rf src/ts && shx rm -rf src/js", - "gen-config-docs": "shx rm -rf schemas && shx rm -rf docs/configs && ts-node ./src/schemas.ts && jsonschema2md -d schemas -o docs/configs -h false -f yaml -x schemas -n && ts-node ./src/schemas.ts -f" + "gen-config-docs": "shx rm -rf schemas && shx rm -rf docs/configs && ts-node ./src/schemas.ts && jsonschema2md -d schemas -o docs/configs -h false -f yaml -x schemas -n && ts-node ./src/schemas.ts -f", + "compile-cli-aqua": "./bin/dev.js aqua -i node_modules/@fluencelabs/installation-spell/src/aqua/cli.aqua -o src/lib/compiled-aqua/installation-spell --import node_modules", + "compile-files-aqua": "./bin/dev.js aqua -i node_modules/@fluencelabs/installation-spell/src/aqua/files.aqua -o src/lib/compiled-aqua/installation-spell --import node_modules", + "compile-air": "./bin/dev.js aqua --no-relay -i node_modules/@fluencelabs/installation-spell/src/aqua/spell.aqua -o src/lib/compiled-aqua/installation-spell/air --import node_modules --air" }, "dependencies": { "@fluencelabs/aqua-api": "=0.9.3", @@ -56,9 +60,11 @@ "ethers": "^5.7.2", "filenamify": "^5.1.1", "inquirer": "^9", + "ipfs-http-client": "^60.0.0", + "it-all": "^1.0.6", "lodash-es": "^4.17.21", "multiaddr": "^10.0.1", - "node-fetch": "^3.3.0", + "node-fetch": "^2.6.9", "platform": "^1.3.6", "replace-homedir": "^2.0.0", "web3": "^1.8.2", @@ -67,6 +73,10 @@ }, "devDependencies": { "@adobe/jsonschema2md": "^7.1.5", + "@fluencelabs/aqua-ipfs": "^0.5.9", + "@fluencelabs/aqua-lib": "^0.6.0", + "@fluencelabs/installation-spell": "^0.3.2", + "@fluencelabs/spell": "^0.1.0", "@swc/core": "^1.3.32", "@tsconfig/node18-strictest-esm": "^1.0.1", "@types/chokidar": "^2.1.3", @@ -93,6 +103,7 @@ "husky": "^8.0.3", "jest": "^29.4.1", "lint-staged": "^13.1.0", + "madge": "^6.0.0", "oclif": "^3", "prettier": "^2.8.3", "shx": "^0.3.4", @@ -149,6 +160,10 @@ "unused-imports" ], "rules": { + "import/extensions": [ + "error", + "always" + ], "import/no-unresolved": "off", "node/no-unpublished-import": "off", "no-empty": [ diff --git a/src/baseCommand.ts b/src/baseCommand.ts index 50c1f1273..aca2224f7 100644 --- a/src/baseCommand.ts +++ b/src/baseCommand.ts @@ -34,14 +34,6 @@ export abstract class BaseCommand extends Command { protected flags!: Flags; protected args!: Args; - protected override async catch( - err: Error & { exitCode?: number } - ): Promise { - // add any custom logic to handle errors from the command - // or simply return the parent class error handling - return super.catch(err); - } - protected override async finally( maybeError: Error | undefined ): Promise { diff --git a/src/commands/aqua.ts b/src/commands/aqua.ts index f74522316..a2121ca80 100644 --- a/src/commands/aqua.ts +++ b/src/commands/aqua.ts @@ -23,6 +23,7 @@ import { Command, Flags } from "@oclif/core"; import chokidar from "chokidar"; import { initAquaCli } from "../lib/aquaCli.js"; +import { commandObj } from "../lib/commandObj.js"; import { defaultFluenceLockConfig, initFluenceLockConfig, @@ -34,7 +35,7 @@ import { NO_INPUT_FLAG, } from "../lib/const.js"; import { ensureAquaImports } from "../lib/helpers/aquaImports.js"; -import { commandObj, exitCli, initCli } from "../lib/lifecyle.js"; +import { exitCli, initCli } from "../lib/lifecyle.js"; import { projectRootDirPromise, validatePath } from "../lib/paths.js"; import { input } from "../lib/prompt.js"; @@ -243,8 +244,9 @@ const addFileExtensionsInTsFiles = async (outputDirPath: string) => { return writeFile( filePath, content.replaceAll( - "@fluencelabs/fluence/dist/internal/compilerSupport/v4", - "@fluencelabs/fluence/dist/internal/compilerSupport/v4.js" + // we will do this until we update aqua to generate correct imports for new js-client + "@fluencelabs/fluence/dist/internal/compilerSupport/v4'", + "@fluencelabs/fluence/dist/internal/compilerSupport/v4.js'" ) ); })() diff --git a/src/commands/deal/faucet.ts b/src/commands/deal/faucet.ts index a74c6d714..af8a2a3b7 100644 --- a/src/commands/deal/faucet.ts +++ b/src/commands/deal/faucet.ts @@ -19,6 +19,7 @@ import { Args, Flags } from "@oclif/core"; import { BigNumber } from "ethers"; import { BaseCommand, baseFlags } from "../../baseCommand.js"; +import { commandObj } from "../../lib/commandObj.js"; import { isToken, NETWORK_FLAG, @@ -26,7 +27,7 @@ import { TOKENS, TOKENS_STRING, } from "../../lib/const.js"; -import { commandObj, initCli } from "../../lib/lifecyle.js"; +import { initCli } from "../../lib/lifecyle.js"; import { input, list } from "../../lib/prompt.js"; import { ensureChainNetwork, diff --git a/src/commands/dependency/cargo/install.ts b/src/commands/dependency/cargo/install.ts index 00ca68a71..e05ea1780 100644 --- a/src/commands/dependency/cargo/install.ts +++ b/src/commands/dependency/cargo/install.ts @@ -19,6 +19,7 @@ import path from "node:path"; import { Args, Flags } from "@oclif/core"; import { BaseCommand, baseFlags } from "../../../baseCommand.js"; +import { commandObj } from "../../../lib/commandObj.js"; import { defaultFluenceLockConfig, initFluenceLockConfig, @@ -30,7 +31,7 @@ import { PACKAGE_NAME_AND_VERSION_ARG_NAME, REQUIRED_RUST_TOOLCHAIN, } from "../../../lib/const.js"; -import { commandObj, initCli } from "../../../lib/lifecyle.js"; +import { initCli } from "../../../lib/lifecyle.js"; import { ensureCargoDependency, installAllCargoDependenciesFromFluenceConfig, diff --git a/src/commands/dependency/install.ts b/src/commands/dependency/install.ts index 6caab6b67..0da9cd04e 100644 --- a/src/commands/dependency/install.ts +++ b/src/commands/dependency/install.ts @@ -17,6 +17,7 @@ import { Flags } from "@oclif/core"; import { BaseCommand, baseFlags } from "../../baseCommand.js"; +import { commandObj } from "../../lib/commandObj.js"; import type { FluenceConfig } from "../../lib/configs/project/fluence.js"; import { defaultFluenceLockConfig, @@ -36,7 +37,7 @@ import { ensureAquaImports, ensureVSCodeSettingsJSON, } from "../../lib/helpers/aquaImports.js"; -import { commandObj, initCli } from "../../lib/lifecyle.js"; +import { initCli } from "../../lib/lifecyle.js"; import { getLatestVersionOfNPMDependency } from "../../lib/npm.js"; import { getLatestVersionOfCargoDependency, diff --git a/src/commands/dependency/npm/install.ts b/src/commands/dependency/npm/install.ts index 8edcb6021..28a08166c 100644 --- a/src/commands/dependency/npm/install.ts +++ b/src/commands/dependency/npm/install.ts @@ -19,6 +19,7 @@ import path from "node:path"; import { Args, Flags } from "@oclif/core"; import { BaseCommand, baseFlags } from "../../../baseCommand.js"; +import { commandObj } from "../../../lib/commandObj.js"; import { defaultFluenceLockConfig, initFluenceLockConfig, @@ -33,7 +34,7 @@ import { ensureVSCodeSettingsJSON, ensureAquaImports, } from "../../../lib/helpers/aquaImports.js"; -import { commandObj, initCli } from "../../../lib/lifecyle.js"; +import { initCli } from "../../../lib/lifecyle.js"; import { ensureNpmDependency } from "../../../lib/npm.js"; export default class Install extends BaseCommand { diff --git a/src/commands/dependency/versions.ts b/src/commands/dependency/versions.ts new file mode 100644 index 000000000..2bdc49e37 --- /dev/null +++ b/src/commands/dependency/versions.ts @@ -0,0 +1,127 @@ +/** + * Copyright 2022 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// import { dirname } from "path"; +// import { fileURLToPath } from "url"; + +import { yamlDiffPatch } from "yaml-diff-patch"; + +import { BaseCommand, baseFlags } from "../../baseCommand.js"; +import { commandObj } from "../../lib/commandObj.js"; +import { initFluenceLockConfig } from "../../lib/configs/project/fluenceLock.js"; +import { + AQUA_LIB_NPM_DEPENDENCY, + AQUA_LIB_RECOMMENDED_VERSION, + AQUA_NPM_DEPENDENCY, + AQUA_RECOMMENDED_VERSION, + MARINE_CARGO_DEPENDENCY, + MARINE_RECOMMENDED_VERSION, + MREPL_CARGO_DEPENDENCY, + MREPL_RECOMMENDED_VERSION, +} from "../../lib/const.js"; +// import { execPromise } from "../../lib/execPromise.js"; +import { initCli } from "../../lib/lifecyle.js"; + +const NPM_OVERRIDABLE_DEP = + "npm dependencies that can be overridden with 'fluence dependency npm install @'"; + +const CARGO_OVERRIDABLE_DEP = + "cargo dependencies that can be overridden with 'fluence dependency cargo install @'"; + +export default class Versions extends BaseCommand { + static override aliases = ["dependency:v", "dep:v"]; + static override description = + "Get versions of all currently used dependencies"; + static override examples = ["<%= config.bin %> <%= command.id %>"]; + static override flags = { + ...baseFlags, + }; + async run(): Promise { + const { maybeFluenceConfig } = await initCli( + this, + await this.parse(Versions) + ); + + // TODO: DXJ-284 show all package dependencies + + // const versions = await execPromise({ + // command: "npm list", + // options: { + // cwd: dirname(fileURLToPath(import.meta.url)), + // shell: true, + // }, + // }); + + // const versionsObj = versions + // .split("── ") + // .slice(1) + // .reduce( + // (acc, val) => { + // const nameAndVersion = val.split("@"); + // const version = nameAndVersion.pop(); + // assert(version !== undefined); + // const packageName = nameAndVersion.join("@"); + // return { ...acc, [packageName]: version.slice(0, -2) }; + // }, + // { "@fluencelabs/cli": commandObj.config.version } + // ); + + const recommendedDependencies = { + [NPM_OVERRIDABLE_DEP]: { + [AQUA_NPM_DEPENDENCY]: AQUA_RECOMMENDED_VERSION, + [AQUA_LIB_NPM_DEPENDENCY]: AQUA_LIB_RECOMMENDED_VERSION, + }, + [CARGO_OVERRIDABLE_DEP]: { + [MARINE_CARGO_DEPENDENCY]: MARINE_RECOMMENDED_VERSION, + [MREPL_CARGO_DEPENDENCY]: MREPL_RECOMMENDED_VERSION, + }, + }; + + if (maybeFluenceConfig === null) { + return commandObj.log( + yamlDiffPatch( + "", + {}, + { /*...versionsObj,*/ ...recommendedDependencies } + ) + ); + } + + const fluenceConfig = maybeFluenceConfig; + + const fluenceLockConfig = await initFluenceLockConfig(); + + commandObj.log( + yamlDiffPatch( + "", + {}, + { + /*...versionsObj,*/ + [NPM_OVERRIDABLE_DEP]: { + ...recommendedDependencies[NPM_OVERRIDABLE_DEP], + ...fluenceConfig?.dependencies?.npm, + ...fluenceLockConfig?.npm, + }, + [CARGO_OVERRIDABLE_DEP]: { + ...recommendedDependencies[CARGO_OVERRIDABLE_DEP], + ...fluenceConfig?.dependencies?.cargo, + ...fluenceLockConfig?.cargo, + }, + } + ) + ); + } +} diff --git a/src/commands/deploy.ts b/src/commands/deploy.ts index bc565757c..98be0b848 100644 --- a/src/commands/deploy.ts +++ b/src/commands/deploy.ts @@ -24,6 +24,7 @@ import { yamlDiffPatch } from "yaml-diff-patch"; import { BaseCommand, baseFlags } from "../baseCommand.js"; import { AquaCLI, initAquaCli } from "../lib/aquaCli.js"; import { build, BuildArg, ServiceInfo } from "../lib/build.js"; +import { commandObj, isInteractive } from "../lib/commandObj.js"; import { DeployedServiceConfig, initAppConfig, @@ -51,7 +52,7 @@ import { import { getMessageWithKeyValuePairs } from "../lib/helpers/getMessageWithKeyValuePairs.js"; import { replaceHomeDir } from "../lib/helpers/replaceHomeDir.js"; import { getExistingKeyPairFromFlags } from "../lib/keypairs.js"; -import { commandObj, initCli, isInteractive } from "../lib/lifecyle.js"; +import { initCli } from "../lib/lifecyle.js"; import { initMarineCli } from "../lib/marineCli.js"; import { getEvenlyDistributedIds, @@ -60,7 +61,7 @@ import { getRandomRelayId, getRandomRelayIdFromTheList, Relays, -} from "../lib/multiaddr.js"; +} from "../lib/multiaddres.js"; import { ensureFluenceTmpDeployJsonPath } from "../lib/paths.js"; import { confirm } from "../lib/prompt.js"; import { removeApp } from "../lib/removeApp.js"; diff --git a/src/commands/key/new.ts b/src/commands/key/new.ts index 013b8482d..ece428008 100644 --- a/src/commands/key/new.ts +++ b/src/commands/key/new.ts @@ -19,6 +19,7 @@ const color = oclifColor.default; import { Args, Flags } from "@oclif/core"; import { BaseCommand, baseFlags } from "../../baseCommand.js"; +import { commandObj, isInteractive } from "../../lib/commandObj.js"; import { initProjectSecretsConfig } from "../../lib/configs/project/projectSecrets.js"; import { initUserSecretsConfig } from "../../lib/configs/user/userSecrets.js"; import { @@ -29,7 +30,7 @@ import { ensureFluenceProject } from "../../lib/helpers/ensureFluenceProject.js" import { generateKeyPair } from "../../lib/helpers/generateKeyPair.js"; import { replaceHomeDir } from "../../lib/helpers/replaceHomeDir.js"; import { getProjectKeyPair, getUserKeyPair } from "../../lib/keypairs.js"; -import { commandObj, initCli, isInteractive } from "../../lib/lifecyle.js"; +import { initCli } from "../../lib/lifecyle.js"; import { confirm, input } from "../../lib/prompt.js"; export default class New extends BaseCommand { diff --git a/src/commands/key/remove.ts b/src/commands/key/remove.ts index b58fd7d74..60ae35c0e 100644 --- a/src/commands/key/remove.ts +++ b/src/commands/key/remove.ts @@ -21,6 +21,7 @@ const color = oclifColor.default; import { Args, Flags } from "@oclif/core"; import { BaseCommand, baseFlags } from "../../baseCommand.js"; +import { isInteractive } from "../../lib/commandObj.js"; import { initProjectSecretsConfig } from "../../lib/configs/project/projectSecrets.js"; import { initUserSecretsConfig } from "../../lib/configs/user/userSecrets.js"; import { @@ -30,7 +31,7 @@ import { import { ensureFluenceProject } from "../../lib/helpers/ensureFluenceProject.js"; import { replaceHomeDir } from "../../lib/helpers/replaceHomeDir.js"; import { getProjectKeyPair, getUserKeyPair } from "../../lib/keypairs.js"; -import { initCli, isInteractive } from "../../lib/lifecyle.js"; +import { initCli } from "../../lib/lifecyle.js"; import { list } from "../../lib/prompt.js"; export default class Remove extends BaseCommand { diff --git a/src/commands/module/add.ts b/src/commands/module/add.ts index f0bc527dc..5730cad62 100644 --- a/src/commands/module/add.ts +++ b/src/commands/module/add.ts @@ -22,6 +22,7 @@ const color = oclifColor.default; import { Args, Flags } from "@oclif/core"; import { BaseCommand, baseFlags } from "../../baseCommand.js"; +import { commandObj } from "../../lib/commandObj.js"; import { initReadonlyModuleConfig } from "../../lib/configs/project/module.js"; import { initServiceConfig } from "../../lib/configs/project/service.js"; import { @@ -34,7 +35,7 @@ import { isUrl, } from "../../lib/helpers/downloadFile.js"; import { replaceHomeDir } from "../../lib/helpers/replaceHomeDir.js"; -import { commandObj, initCli } from "../../lib/lifecyle.js"; +import { initCli } from "../../lib/lifecyle.js"; import { input } from "../../lib/prompt.js"; import { hasKey } from "../../lib/typeHelpers.js"; diff --git a/src/commands/module/remove.ts b/src/commands/module/remove.ts index bbf664cfe..355e9021b 100644 --- a/src/commands/module/remove.ts +++ b/src/commands/module/remove.ts @@ -22,6 +22,7 @@ const color = oclifColor.default; import { Args, Flags } from "@oclif/core"; import { BaseCommand, baseFlags } from "../../baseCommand.js"; +import { commandObj } from "../../lib/commandObj.js"; import { FACADE_MODULE_NAME, initServiceConfig, @@ -31,7 +32,7 @@ import { SERVICE_CONFIG_FILE_NAME, } from "../../lib/const.js"; import { isUrl } from "../../lib/helpers/downloadFile.js"; -import { commandObj, initCli } from "../../lib/lifecyle.js"; +import { initCli } from "../../lib/lifecyle.js"; import { input } from "../../lib/prompt.js"; import { hasKey } from "../../lib/typeHelpers.js"; diff --git a/src/commands/remove.ts b/src/commands/remove.ts index 64f611ce1..bba3be98f 100644 --- a/src/commands/remove.ts +++ b/src/commands/remove.ts @@ -20,11 +20,12 @@ import { Flags } from "@oclif/core"; import { BaseCommand, baseFlags } from "../baseCommand.js"; import { initAquaCli } from "../lib/aquaCli.js"; +import { isInteractive } from "../lib/commandObj.js"; import { initAppConfig } from "../lib/configs/project/app.js"; import { initFluenceLockConfig } from "../lib/configs/project/fluenceLock.js"; import { TIMEOUT_FLAG } from "../lib/const.js"; import { replaceHomeDir } from "../lib/helpers/replaceHomeDir.js"; -import { initCli, isInteractive } from "../lib/lifecyle.js"; +import { initCli } from "../lib/lifecyle.js"; import { confirm } from "../lib/prompt.js"; import { removeApp } from "../lib/removeApp.js"; diff --git a/src/commands/run.ts b/src/commands/run.ts index 00318736d..600d07566 100644 --- a/src/commands/run.ts +++ b/src/commands/run.ts @@ -25,9 +25,10 @@ import { Flags } from "@oclif/core"; import type { JSONSchemaType } from "ajv"; import { BaseCommand, baseFlags } from "../baseCommand.js"; -import { ajv } from "../lib/ajv.js"; +import { ajv } from "../lib/ajvInstance.js"; import { compile, Data } from "../lib/aqua.js"; import { initAquaCli } from "../lib/aquaCli.js"; +import { commandObj } from "../lib/commandObj.js"; import { AppConfigReadonly, initReadonlyAppConfig, @@ -59,8 +60,8 @@ import { import { getAppJson } from "../lib/deployedApp.js"; import { ensureAquaImports } from "../lib/helpers/aquaImports.js"; import { getExistingKeyPairFromFlags } from "../lib/keypairs.js"; -import { commandObj, initCli } from "../lib/lifecyle.js"; -import { getRandomRelayAddr } from "../lib/multiaddr.js"; +import { initCli } from "../lib/lifecyle.js"; +import { getRandomRelayAddr } from "../lib/multiaddres.js"; import { ensureFluenceTmpAppServiceJsonPath, projectRootDirPromise, @@ -614,11 +615,17 @@ const fluenceRun = async ({ }), fluencePeer.start({ connectTo: relay, - KeyPair: await KeyPair.fromEd25519SK(Buffer.from(secretKey, "base64")), ...(typeof marineLogLevel === "string" ? { debug: { marineLogLevel, printParticleId } } : { debug: { printParticleId } }), ...(typeof timeout === "number" ? { defaultTtlMs: timeout } : {}), + ...(secretKey === undefined + ? {} + : { + KeyPair: await KeyPair.fromEd25519SK( + Buffer.from(secretKey, "base64") + ), + }), }), ]); diff --git a/src/commands/service/add.ts b/src/commands/service/add.ts index 83bc6d690..3c1bd4657 100644 --- a/src/commands/service/add.ts +++ b/src/commands/service/add.ts @@ -22,6 +22,7 @@ import { BaseCommand, baseFlags } from "../../baseCommand.js"; import { addService } from "../../lib/addService.js"; import { initFluenceLockConfig } from "../../lib/configs/project/fluenceLock.js"; import { initReadonlyServiceConfig } from "../../lib/configs/project/service.js"; +import { initWorkersConfig } from "../../lib/configs/project/workers.js"; import { FLUENCE_CONFIG_FILE_NAME, SERVICE_CONFIG_FILE_NAME, @@ -84,10 +85,13 @@ export default class Add extends BaseCommand { maybeFluenceLockConfig ); + const workersConfig = await initWorkersConfig(fluenceConfig); + await addService({ serviceName: flags.name ?? serviceConfig.name, pathOrUrl: servicePathOrUrl, fluenceConfig, + workersConfig, marineCli, serviceConfig, }); diff --git a/src/commands/service/new.ts b/src/commands/service/new.ts index d0caa4329..bb372360a 100644 --- a/src/commands/service/new.ts +++ b/src/commands/service/new.ts @@ -23,8 +23,10 @@ import camelcase from "camelcase"; import { BaseCommand, baseFlags } from "../../baseCommand.js"; import { addService } from "../../lib/addService.js"; +import { isInteractive } from "../../lib/commandObj.js"; import { initFluenceLockConfig } from "../../lib/configs/project/fluenceLock.js"; import { initNewReadonlyServiceConfig } from "../../lib/configs/project/service.js"; +import { initWorkersConfig } from "../../lib/configs/project/workers.js"; import { FLUENCE_CONFIG_FILE_NAME } from "../../lib/const.js"; import { generateNewModule } from "../../lib/generateNewModule.js"; import { @@ -32,7 +34,7 @@ import { ensureValidAquaName, validateAquaName, } from "../../lib/helpers/downloadFile.js"; -import { initCli, isInteractive } from "../../lib/lifecyle.js"; +import { initCli } from "../../lib/lifecyle.js"; import { initMarineCli } from "../../lib/marineCli.js"; import { confirm, input } from "../../lib/prompt.js"; @@ -99,7 +101,10 @@ export default class New extends BaseCommand { maybeFluenceLockConfig ); + const workersConfig = await initWorkersConfig(maybeFluenceConfig); + await addService({ + workersConfig, marineCli, serviceName, pathOrUrl: servicePath, diff --git a/src/commands/service/repl.ts b/src/commands/service/repl.ts index 8d04a6451..59af3d5a0 100644 --- a/src/commands/service/repl.ts +++ b/src/commands/service/repl.ts @@ -25,6 +25,7 @@ const color = oclifColor.default; import { Args, Command } from "@oclif/core"; import { buildModule } from "../../lib/build.js"; +import { commandObj, isInteractive } from "../../lib/commandObj.js"; import { initReadonlyFluenceConfig } from "../../lib/configs/project/fluence.js"; import { initFluenceLockConfig } from "../../lib/configs/project/fluenceLock.js"; import { @@ -46,7 +47,7 @@ import { isUrl, } from "../../lib/helpers/downloadFile.js"; import { startSpinner, stopSpinner } from "../../lib/helpers/spinner.js"; -import { commandObj, initCli, isInteractive } from "../../lib/lifecyle.js"; +import { initCli } from "../../lib/lifecyle.js"; import { initMarineCli, MarineCLI } from "../../lib/marineCli.js"; import { ensureFluenceTmpConfigTomlPath } from "../../lib/paths.js"; import { input } from "../../lib/prompt.js"; diff --git a/src/commands/workers/deploy.ts b/src/commands/workers/deploy.ts new file mode 100644 index 000000000..a39cdf65b --- /dev/null +++ b/src/commands/workers/deploy.ts @@ -0,0 +1,414 @@ +/** + * Copyright 2022 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import assert from "node:assert"; +import path, { isAbsolute, resolve } from "node:path"; + +import { FluencePeer, KeyPair } from "@fluencelabs/fluence"; +import oclifColor from "@oclif/color"; +const color = oclifColor.default; +import { Flags } from "@oclif/core"; + +import { BaseCommand, baseFlags } from "../../baseCommand.js"; +import { commandObj } from "../../lib/commandObj.js"; +import { + upload_deploy, + Upload_deployArgConfig, +} from "../../lib/compiled-aqua/installation-spell/cli.js"; +import { spellInstallAirScript } from "../../lib/compiled-aqua/installation-spell/spell.js"; +import type { InitializedReadonlyConfig } from "../../lib/configs/initConfig.js"; +import { initNewReadonlyProjectSecretsConfig } from "../../lib/configs/project/deployed.js"; +import { initFluenceLockConfig } from "../../lib/configs/project/fluenceLock.js"; +import { initReadonlyHostsConfig } from "../../lib/configs/project/hosts.js"; +import { + ConfigV0, + initReadonlyModuleConfig, + ModuleConfigReadonly, +} from "../../lib/configs/project/module.js"; +import { + FACADE_MODULE_NAME, + initReadonlyServiceConfig, +} from "../../lib/configs/project/service.js"; +import { initReadonlyWorkersConfig } from "../../lib/configs/project/workers.js"; +import { + KEY_PAIR_FLAG, + TIMEOUT_FLAG, + MODULE_CONFIG_FILE_NAME, + SERVICE_CONFIG_FILE_NAME, + HOSTS_CONFIG_FILE_NAME, +} from "../../lib/const.js"; +import { + downloadModule, + downloadService, + getModuleWasmPath, + isUrl, +} from "../../lib/helpers/downloadFile.js"; +import { getExistingKeyPairFromFlags } from "../../lib/keypairs.js"; +import { initCli } from "../../lib/lifecyle.js"; +import { doRegisterIpfsClient } from "../../lib/localServices/ipfs.js"; +import { doRegisterLog } from "../../lib/localServices/log.js"; +import { initMarineCli } from "../../lib/marineCli.js"; +import { getRandomRelayAddr } from "../../lib/multiaddres.js"; +import { projectRootDirPromise } from "../../lib/paths.js"; + +export default class Deploy extends BaseCommand { + static override description = `Deploy workers to hosts, described in ${HOSTS_CONFIG_FILE_NAME}`; + static override examples = ["<%= config.bin %> <%= command.id %>"]; + static override flags = { + ...baseFlags, + relay: Flags.string({ + description: "Relay node multiaddr", + helpValue: "", + }), + force: Flags.boolean({ + description: "Force removing of previously deployed app", + }), + ...TIMEOUT_FLAG, + ...KEY_PAIR_FLAG, + "aqua-logs": Flags.boolean({ + description: "Enable Aqua logs", + }), + }; + async run(): Promise { + const { flags, fluenceConfig } = await initCli( + this, + await this.parse(Deploy), + true + ); + + const defaultKeyPair = await getExistingKeyPairFromFlags( + flags, + fluenceConfig + ); + + if (defaultKeyPair instanceof Error) { + this.error(defaultKeyPair.message); + } + + const secretKey = defaultKeyPair.secretKey; + + const relay = flags.relay ?? getRandomRelayAddr(fluenceConfig.relays); + + const fluencePeer = new FluencePeer(); + + await fluencePeer.start({ + connectTo: relay, + ...(secretKey === undefined + ? {} + : { + KeyPair: await KeyPair.fromEd25519SK( + Buffer.from(secretKey, "base64") + ), + }), + }); + + doRegisterIpfsClient(fluencePeer, flags["aqua-logs"]); + doRegisterLog(fluencePeer, flags["aqua-logs"]); + + const workersConfig = await initReadonlyWorkersConfig(fluenceConfig); + + const hostsConfig = await initReadonlyHostsConfig( + fluenceConfig, + workersConfig + ); + + const workersToHost = [ + ...new Set( + hostsConfig.hosts.reduce>( + (acc, { workerName }) => [...acc, workerName], + [] + ) + ), + ]; + + const workerConfigs = workersToHost.map((workerName) => { + const workerConfig = workersConfig.workers[workerName]; + assert(workerConfig !== undefined); + return { + workerName, + workerConfig, + }; + }); + + const serviceNames = [ + ...new Set( + workerConfigs.flatMap(({ workerConfig }) => workerConfig.services) + ), + ]; + + const serviceConfigs = await Promise.all( + serviceNames.map((serviceName) => + (async () => { + const { get = undefined, overrideModules = undefined } = + fluenceConfig?.services?.[serviceName] ?? {}; + + assert(get !== undefined); + + const serviceDirPath = isUrl(get) + ? await downloadService(get) + : path.resolve(await projectRootDirPromise, get); + + const serviceConfig = await initReadonlyServiceConfig(serviceDirPath); + + if (serviceConfig === null) { + return commandObj.error( + `${ + isUrl(get) + ? `Downloaded invalid service ${color.yellow( + serviceName + )} from ${color.yellow(get)}` + : `Invalid service ${color.yellow(serviceName)}` + }. No ${SERVICE_CONFIG_FILE_NAME} found at ${color.yellow( + serviceDirPath + )}` + ); + } + + return { + serviceName, + overrideModules, + serviceConfig, + serviceDirPath, + }; + })() + ) + ); + + const modulesUrls = [ + ...new Set( + serviceConfigs + .flatMap(({ serviceConfig }) => + Object.values(serviceConfig.modules).map(({ get }) => get) + ) + .filter((get) => isUrl(get)) + ), + ]; + + const modulePathsMap = new Map( + await Promise.all( + modulesUrls.map( + (url): Promise<[string, string]> => + (async () => [url, await downloadModule(url)])() + ) + ) + ); + + serviceConfigs + .flatMap(({ serviceConfig, serviceDirPath }) => + Object.values(serviceConfig.modules).map(({ get }) => ({ + get, + serviceDirPath, + })) + ) + .filter(({ get }) => !isUrl(get)) + .forEach(({ get, serviceDirPath }) => { + if (isAbsolute(get)) { + modulePathsMap.set(get, get); + return; + } + + const absolutePath = resolve(serviceDirPath, get); + modulePathsMap.set(absolutePath, absolutePath); + }); + + const moduleConfigsMap = new Map< + string, + InitializedReadonlyConfig + >( + await Promise.all( + [...modulePathsMap.entries()].map( + ([absolutePathOrUrl, moduleDirPath]) => + (async (): Promise< + [string, InitializedReadonlyConfig] + > => { + const moduleConfig = await initReadonlyModuleConfig( + moduleDirPath + ); + + if (moduleConfig === null) { + return commandObj.error( + `${ + isUrl(absolutePathOrUrl) + ? `Downloaded invalid module from ${color.yellow( + absolutePathOrUrl + )}` + : `Invalid module` + }. No ${MODULE_CONFIG_FILE_NAME} found at ${color.yellow( + moduleDirPath + )}` + ); + } + + return [absolutePathOrUrl, moduleConfig]; + })() + ) + ) + ); + + const fluenceLockConfig = await initFluenceLockConfig(); + + const marineCli = await initMarineCli(fluenceConfig, fluenceLockConfig); + + await Promise.all( + [...moduleConfigsMap.values()] + .filter(({ type }) => type === "rust") + .map((moduleConfig) => + marineCli({ + args: ["build"], + flags: { release: true }, + cwd: path.dirname(moduleConfig.$getPath()), + }) + ) + ); + + const workers: Upload_deployArgConfig["workers"] = hostsConfig.hosts.map( + ({ peerIds, workerName }) => { + const workerConfig = workersConfig.workers[workerName]; + assert(workerConfig !== undefined); + + const services = workerConfig.services.map((serviceName) => { + const serviceConfig = serviceConfigs.find( + ({ serviceName: name }) => name === serviceName + ); + + assert(serviceConfig !== undefined); + const { overrideModules = undefined } = serviceConfig; + + const { [FACADE_MODULE_NAME]: facadeModule, ...otherModules } = + serviceConfig.serviceConfig.modules; + + const modules = [ + ...Object.entries(otherModules), + [FACADE_MODULE_NAME, facadeModule] as const, + ].map(([name, { get }]) => { + const moduleConfig = moduleConfigsMap.get( + isUrl(get) || isAbsolute(get) + ? get + : resolve(serviceConfig.serviceDirPath, get) + ); + + assert(moduleConfig !== undefined); + + const overriddenModuleConfig = { + ...moduleConfig, + ...overrideModules?.[name], + }; + + return { + wasm: getModuleWasmPath(overriddenModuleConfig), + config: JSON.stringify( + serviceModuleToJSONModuleConfig(overriddenModuleConfig) + ), + }; + }); + + return { + name: serviceName, + modules, + }; + }); + + return { + name: workerName, + hosts: peerIds, + config: { + services, + spells: [], + }, + }; + } + ); + + const upload_deploy_arg: Upload_deployArgConfig = { + workers, + installation_script: spellInstallAirScript, + installation_trigger: { + clock: { start_sec: 1676293670, end_sec: 0, period_sec: 600 }, + connections: { connect: false, disconnect: false }, + blockchain: { start_block: 0, end_block: 0 }, + }, + }; + + const result = await upload_deploy(fluencePeer, upload_deploy_arg); + await initNewReadonlyProjectSecretsConfig(result); + commandObj.log("Successfully deployed"); + } +} + +/* eslint-disable camelcase */ +type JSONModuleConf = { + name: string; + max_heap_size?: string; + logger_enabled?: boolean; + logging_mask?: number; + mapped_dirs?: Array<[string, string]>; + preopened_files?: Array; + envs?: Array<[string, string]>; + mounted_binaries?: Array<[string, string]>; +}; + +const serviceModuleToJSONModuleConfig = ( + moduleConfig: ModuleConfigReadonly +): JSONModuleConf => { + const { + name, + loggerEnabled, + loggingMask, + volumes, + envs, + maxHeapSize, + mountedBinaries, + preopenedFiles, + } = moduleConfig; + + const jsonModuleConfig: JSONModuleConf = { + name, + }; + + if (loggerEnabled === true) { + jsonModuleConfig.logger_enabled = true; + } + + if (typeof loggingMask === "number") { + jsonModuleConfig.logging_mask = loggingMask; + } + + if (typeof maxHeapSize === "string") { + jsonModuleConfig.max_heap_size = maxHeapSize; + } + + if (volumes !== undefined) { + jsonModuleConfig.mapped_dirs = Object.entries(volumes); + jsonModuleConfig.preopened_files = [...new Set(Object.values(volumes))]; + } + + if (preopenedFiles !== undefined) { + jsonModuleConfig.preopened_files = [ + ...new Set([...Object.values(volumes ?? {}), ...preopenedFiles]), + ]; + } + + if (envs !== undefined) { + jsonModuleConfig.envs = Object.entries(envs); + } + + if (mountedBinaries !== undefined) { + jsonModuleConfig.mounted_binaries = Object.entries(mountedBinaries); + } + + return jsonModuleConfig; +}; +/* eslint-enable camelcase */ diff --git a/src/countlyInterceptor.js b/src/countlyInterceptor.js index 713a4437e..fba073795 100644 --- a/src/countlyInterceptor.js +++ b/src/countlyInterceptor.js @@ -49,15 +49,19 @@ const getIsErrorExpected = (unknown) => const ERROR_HANDLED_BY_OCLIF_KEY = "errorHandledByOclif"; /** - * @param {unknown} error - * @param {(unknown: unknown) => unknown} errorHandler + * @param {Error | unknown} errorOrUnknown * @returns */ -export const createErrorPromise = (error, errorHandler) => { +export const createErrorPromise = (errorOrUnknown) => { + const error = + errorOrUnknown instanceof Error + ? errorOrUnknown + : new Error(String(errorOrUnknown)); + isErrorExpected = getIsErrorExpected(error); if (!isCountlyInited()) { - return errorHandler(error); + return console.error(error); } if (getIsErrorExpected(error)) { @@ -70,7 +74,7 @@ export const createErrorPromise = (error, errorHandler) => { } return new Promise((resolve) => { - resolveErrorPromise = () => resolve(errorHandler(error)); + resolveErrorPromise = () => resolve(console.error(error)); setTimeout(() => { console.log( diff --git a/src/environment.d.ts b/src/environment.d.ts index 2c035788a..56e10445a 100644 --- a/src/environment.d.ts +++ b/src/environment.d.ts @@ -14,15 +14,13 @@ * limitations under the License. */ -import { Network } from "../src/lib/multiaddr.js"; +import { FluenceEnv } from "../src/lib/multiaddres.js"; import { DEBUG_COUNTLY, FLUENCE_ENV, FLUENCE_USER_DIR, } from "../src/lib/setupEnvironment.js"; -export type FluenceEnv = Network | "local"; - declare global { namespace NodeJS { interface ProcessEnv { diff --git a/src/lib/addService.ts b/src/lib/addService.ts index 53994e24f..864933665 100644 --- a/src/lib/addService.ts +++ b/src/lib/addService.ts @@ -14,27 +14,29 @@ * limitations under the License. */ +import assert from "node:assert"; import path from "node:path"; import oclifColor from "@oclif/color"; const color = oclifColor.default; import { buildModule } from "./build.js"; +import { commandObj, isInteractive } from "./commandObj.js"; import type { FluenceConfig } from "./configs/project/fluence.js"; import { FACADE_MODULE_NAME, ServiceConfigReadonly, } from "./configs/project/service.js"; -import { DEFAULT_DEPLOY_NAME, FLUENCE_CONFIG_FILE_NAME } from "./const.js"; +import type { WorkersConfig } from "./configs/project/workers.js"; +import { DEFAULT_WORKER_NAME, FLUENCE_CONFIG_FILE_NAME } from "./const.js"; import { AQUA_NAME_REQUIREMENTS, getModuleWasmPath, validateAquaName, } from "./helpers/downloadFile.js"; import { generateServiceInterface } from "./helpers/generateServiceInterface.js"; -import { commandObj } from "./lifecyle.js"; import type { MarineCLI } from "./marineCli.js"; -import { input } from "./prompt.js"; +import { confirm, input } from "./prompt.js"; type AddServiceArg = { serviceName: string; @@ -42,6 +44,7 @@ type AddServiceArg = { fluenceConfig: FluenceConfig; serviceConfig: ServiceConfigReadonly; marineCli: MarineCLI; + workersConfig: WorkersConfig; }; export const addService = async ({ @@ -50,6 +53,7 @@ export const addService = async ({ fluenceConfig, serviceConfig, marineCli, + workersConfig, }: AddServiceArg): Promise => { let serviceName = serviceNameFromArgs; @@ -87,11 +91,6 @@ export const addService = async ({ ...fluenceConfig.services, [serviceName]: { get: pathOrUrl, - deploy: [ - { - deployId: DEFAULT_DEPLOY_NAME, - }, - ], }, }; @@ -133,5 +132,31 @@ export const addService = async ({ )}` ); + if ( + isInteractive && + DEFAULT_WORKER_NAME in workersConfig.workers && + (await confirm({ + message: `Do you want to add service ${color.yellow( + serviceName + )} to a default worker ${color.yellow(DEFAULT_WORKER_NAME)}`, + })) + ) { + const defaultWorker = workersConfig.workers[DEFAULT_WORKER_NAME]; + assert(defaultWorker !== undefined); + + workersConfig.workers[DEFAULT_WORKER_NAME] = { + ...defaultWorker, + services: [...defaultWorker.services, serviceName], + }; + + await workersConfig.$commit(); + + commandObj.log( + `Added ${color.yellow(serviceName)} to ${color.yellow( + DEFAULT_WORKER_NAME + )}` + ); + } + return serviceName; }; diff --git a/src/lib/ajv.ts b/src/lib/ajvInstance.ts similarity index 100% rename from src/lib/ajv.ts rename to src/lib/ajvInstance.ts diff --git a/src/lib/build.ts b/src/lib/build.ts index 537615867..a4e2dfd74 100644 --- a/src/lib/build.ts +++ b/src/lib/build.ts @@ -39,6 +39,7 @@ import { ServiceConfigReadonly, } from "../lib/configs/project/service.js"; import { + DEFAULT_DEPLOY_NAME, FLUENCE_CONFIG_FILE_NAME, MODULE_CONFIG_FILE_NAME, SERVICE_CONFIG_FILE_NAME, @@ -55,10 +56,11 @@ import { generateServiceInterface } from "../lib/helpers/generateServiceInterfac import type { MarineCLI } from "../lib/marineCli.js"; import { confirm } from "../lib/prompt.js"; +import { commandObj } from "./commandObj.js"; import { generateKeyPair } from "./helpers/generateKeyPair.js"; import { startSpinner, stopSpinner } from "./helpers/spinner.js"; import { getKeyPair } from "./keypairs.js"; -import { commandObj } from "./lifecyle.js"; +import { projectRootDirPromise } from "./paths.js"; type ModuleNameAndConfigDefinedInService = { moduleName: string; @@ -152,11 +154,14 @@ const resolveServiceInfos = async ({ const serviceConfigs = await Promise.all( Object.entries(fluenceConfig.services).map( - ([serviceName, { get, deploy, keyPairName }]): ServiceConfigPromises => + ([ + serviceName, + { get, deploy = [{ deployId: DEFAULT_DEPLOY_NAME }], keyPairName }, + ]): ServiceConfigPromises => (async (): ServiceConfigPromises => { const serviceDirPath = isUrl(get) ? await downloadService(get) - : path.resolve(get); + : path.resolve(await projectRootDirPromise, get); return { serviceName, diff --git a/src/lib/commandObj.ts b/src/lib/commandObj.ts new file mode 100644 index 000000000..fd0b96547 --- /dev/null +++ b/src/lib/commandObj.ts @@ -0,0 +1,30 @@ +/** + * Copyright 2022 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import type { Command } from "@oclif/core"; + +export type CommandObj = Readonly>; +// eslint-disable-next-line @typescript-eslint/consistent-type-assertions +export let commandObj: CommandObj; +export let isInteractive: boolean; + +export const setCommandObjAndIsInteractive = ( + newCommandObj: CommandObj, + newIsInteractive: boolean +): void => { + commandObj = newCommandObj; + isInteractive = newIsInteractive; +}; diff --git a/src/lib/compiled-aqua/installation-spell/cli.ts b/src/lib/compiled-aqua/installation-spell/cli.ts new file mode 100644 index 000000000..afa4c76ab --- /dev/null +++ b/src/lib/compiled-aqua/installation-spell/cli.ts @@ -0,0 +1,516 @@ +/* eslint-disable */ +// @ts-nocheck +/** + * + * This file is auto-generated. Do not edit manually: changes may be erased. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues + * Aqua version: 0.9.4 + * + */ +import { FluencePeer } from "@fluencelabs/fluence"; +import type { CallParams$$ } from "@fluencelabs/fluence/dist/internal/compilerSupport/v4.js"; +import { + callFunction$$, + registerService$$, +} from "@fluencelabs/fluence/dist/internal/compilerSupport/v4.js"; + +// Services + +// Functions +export type Upload_deployArgConfig = { + installation_script: string; + installation_trigger: { + blockchain: { end_block: number; start_block: number }; + clock: { end_sec: number; period_sec: number; start_sec: number }; + connections: { connect: boolean; disconnect: boolean }; + }; + workers: { + config: { + services: { modules: { config: string; wasm: string }[]; name: string }[]; + spells: { + config: { + blockchain: { end_block: number; start_block: number }; + clock: { end_sec: number; period_sec: number; start_sec: number }; + connections: { connect: boolean; disconnect: boolean }; + }; + init_args: any; + name: string; + script: string; + }[]; + }; + hosts: string[]; + name: string; + }[]; +}; +export type Upload_deployResult = { + workers: { + installation_spells: { + host_id: string; + spell_id: string; + worker_id: string; + }[]; + name: string; + }[]; +}; +export function upload_deploy( + config_: Upload_deployArgConfig, + config?: { ttl?: number } +): Promise; + +export function upload_deploy( + peer: FluencePeer, + config_: Upload_deployArgConfig, + config?: { ttl?: number } +): Promise; + +export function upload_deploy(...args: any) { + let script = ` + (xor + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "config") [] config) + ) + (new $deploy_defs + (seq + (seq + (fold config.$.workers! w-0 + (seq + (seq + (seq + (new $services + (seq + (seq + (seq + (seq + (fold w-0.$.config.services! s-0 + (seq + (new $modules + (seq + (seq + (seq + (fold s-0.$.modules! m-0 + (seq + (seq + (seq + (seq + (call %init_peer_id% ("ipfs_client" "upload") ["/dns4/ipfs.fluence.dev/tcp/5001" m-0.$.wasm!] wasm) + (call %init_peer_id% ("ipfs_client" "upload_string") ["/dns4/ipfs.fluence.dev/tcp/5001" m-0.$.config!] cfg) + ) + (call %init_peer_id% ("json" "obj") ["config" cfg "wasm" wasm] Module_obj) + ) + (ap Module_obj $modules) + ) + (next m-0) + ) + ) + (canon %init_peer_id% $modules #modules_canon) + ) + (call %init_peer_id% ("json" "obj") ["modules" #modules_canon "name" s-0.$.name!] Service_obj) + ) + (ap Service_obj $services) + ) + ) + (next s-0) + ) + ) + (canon %init_peer_id% $services #services_canon) + ) + (call %init_peer_id% ("json" "obj") ["services" #services_canon "spells" []] WorkerDefinition_obj) + ) + (call %init_peer_id% ("json" "stringify") [WorkerDefinition_obj] json) + ) + (call %init_peer_id% ("ipfs_client" "upload_string") ["/dns4/ipfs.fluence.dev/tcp/5001" json] cid) + ) + ) + (call %init_peer_id% ("json" "obj") ["definition" cid "hosts" w-0.$.hosts! "name" w-0.$.name!] WorkerDeployDefinition_obj) + ) + (ap WorkerDeployDefinition_obj $deploy_defs) + ) + (next w-0) + ) + ) + (canon %init_peer_id% $deploy_defs #deploy_defs_canon) + ) + (call %init_peer_id% ("json" "obj") ["installation_script" config.$.installation_script! "installation_trigger" config.$.installation_trigger! "workers" #deploy_defs_canon] AppDeployDefinition_obj) + ) + ) + ) + (call %init_peer_id% ("run-console" "print") [AppDeployDefinition_obj]) + ) + (new $workers + (seq + (seq + (fold AppDeployDefinition_obj.$.workers! w-1-0 + (seq + (new $spells + (seq + (seq + (seq + (seq + (fold w-1-0.$.hosts! h-0 + (seq + (seq + (call -relay- ("op" "noop") []) + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (null) + (call h-0 ("json" "obj") ["ipfs" "/dns4/ipfs.fluence.dev/tcp/5001" "worker_definition" w-1-0.$.definition!] WorkerSpellArgs_obj) + ) + (call h-0 ("spell" "install") [AppDeployDefinition_obj.$.installation_script! WorkerSpellArgs_obj AppDeployDefinition_obj.$.installation_trigger!] spell_id) + ) + (call h-0 ("json" "obj") ["host_id" h-0 "spell_id" spell_id "worker_id" "TBD"] DeployedSpell_obj) + ) + (ap DeployedSpell_obj $spells) + ) + (call -relay- ("op" "noop") []) + ) + (xor + (par + (seq + (new $array-inline + (seq + (seq + (seq + (seq + (seq + (ap "deployed spell" $array-inline) + (ap spell_id $array-inline) + ) + (ap "TBD" $array-inline) + ) + (ap "to" $array-inline) + ) + (ap h-0 $array-inline) + ) + (canon %init_peer_id% $array-inline #array-inline-0) + ) + ) + (call %init_peer_id% ("run-console" "print") [#array-inline-0]) + ) + (null) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + ) + (next h-0) + ) + ) + (canon %init_peer_id% $spells #spells_canon) + ) + (call %init_peer_id% ("json" "obj") ["installation_spells" #spells_canon "name" w-1-0.$.name!] DeployedWorkers_obj) + ) + (ap DeployedWorkers_obj $workers) + ) + (xor + (par + (seq + (new $array-inline-1 + (seq + (seq + (seq + (ap "deployed workers" $array-inline-1) + (canon %init_peer_id% $workers #push-to-stream-107) + ) + (ap #push-to-stream-107 $array-inline-1) + ) + (canon %init_peer_id% $array-inline-1 #array-inline-1-0) + ) + ) + (call %init_peer_id% ("run-console" "print") [#array-inline-1-0]) + ) + (null) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) + ) + ) + ) + (next w-1-0) + ) + ) + (canon %init_peer_id% $workers #workers_canon) + ) + (call %init_peer_id% ("json" "obj") ["workers" #workers_canon] DeployedAppWorkers_obj) + ) + ) + ) + (xor + (call %init_peer_id% ("callbackSrv" "response") [DeployedAppWorkers_obj]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5]) + ) + `; + return callFunction$$( + args, + { + functionName: "upload_deploy", + arrow: { + tag: "arrow", + domain: { + tag: "labeledProduct", + fields: { + config: { + tag: "struct", + name: "LocalAppDeployConfig", + fields: { + installation_script: { + tag: "scalar", + name: "string", + }, + installation_trigger: { + tag: "struct", + name: "TriggerConfig", + fields: { + blockchain: { + tag: "struct", + name: "BlockChainConfig", + fields: { + end_block: { + tag: "scalar", + name: "u32", + }, + start_block: { + tag: "scalar", + name: "u32", + }, + }, + }, + clock: { + tag: "struct", + name: "ClockConfig", + fields: { + end_sec: { + tag: "scalar", + name: "u32", + }, + period_sec: { + tag: "scalar", + name: "u32", + }, + start_sec: { + tag: "scalar", + name: "u32", + }, + }, + }, + connections: { + tag: "struct", + name: "ConnectionPoolConfig", + fields: { + connect: { + tag: "scalar", + name: "bool", + }, + disconnect: { + tag: "scalar", + name: "bool", + }, + }, + }, + }, + }, + workers: { + tag: "array", + type: { + tag: "struct", + name: "LocalWorkerDeployConfig", + fields: { + config: { + tag: "struct", + name: "LocalWorkerConfig", + fields: { + services: { + tag: "array", + type: { + tag: "struct", + name: "LocalService", + fields: { + modules: { + tag: "array", + type: { + tag: "struct", + name: "LocalModule", + fields: { + config: { + tag: "scalar", + name: "string", + }, + wasm: { + tag: "scalar", + name: "string", + }, + }, + }, + }, + name: { + tag: "scalar", + name: "string", + }, + }, + }, + }, + spells: { + tag: "array", + type: { + tag: "struct", + name: "LocalSpell", + fields: { + config: { + tag: "struct", + name: "TriggerConfig", + fields: { + blockchain: { + tag: "struct", + name: "BlockChainConfig", + fields: { + end_block: { + tag: "scalar", + name: "u32", + }, + start_block: { + tag: "scalar", + name: "u32", + }, + }, + }, + clock: { + tag: "struct", + name: "ClockConfig", + fields: { + end_sec: { + tag: "scalar", + name: "u32", + }, + period_sec: { + tag: "scalar", + name: "u32", + }, + start_sec: { + tag: "scalar", + name: "u32", + }, + }, + }, + connections: { + tag: "struct", + name: "ConnectionPoolConfig", + fields: { + connect: { + tag: "scalar", + name: "bool", + }, + disconnect: { + tag: "scalar", + name: "bool", + }, + }, + }, + }, + }, + init_args: { + tag: "topType", + }, + name: { + tag: "scalar", + name: "string", + }, + script: { + tag: "scalar", + name: "string", + }, + }, + }, + }, + }, + }, + hosts: { + tag: "array", + type: { + tag: "scalar", + name: "string", + }, + }, + name: { + tag: "scalar", + name: "string", + }, + }, + }, + }, + }, + }, + }, + }, + codomain: { + tag: "unlabeledProduct", + items: [ + { + tag: "struct", + name: "DeployedAppWorkers", + fields: { + workers: { + tag: "array", + type: { + tag: "struct", + name: "DeployedWorkers", + fields: { + installation_spells: { + tag: "array", + type: { + tag: "struct", + name: "DeployedSpell", + fields: { + host_id: { + tag: "scalar", + name: "string", + }, + spell_id: { + tag: "scalar", + name: "string", + }, + worker_id: { + tag: "scalar", + name: "string", + }, + }, + }, + }, + name: { + tag: "scalar", + name: "string", + }, + }, + }, + }, + }, + }, + ], + }, + }, + names: { + relay: "-relay-", + getDataSrv: "getDataSrv", + callbackSrv: "callbackSrv", + responseSrv: "callbackSrv", + responseFnName: "response", + errorHandlingSrv: "errorHandlingSrv", + errorFnName: "error", + }, + }, + script + ); +} diff --git a/src/lib/compiled-aqua/installation-spell/console.ts b/src/lib/compiled-aqua/installation-spell/console.ts new file mode 100644 index 000000000..d5f1dde66 --- /dev/null +++ b/src/lib/compiled-aqua/installation-spell/console.ts @@ -0,0 +1,58 @@ +/* eslint-disable */ +// @ts-nocheck +/** + * + * This file is auto-generated. Do not edit manually: changes may be erased. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues + * Aqua version: 0.9.4 + * + */ +import { FluencePeer } from "@fluencelabs/fluence"; +import type { CallParams$$ } from "@fluencelabs/fluence/dist/internal/compilerSupport/v4.js"; +import { + callFunction$$, + registerService$$, +} from "@fluencelabs/fluence/dist/internal/compilerSupport/v4.js"; + +// Services + +export interface ConsoleDef { + print: (s: string, callParams: CallParams$$<"s">) => void | Promise; +} +export function registerConsole(service: ConsoleDef): void; +export function registerConsole(serviceId: string, service: ConsoleDef): void; +export function registerConsole(peer: FluencePeer, service: ConsoleDef): void; +export function registerConsole( + peer: FluencePeer, + serviceId: string, + service: ConsoleDef +): void; + +export function registerConsole(...args: any) { + registerService$$(args, { + defaultServiceId: "run-console", + functions: { + tag: "labeledProduct", + fields: { + print: { + tag: "arrow", + domain: { + tag: "labeledProduct", + fields: { + s: { + tag: "scalar", + name: "string", + }, + }, + }, + codomain: { + tag: "nil", + }, + }, + }, + }, + }); +} + +// Functions diff --git a/src/lib/compiled-aqua/installation-spell/files.ts b/src/lib/compiled-aqua/installation-spell/files.ts new file mode 100644 index 000000000..d7fafdb72 --- /dev/null +++ b/src/lib/compiled-aqua/installation-spell/files.ts @@ -0,0 +1,360 @@ +/* eslint-disable */ +// @ts-nocheck +/** + * + * This file is auto-generated. Do not edit manually: changes may be erased. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues + * Aqua version: 0.9.1-374 + * + */ +import { FluencePeer } from "@fluencelabs/fluence"; +import type { CallParams$$ } from "@fluencelabs/fluence/dist/internal/compilerSupport/v4.js"; +import { + callFunction$$, + registerService$$, +} from "@fluencelabs/fluence/dist/internal/compilerSupport/v4.js"; + +// Services + +export interface IpfsClientDef { + exists: ( + multiaddr: string, + cid: string, + callParams: CallParams$$<"multiaddr" | "cid"> + ) => boolean | Promise; + id: ( + multiaddr: string, + callParams: CallParams$$<"multiaddr"> + ) => string | Promise; + remove: ( + multiaddr: string, + cid: string, + callParams: CallParams$$<"multiaddr" | "cid"> + ) => string | Promise; + upload: ( + multiaddr: string, + path: string, + callParams: CallParams$$<"multiaddr" | "path"> + ) => string | Promise; + upload_string: ( + multiaddr: string, + contents: string, + callParams: CallParams$$<"multiaddr" | "contents"> + ) => string | Promise; +} +export function registerIpfsClient(service: IpfsClientDef): void; +export function registerIpfsClient( + serviceId: string, + service: IpfsClientDef +): void; +export function registerIpfsClient( + peer: FluencePeer, + service: IpfsClientDef +): void; +export function registerIpfsClient( + peer: FluencePeer, + serviceId: string, + service: IpfsClientDef +): void; + +export function registerIpfsClient(...args: any) { + registerService$$(args, { + defaultServiceId: "ipfs_client", + functions: { + tag: "labeledProduct", + fields: { + exists: { + tag: "arrow", + domain: { + tag: "labeledProduct", + fields: { + multiaddr: { + tag: "scalar", + name: "string", + }, + cid: { + tag: "scalar", + name: "string", + }, + }, + }, + codomain: { + tag: "unlabeledProduct", + items: [ + { + tag: "scalar", + name: "bool", + }, + ], + }, + }, + id: { + tag: "arrow", + domain: { + tag: "labeledProduct", + fields: { + multiaddr: { + tag: "scalar", + name: "string", + }, + }, + }, + codomain: { + tag: "unlabeledProduct", + items: [ + { + tag: "scalar", + name: "string", + }, + ], + }, + }, + remove: { + tag: "arrow", + domain: { + tag: "labeledProduct", + fields: { + multiaddr: { + tag: "scalar", + name: "string", + }, + cid: { + tag: "scalar", + name: "string", + }, + }, + }, + codomain: { + tag: "unlabeledProduct", + items: [ + { + tag: "scalar", + name: "string", + }, + ], + }, + }, + upload: { + tag: "arrow", + domain: { + tag: "labeledProduct", + fields: { + multiaddr: { + tag: "scalar", + name: "string", + }, + path: { + tag: "scalar", + name: "string", + }, + }, + }, + codomain: { + tag: "unlabeledProduct", + items: [ + { + tag: "scalar", + name: "string", + }, + ], + }, + }, + upload_string: { + tag: "arrow", + domain: { + tag: "labeledProduct", + fields: { + multiaddr: { + tag: "scalar", + name: "string", + }, + contents: { + tag: "scalar", + name: "string", + }, + }, + }, + codomain: { + tag: "unlabeledProduct", + items: [ + { + tag: "scalar", + name: "string", + }, + ], + }, + }, + }, + }, + }); +} + +export interface FileSystemDef { + list: ( + directory: string, + callParams: CallParams$$<"directory"> + ) => string[] | Promise; + list_ext: ( + directory: string, + ext: string, + callParams: CallParams$$<"directory" | "ext"> + ) => string[] | Promise; +} +export function registerFileSystem(service: FileSystemDef): void; +export function registerFileSystem( + serviceId: string, + service: FileSystemDef +): void; +export function registerFileSystem( + peer: FluencePeer, + service: FileSystemDef +): void; +export function registerFileSystem( + peer: FluencePeer, + serviceId: string, + service: FileSystemDef +): void; + +export function registerFileSystem(...args: any) { + registerService$$(args, { + defaultServiceId: "file_system", + functions: { + tag: "labeledProduct", + fields: { + list: { + tag: "arrow", + domain: { + tag: "labeledProduct", + fields: { + directory: { + tag: "scalar", + name: "string", + }, + }, + }, + codomain: { + tag: "unlabeledProduct", + items: [ + { + tag: "array", + type: { + tag: "scalar", + name: "string", + }, + }, + ], + }, + }, + list_ext: { + tag: "arrow", + domain: { + tag: "labeledProduct", + fields: { + directory: { + tag: "scalar", + name: "string", + }, + ext: { + tag: "scalar", + name: "string", + }, + }, + }, + codomain: { + tag: "unlabeledProduct", + items: [ + { + tag: "array", + type: { + tag: "scalar", + name: "string", + }, + }, + ], + }, + }, + }, + }, + }); +} + +// Functions + +export function upload_script( + ipfs: string, + path: string, + config?: { ttl?: number } +): Promise; + +export function upload_script( + peer: FluencePeer, + ipfs: string, + path: string, + config?: { ttl?: number } +): Promise; + +export function upload_script(...args: any) { + let script = ` + (xor + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "ipfs") [] ipfs) + ) + (call %init_peer_id% ("getDataSrv" "path") [] path) + ) + (call %init_peer_id% ("ipfs_client" "upload") [ipfs path] upload) + ) + (xor + (call %init_peer_id% ("callbackSrv" "response") [upload]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + `; + return callFunction$$( + args, + { + functionName: "upload_script", + arrow: { + tag: "arrow", + domain: { + tag: "labeledProduct", + fields: { + ipfs: { + tag: "scalar", + name: "string", + }, + path: { + tag: "scalar", + name: "string", + }, + }, + }, + codomain: { + tag: "unlabeledProduct", + items: [ + { + tag: "scalar", + name: "string", + }, + ], + }, + }, + names: { + relay: "-relay-", + getDataSrv: "getDataSrv", + callbackSrv: "callbackSrv", + responseSrv: "callbackSrv", + responseFnName: "response", + errorHandlingSrv: "errorHandlingSrv", + errorFnName: "error", + }, + }, + script + ); +} diff --git a/src/lib/compiled-aqua/installation-spell/spell.ts b/src/lib/compiled-aqua/installation-spell/spell.ts new file mode 100644 index 000000000..9ee81411a --- /dev/null +++ b/src/lib/compiled-aqua/installation-spell/spell.ts @@ -0,0 +1,218 @@ +/** + * Copyright 2022 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export const spellInstallAirScript = `; This file is auto-generated. Do not edit manually: changes may be erased. +; Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. +; If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues +; Aqua version: 0.9.4 + +(xor + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "ipfs") [] ipfs) + (call %init_peer_id% ("getDataSrv" "worker_def_cid") [] worker_def_cid) + ) + (call %init_peer_id% ("getDataSrv" "spell_id") [] spell_id) + ) + (call %init_peer_id% ("aqua-ipfs" "cat_from") [worker_def_cid ipfs] json) + ) + (xor + (match json.$.success! true + (xor + (seq + (seq + (call %init_peer_id% ("json" "parse") [json.$.contents!] worker_definition) + (xor + (par + (call %init_peer_id% ("run-console" "print") [worker_definition]) + (null) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (fold worker_definition.$.services! s-0 + (seq + (new $hashes + (seq + (seq + (seq + (seq + (fold s-0.$.modules! m-0 + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("aqua-ipfs" "get_from") [m-0.$.wasm! ipfs] get_wasm) + (call %init_peer_id% ("aqua-ipfs" "cat_from") [m-0.$.config! ipfs] json_cfg) + ) + (call %init_peer_id% ("json" "parse") [json_cfg.$.contents!] cfg) + ) + (call %init_peer_id% ("dist" "add_module_from_vault") [get_wasm.$.path! cfg] hash) + ) + (xor + (par + (seq + (new $array-inline + (seq + (seq + (ap cfg $array-inline) + (ap hash $array-inline) + ) + (canon %init_peer_id% $array-inline #array-inline-0) + ) + ) + (call %init_peer_id% ("run-console" "print") [#array-inline-0]) + ) + (null) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + ) + (call %init_peer_id% ("op" "concat_strings") ["hash:" hash] $hashes) + ) + (next m-0) + ) + ) + (par + (canon %init_peer_id% $hashes #hashes_canon) + (null) + ) + ) + (call %init_peer_id% ("dist" "make_blueprint") [s-0.$.name! #hashes_canon] blueprint) + ) + (call %init_peer_id% ("dist" "add_blueprint") [blueprint] blueprint_id) + ) + (xor + (seq + (new $result + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "spell_id") [] spell_id-0) + (call %init_peer_id% (spell_id-0 "exists") [s-0.$.name!] deployed) + ) + (xor + (match deployed.$.flag! true + (xor + (seq + (seq + (seq + (seq + (call %init_peer_id% ("op" "concat_strings") ["blueprint:" s-0.$.name!] concat_strings) + (call %init_peer_id% (spell_id-0 "get_string") [concat_strings] stored_blueprint) + ) + (xor + (match stored_blueprint.$.str! blueprint_id + (ap true $result) + ) + (ap false $result) + ) + ) + (new $array-inline-1 + (seq + (seq + (seq + (seq + (seq + (ap deployed $array-inline-1) + (ap stored_blueprint $array-inline-1) + ) + (ap blueprint_id $array-inline-1) + ) + (canon %init_peer_id% $result #push-to-stream-85) + ) + (ap #push-to-stream-85 $array-inline-1) + ) + (canon %init_peer_id% $array-inline-1 #array-inline-1-0) + ) + ) + ) + (call %init_peer_id% ("run-console" "print") [#array-inline-1-0]) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) + ) + ) + (ap false $result) + ) + ) + (new $result_test + (seq + (seq + (seq + (call %init_peer_id% ("math" "add") [0 1] result_incr) + (fold $result s + (seq + (seq + (ap s $result_test) + (canon %init_peer_id% $result_test #result_iter_canon) + ) + (xor + (match #result_iter_canon.length result_incr + (null) + ) + (next s) + ) + ) + (never) + ) + ) + (canon %init_peer_id% $result_test #result_result_canon) + ) + (ap #result_result_canon result_gate) + ) + ) + ) + ) + (match result_gate.$.[0]! false + (xor + (seq + (seq + (seq + (call %init_peer_id% ("srv" "create") [blueprint_id] service_id) + (call %init_peer_id% (spell_id "set_string") [s-0.$.name! service_id]) + ) + (call %init_peer_id% ("op" "concat_strings") ["blueprint:" s-0.$.name!] concat_strings-0) + ) + (call %init_peer_id% (spell_id "set_string") [concat_strings-0 blueprint_id]) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4]) + ) + ) + ) + (seq + (call %init_peer_id% ("op" "concat_strings") [s-0.$.name! " is already deployed"] concat_strings-1) + (call %init_peer_id% ("run-console" "print") [concat_strings-1]) + ) + ) + ) + ) + (next s-0) + ) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5]) + ) + ) + (call %init_peer_id% ("op" "noop") []) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 6]) +) +`; diff --git a/src/lib/configs/initConfig.ts b/src/lib/configs/initConfig.ts index 32bc3e133..7c36b7530 100644 --- a/src/lib/configs/initConfig.ts +++ b/src/lib/configs/initConfig.ts @@ -24,11 +24,11 @@ import Ajv from "ajv"; import { parse } from "yaml"; import { yamlDiffPatch } from "yaml-diff-patch"; +import { commandObj } from "../commandObj.js"; import { FS_OPTIONS, SCHEMAS_DIR_NAME, YAML_EXT } from "../const.js"; import { jsonStringify } from "../helpers/jsonStringify.js"; import { replaceHomeDir } from "../helpers/replaceHomeDir.js"; import type { ValidationResult } from "../helpers/validations.js"; -import { commandObj } from "../lifecyle.js"; import type { Mutable } from "../typeHelpers.js"; type EnsureSchemaArg = { diff --git a/src/lib/configs/project/app.ts b/src/lib/configs/project/app.ts index 50e002e07..abc2112a9 100644 --- a/src/lib/configs/project/app.ts +++ b/src/lib/configs/project/app.ts @@ -16,10 +16,10 @@ import type { JSONSchemaType } from "ajv"; -import { ajv } from "../../ajv.js"; +import { ajv } from "../../ajvInstance.js"; import { APP_CONFIG_FILE_NAME, TOP_LEVEL_SCHEMA_ID } from "../../const.js"; import { jsonStringify } from "../../helpers/jsonStringify.js"; -import { NETWORKS, Relays } from "../../multiaddr.js"; +import { NETWORKS, Relays } from "../../multiaddres.js"; import { ensureFluenceDir } from "../../paths.js"; import { getConfigInitFunction, diff --git a/src/lib/configs/project/deployed.ts b/src/lib/configs/project/deployed.ts new file mode 100644 index 000000000..bbd79d8a4 --- /dev/null +++ b/src/lib/configs/project/deployed.ts @@ -0,0 +1,107 @@ +/** + * Copyright 2022 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import type { JSONSchemaType } from "ajv"; + +import { DEPLOYED_CONFIG_FILE_NAME, TOP_LEVEL_SCHEMA_ID } from "../../const.js"; +import { ensureFluenceDir } from "../../paths.js"; +import { + InitConfigOptions, + InitializedConfig, + InitializedReadonlyConfig, + getReadonlyConfigInitFunction, + Migrations, + GetDefaultConfig, +} from "../initConfig.js"; + +type ConfigV0 = { + version: 0; + workers: { + installation_spells: { + host_id: string; + spell_id: string; + worker_id: string; + }[]; + name: string; + }[]; +}; + +const configSchemaV0: JSONSchemaType = { + $id: `${TOP_LEVEL_SCHEMA_ID}/${DEPLOYED_CONFIG_FILE_NAME}`, + title: DEPLOYED_CONFIG_FILE_NAME, + type: "object", + description: + "A result of app deployment. This file is created automatically after successful deployment using `fluence workers deploy` command", + properties: { + version: { type: "number", const: 0 }, + workers: { + type: "array", + description: "A list of deployed workers", + items: { + type: "object", + properties: { + name: { type: "string" }, + installation_spells: { + type: "array", + description: "A list of installation spells", + items: { + type: "object", + properties: { + host_id: { type: "string" }, + spell_id: { type: "string" }, + worker_id: { type: "string" }, + }, + required: ["host_id", "spell_id", "worker_id"], + }, + }, + }, + required: ["name", "installation_spells"], + }, + }, + }, + required: ["version"], +}; + +const migrations: Migrations = []; + +type Config = ConfigV0; +type LatestConfig = ConfigV0; +export type DeployedConfig = InitializedConfig; +export type DeployedConfigReadonly = InitializedReadonlyConfig; + +const initConfigOptions: InitConfigOptions = { + allSchemas: [configSchemaV0], + latestSchema: configSchemaV0, + migrations, + name: DEPLOYED_CONFIG_FILE_NAME, + getConfigDirPath: ensureFluenceDir, +}; + +export const initReadonlyProjectSecretsConfig = + getReadonlyConfigInitFunction(initConfigOptions); + +export const initNewReadonlyProjectSecretsConfig = ( + config: Omit +): Promise => { + const getDefault: GetDefaultConfig = () => ({ + version: 0, + ...config, + }); + + return getReadonlyConfigInitFunction(initConfigOptions, getDefault)(); +}; + +export const deployedSchema: JSONSchemaType = configSchemaV0; diff --git a/src/lib/configs/project/fluence.ts b/src/lib/configs/project/fluence.ts index d81083139..8089baf81 100644 --- a/src/lib/configs/project/fluence.ts +++ b/src/lib/configs/project/fluence.ts @@ -21,7 +21,7 @@ import oclifColor from "@oclif/color"; const color = oclifColor.default; import type { JSONSchemaType } from "ajv"; -import { ajv } from "../../ajv.js"; +import { ajv } from "../../ajvInstance.js"; import { AQUA_LIB_NPM_DEPENDENCY, AQUA_LIB_RECOMMENDED_VERSION, @@ -33,7 +33,7 @@ import { USER_SECRETS_CONFIG_FILE_NAME, } from "../../const.js"; import { jsonStringify } from "../../helpers/jsonStringify.js"; -import { NETWORKS, Relays } from "../../multiaddr.js"; +import { NETWORKS, Relays } from "../../multiaddres.js"; import { ensureFluenceDir, ensureSrcAquaMainPath, @@ -98,7 +98,8 @@ export type FluenceConfigModule = Partial; type ServiceV1 = { get: string; - deploy: Array; + overrideModules?: OverrideModules; + deploy?: Array; keyPairName?: string; }; @@ -139,9 +140,34 @@ const configSchemaV1Obj = { type: "string", description: `Path to service directory or URL to the tar.gz archive with the service`, }, + overrideModules: { + type: "object", + title: "Overrides", + description: "A map of modules to override", + additionalProperties: { + type: "object", + title: "Module overrides", + description: + "Module names as keys and overrides for the module config as values", + properties: { + ...moduleProperties, + get: { + type: "string", + nullable: true, + description: `Path to module directory or URL to the tar.gz archive with the module`, + }, + name: { ...moduleProperties.name, nullable: true }, + }, + required: [], + nullable: true, + }, + nullable: true, + required: [], + }, deploy: { type: "array", title: "Deployment list", + nullable: true, description: "List of deployments for the particular service", items: { type: "object", @@ -210,7 +236,7 @@ const configSchemaV1Obj = { }, keyPairName, }, - required: ["get", "deploy"], + required: ["get"], }, required: [], nullable: true, @@ -431,7 +457,7 @@ const validate: ConfigValidateFunction = ( const deployIds = new Set(); const notUniqueDeployIds = new Set(); - for (const { deployId } of deploy) { + for (const { deployId } of deploy ?? []) { if (deployIds.has(deployId)) { notUniqueDeployIds.add(deployId); } diff --git a/src/lib/configs/project/hosts.ts b/src/lib/configs/project/hosts.ts new file mode 100644 index 000000000..50e50206b --- /dev/null +++ b/src/lib/configs/project/hosts.ts @@ -0,0 +1,188 @@ +/** + * Copyright 2022 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import assert from "node:assert"; + +import oclifColor from "@oclif/color"; +const color = oclifColor.default; +import type { JSONSchemaType } from "ajv"; + +import { + DEFAULT_WORKER_NAME, + FLUENCE_CONFIG_FILE_NAME, + HOSTS_CONFIG_FILE_NAME, + TOP_LEVEL_SCHEMA_ID, + WORKERS_CONFIG_FILE_NAME, +} from "../../const.js"; +import { local } from "../../localNodes.js"; +import { FluenceEnv, getPeerId, getRandomRelayId } from "../../multiaddres.js"; +import { ensureFluenceDir, projectRootDirPromise } from "../../paths.js"; +import { FLUENCE_ENV } from "../../setupEnvironment.js"; +import { + getConfigInitFunction, + InitializedConfig, + InitializedReadonlyConfig, + getReadonlyConfigInitFunction, + Migrations, + InitConfigOptions, + ConfigValidateFunction, +} from "../initConfig.js"; + +import type { FluenceConfigReadonly } from "./fluence.js"; +import type { WorkersConfigReadonly } from "./workers.js"; + +type ConfigV0 = { + version: 0; + hosts: Array<{ workerName: string; peerIds: Array }>; +}; + +const configSchemaV0 = { + $id: `${TOP_LEVEL_SCHEMA_ID}/${HOSTS_CONFIG_FILE_NAME}`, + title: HOSTS_CONFIG_FILE_NAME, + description: "Defines which workers to host on which peer IDs", + type: "object", + properties: { + hosts: { + description: + "Array of objects, each object defines a worker and a list of peer IDs to host it on", + type: "array", + items: { + type: "object", + properties: { + workerName: { + type: "string", + description: `Name of the worker to host. The same as in ${WORKERS_CONFIG_FILE_NAME}`, + }, + peerIds: { + type: "array", + description: "a list of peer IDs to deploy on", + items: { type: "string" }, + }, + }, + required: ["workerName", "peerIds"], + }, + }, + version: { type: "number", enum: [0] }, + }, + required: ["version", "hosts"], +} as const satisfies JSONSchemaType; + +const migrations: Migrations = []; + +type Config = ConfigV0; +type LatestConfig = ConfigV0; +export type HostsConfig = InitializedConfig; +export type HostsConfigReadonly = InitializedReadonlyConfig; + +const getDefaultPeerId = (fluenceConfig: FluenceConfigReadonly): string => { + if (Array.isArray(fluenceConfig?.relays)) { + const firstRelay = fluenceConfig?.relays[0]; + + assert( + firstRelay !== undefined, + `relays array is empty in ${FLUENCE_CONFIG_FILE_NAME}` + ); + + return getPeerId(firstRelay); + } + + // This typescript error happens only when running config docs generation script that's why type assertion is used + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions, @typescript-eslint/no-unnecessary-type-assertion + const fluenceEnv = (fluenceConfig?.relays ?? + process.env[FLUENCE_ENV]) as FluenceEnv; + + if (fluenceEnv === "local") { + const localNode = local[0]; + assert(localNode !== undefined); + return localNode.peerId; + } + + return getRandomRelayId(fluenceEnv); +}; + +const getDefault = + (fluenceConfig: FluenceConfigReadonly) => (): LatestConfig => ({ + version: 0, + hosts: [ + { + workerName: DEFAULT_WORKER_NAME, + peerIds: [getDefaultPeerId(fluenceConfig)], + }, + ], + }); + +const getValidate = + ( + workersConfig: WorkersConfigReadonly + ): ConfigValidateFunction => + (config): ReturnType> => { + if (config.hosts === undefined) { + return true; + } + + const workersSet = new Set( + Object.keys(workersConfig?.workers ?? {}).flatMap( + (serviceName) => serviceName + ) + ); + + return config.hosts.reduce((acc, { workerName }) => { + if (workersSet.has(workerName)) { + return acc; + } + + const errorMessage = `No worker named ${color.yellow( + workerName + )} found in ${WORKERS_CONFIG_FILE_NAME}`; + + if (typeof acc === "string") { + return `${acc}\n${errorMessage}`; + } + + return errorMessage; + }, true); + }; + +export const getInitConfigOptions = ( + workersConfig: WorkersConfigReadonly +): InitConfigOptions => ({ + allSchemas: [configSchemaV0], + latestSchema: configSchemaV0, + migrations, + name: HOSTS_CONFIG_FILE_NAME, + getConfigDirPath: (): Promise => projectRootDirPromise, + getSchemaDirPath: ensureFluenceDir, + validate: getValidate(workersConfig), +}); + +export const initHostsConfig = ( + fluenceConfig: FluenceConfigReadonly, + workersConfig: WorkersConfigReadonly +) => + getConfigInitFunction( + getInitConfigOptions(workersConfig), + getDefault(fluenceConfig) + )(); +export const initReadonlyHostsConfig = ( + fluenceConfig: FluenceConfigReadonly, + workersConfig: WorkersConfigReadonly +) => + getReadonlyConfigInitFunction( + getInitConfigOptions(workersConfig), + getDefault(fluenceConfig) + )(); + +export const hostsSchema: JSONSchemaType = configSchemaV0; diff --git a/src/lib/configs/project/workers.ts b/src/lib/configs/project/workers.ts new file mode 100644 index 000000000..5feabe28d --- /dev/null +++ b/src/lib/configs/project/workers.ts @@ -0,0 +1,159 @@ +/** + * Copyright 2022 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import oclifColor from "@oclif/color"; +const color = oclifColor.default; +import type { JSONSchemaType } from "ajv"; + +import { + DEFAULT_WORKER_NAME, + FLUENCE_CONFIG_FILE_NAME, + TOP_LEVEL_SCHEMA_ID, + WORKERS_CONFIG_FILE_NAME, +} from "../../const.js"; +import { ensureFluenceDir, projectRootDirPromise } from "../../paths.js"; +import { + getConfigInitFunction, + InitializedConfig, + InitializedReadonlyConfig, + getReadonlyConfigInitFunction, + Migrations, + InitConfigOptions, + ConfigValidateFunction, +} from "../initConfig.js"; + +import type { FluenceConfigReadonly } from "./fluence.js"; + +type ConfigV0 = { + version: 0; + workers: Record< + string, + { + services: Array; + } + >; +}; + +const configSchemaV0 = { + $id: `${TOP_LEVEL_SCHEMA_ID}/${WORKERS_CONFIG_FILE_NAME}`, + title: WORKERS_CONFIG_FILE_NAME, + description: + "Defines workers and what they consist of. Currently worker includes a set of services that you want to deploy on a particular peer", + type: "object", + properties: { + workers: { + description: + "A Map with worker names as keys and worker configs as values", + type: "object", + additionalProperties: { + type: "object", + description: "Worker config", + properties: { + services: { + description: `An array of service names include in this worker. Service names must be listed in ${FLUENCE_CONFIG_FILE_NAME}`, + type: "array", + items: { type: "string" }, + }, + }, + required: ["services"], + }, + required: [], + }, + version: { type: "number", enum: [0] }, + }, + required: ["version", "workers"], +} as const satisfies JSONSchemaType; + +const migrations: Migrations = []; + +type Config = ConfigV0; +type LatestConfig = ConfigV0; +export type WorkersConfig = InitializedConfig; +export type WorkersConfigReadonly = InitializedReadonlyConfig; + +const getDefault = (): LatestConfig => ({ + version: 0, + workers: { + [DEFAULT_WORKER_NAME]: { + services: [], + }, + }, +}); + +const getValidate = + ( + fluenceConfig: FluenceConfigReadonly + ): ConfigValidateFunction => + (config): ReturnType> => { + if (config.workers === undefined) { + return true; + } + + const servicesSet = new Set( + Object.keys(fluenceConfig.services ?? {}).flatMap( + (serviceName) => serviceName + ) + ); + + return Object.entries(config.workers).reduce( + (acc, [workerName, workerConfig]) => { + const servicesNotListedInFluenceYAML = workerConfig.services.filter( + (serviceName) => !servicesSet.has(serviceName) + ); + + if (servicesNotListedInFluenceYAML.length === 0) { + return acc; + } + + const errorMessage = `Worker ${color.yellow( + workerName + )} has services that are not listed in ${FLUENCE_CONFIG_FILE_NAME}: ${color.yellow( + servicesNotListedInFluenceYAML.join(",") + )}`; + + if (typeof acc === "string") { + return `${acc}\n${errorMessage}`; + } + + return errorMessage; + }, + true + ); + }; + +export const getInitConfigOptions = ( + fluenceConfig: FluenceConfigReadonly +): InitConfigOptions => ({ + allSchemas: [configSchemaV0], + latestSchema: configSchemaV0, + migrations, + name: WORKERS_CONFIG_FILE_NAME, + getConfigDirPath: (): Promise => projectRootDirPromise, + getSchemaDirPath: ensureFluenceDir, + validate: getValidate(fluenceConfig), +}); + +export const initWorkersConfig = (fluenceConfig: FluenceConfigReadonly) => + getConfigInitFunction(getInitConfigOptions(fluenceConfig), getDefault)(); +export const initReadonlyWorkersConfig = ( + fluenceConfig: FluenceConfigReadonly +) => + getReadonlyConfigInitFunction( + getInitConfigOptions(fluenceConfig), + getDefault + )(); + +export const workersSchema: JSONSchemaType = configSchemaV0; diff --git a/src/lib/const.ts b/src/lib/const.ts index 5373438a9..c036e0ce0 100644 --- a/src/lib/const.ts +++ b/src/lib/const.ts @@ -20,6 +20,7 @@ import { Flags } from "@oclif/core"; import { aquaComment, jsComment } from "./helpers/comment.js"; import { jsonStringify } from "./helpers/jsonStringify.js"; import { local } from "./localNodes.js"; +import type { FluenceEnv } from "./multiaddres.js"; import { FLUENCE_ENV } from "./setupEnvironment.js"; export const AQUA_RECOMMENDED_VERSION = "0.9.4"; @@ -85,6 +86,7 @@ export const SRC_DIR_NAME = "src"; export const TS_DIR_NAME = "ts"; export const JS_DIR_NAME = "js"; export const TMP_DIR_NAME = "tmp"; +export const TMP_SERVICES_DIR_NAME = "services"; export const VSCODE_DIR_NAME = ".vscode"; export const NODE_MODULES_DIR_NAME = "node_modules"; export const AQUA_DIR_NAME = "aqua"; @@ -98,6 +100,9 @@ export const DOT_BIN_DIR_NAME = ".bin"; export const COUNTLY_DIR_NAME = "countly"; export const FLUENCE_CONFIG_FILE_NAME = `fluence.${YAML_EXT}`; +export const WORKERS_CONFIG_FILE_NAME = `workers.${YAML_EXT}`; +export const HOSTS_CONFIG_FILE_NAME = `hosts.${YAML_EXT}`; +export const DEPLOYED_CONFIG_FILE_NAME = `deployed.${YAML_EXT}`; export const FLUENCE_LOCK_CONFIG_FILE_NAME = `fluence-lock.${YAML_EXT}`; export const PROJECT_SECRETS_CONFIG_FILE_NAME = `project-secrets.${YAML_EXT}`; export const USER_SECRETS_CONFIG_FILE_NAME = `user-secrets.${YAML_EXT}`; @@ -140,6 +145,7 @@ export const TOP_LEVEL_SCHEMA_ID = "https://fluence.dev/schemas"; export const AUTO_GENERATED = "auto-generated"; export const DEFAULT_DEPLOY_NAME = "default"; +export const DEFAULT_WORKER_NAME = "defaultWorker"; export const KEY_PAIR_FLAG_NAME = "key-pair-name"; export const KEY_PAIR_FLAG = { @@ -387,7 +393,9 @@ const PEERS = { stage: getPeersImportStatement("stage"), testnet: getPeersImportStatement("testNet"), local: `const ${NODES_CONST} = ${jsonStringify(local)}`, -}[process.env[FLUENCE_ENV]]; + // This typescript error happens only when running config docs generation script that's why type assertion is used + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions, @typescript-eslint/no-unnecessary-type-assertion +}[process.env[FLUENCE_ENV] as FluenceEnv]; export const TEMPLATE_INDEX_FILE_CONTENT = `${DISABLE_TS_AND_ES_LINT} import { Fluence } from "@fluencelabs/fluence"; diff --git a/src/lib/countly.ts b/src/lib/countly.ts index 376557270..9b7933d32 100644 --- a/src/lib/countly.ts +++ b/src/lib/countly.ts @@ -20,10 +20,10 @@ import Countly from "countly-sdk-nodejs"; import { sessionEndPromise, isCountlyInited } from "../countlyInterceptor.js"; +import { commandObj } from "./commandObj.js"; import type { FluenceConfig } from "./configs/project/fluence.js"; import type { UserConfig } from "./configs/user/config.js"; import { IS_DEVELOPMENT } from "./const.js"; -import { commandObj } from "./lifecyle.js"; import { ensureDir, getUserCountlyDir } from "./paths.js"; type InitCountlyArgs = { diff --git a/src/lib/helpers/aquaImports.ts b/src/lib/helpers/aquaImports.ts index c7b89e567..fac0d4700 100644 --- a/src/lib/helpers/aquaImports.ts +++ b/src/lib/helpers/aquaImports.ts @@ -19,7 +19,7 @@ import path from "node:path"; import type { JSONSchemaType } from "ajv"; -import { ajv } from "../ajv.js"; +import { ajv } from "../ajvInstance.js"; import type { FluenceConfig } from "../configs/project/fluence.js"; import type { FluenceLockConfig } from "../configs/project/fluenceLock.js"; import { diff --git a/src/lib/helpers/downloadFile.ts b/src/lib/helpers/downloadFile.ts index 8a88be088..cb949d017 100644 --- a/src/lib/helpers/downloadFile.ts +++ b/src/lib/helpers/downloadFile.ts @@ -22,11 +22,12 @@ import oclifColor from "@oclif/color"; const color = oclifColor.default; import decompress from "decompress"; import filenamify from "filenamify"; -import fetch from "node-fetch"; +import nodeFetch from "node-fetch"; +const fetch = nodeFetch.default; +import { commandObj } from "../commandObj.js"; import { MODULE_TYPE_RUST } from "../configs/project/module.js"; import { WASM_EXT } from "../const.js"; -import { commandObj } from "../lifecyle.js"; import { ensureFluenceModulesDir, ensureFluenceServicesDir } from "../paths.js"; import { input } from "../prompt.js"; diff --git a/src/lib/helpers/ensureFluenceProject.ts b/src/lib/helpers/ensureFluenceProject.ts index 0aa13eb6c..d9d9d6eee 100644 --- a/src/lib/helpers/ensureFluenceProject.ts +++ b/src/lib/helpers/ensureFluenceProject.ts @@ -14,12 +14,12 @@ * limitations under the License. */ +import { commandObj, isInteractive } from "../commandObj.js"; import { FluenceConfig, initFluenceConfig, } from "../configs/project/fluence.js"; import { init } from "../init.js"; -import { commandObj, isInteractive } from "../lifecyle.js"; import { confirm } from "../prompt.js"; export const ensureFluenceProject = async (): Promise => { diff --git a/src/lib/helpers/package.ts b/src/lib/helpers/package.ts index 837e86017..65622c939 100644 --- a/src/lib/helpers/package.ts +++ b/src/lib/helpers/package.ts @@ -18,6 +18,7 @@ import assert from "node:assert"; import { access, mkdir, rename } from "node:fs/promises"; import { join } from "node:path"; +import { commandObj } from "../commandObj.js"; import type { FluenceConfig } from "../configs/project/fluence.js"; import { defaultFluenceLockConfig, @@ -25,7 +26,6 @@ import { initNewReadonlyFluenceLockConfig, } from "../configs/project/fluenceLock.js"; import { fluenceCargoDependencies, fluenceNPMDependencies } from "../const.js"; -import { commandObj } from "../lifecyle.js"; import { ensureUserFluenceCargoDir, ensureUserFluenceNpmDir, diff --git a/src/lib/init.ts b/src/lib/init.ts index 5e9c0938d..3f5cd638e 100644 --- a/src/lib/init.ts +++ b/src/lib/init.ts @@ -21,7 +21,7 @@ import { color } from "@oclif/color"; import type { JSONSchemaType } from "ajv"; import Countly from "countly-sdk-nodejs"; -import { ajv } from "../lib/ajv.js"; +import { ajv } from "../lib/ajvInstance.js"; import { FluenceConfig, initNewFluenceConfig, @@ -58,7 +58,9 @@ import { } from "../lib/paths.js"; import { input, list } from "../lib/prompt.js"; -import { commandObj, isInteractive } from "./lifecyle.js"; +import { commandObj, isInteractive } from "./commandObj.js"; +import { initReadonlyHostsConfig } from "./configs/project/hosts.js"; +import { initReadonlyWorkersConfig } from "./configs/project/workers.js"; const selectTemplate = (): Promise