diff --git a/.cspell.json b/.cspell.json index 5eb847a036..c87caa07e2 100644 --- a/.cspell.json +++ b/.cspell.json @@ -92,6 +92,7 @@ "secio", "seckey", "secp", + "sharded", "sscanf", "staticnode", "statusim", @@ -113,6 +114,7 @@ "waku", "wakuconnect", "wakunode", + "wakuorg", "wakuv", "webfonts", "websockets", diff --git a/.eslintrc.json b/.eslintrc.json index 581318c79c..6c080bae8f 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -49,6 +49,7 @@ "**/*.spec.ts", "**/tests/**", "**/rollup.config.js", + "**/playwright.config.ts", "**/.eslintrc.cjs", "**/karma.conf.cjs" ] diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c40df19a1e..12c68b284b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ on: workflow_dispatch: inputs: nim_wakunode_image: - description: "Docker hub image name taken from https://hub.docker.com/r/statusteam/nim-waku/tags. Format: statusteam/nim-waku:v0.19.0" + description: "Docker hub image name taken from https://hub.docker.com/r/wakuorg/nwaku/tags. Format: wakuorg/nwaku:v0.20.0" required: false type: string @@ -64,32 +64,33 @@ jobs: with: node-version: ${{ env.NODE_JS }} - uses: ./.github/actions/npm + - run: npx playwright install --with-deps - run: npm run build:esm - run: npm run test:browser node: uses: ./.github/workflows/test-node.yml with: - nim_wakunode_image: ${{ inputs.nim_wakunode_image || 'statusteam/nim-waku:v0.19.0' }} + nim_wakunode_image: ${{ inputs.nim_wakunode_image || 'wakuorg/nwaku:v0.20.0' }} test_type: node node_optional: uses: ./.github/workflows/test-node.yml with: - nim_wakunode_image: ${{ inputs.nim_wakunode_image || 'statusteam/nim-waku:v0.19.0' }} + nim_wakunode_image: ${{ inputs.nim_wakunode_image || 'wakuorg/nwaku:v0.20.0' }} test_type: node-optional node_with_go_waku_master: uses: ./.github/workflows/test-node.yml with: - nim_wakunode_image: statusteam/go-waku:latest + nim_wakunode_image: wakuorg/go-waku:latest test_type: go-waku-master debug: waku* node_with_nwaku_master: uses: ./.github/workflows/test-node.yml with: - nim_wakunode_image: statusteam/nim-waku:deploy-wakuv2-test + nim_wakunode_image: wakuorg/nwaku:deploy-wakuv2-test test_type: nwaku-master debug: waku* diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml new file mode 100644 index 0000000000..2491d2bb15 --- /dev/null +++ b/.github/workflows/playwright.yml @@ -0,0 +1,40 @@ +name: Playwright tests + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + NODE_JS: "18" + EXAMPLE_TEMPLATE: "web-chat" + EXAMPLE_NAME: "example" + EXAMPLE_PORT: "8080" + # Firefox in container fails due to $HOME not being owned by user running commands + # more details https://github.com/microsoft/playwright/issues/6500 + HOME: "/root" + +jobs: + test: + timeout-minutes: 60 + runs-on: ubuntu-latest + container: + image: mcr.microsoft.com/playwright:v1.38.0-jammy + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: ${{ env.NODE_JS }} + + - uses: ./.github/actions/npm + + - name: Run Playwright tests + run: npm run test --workspace=@waku/browser-tests + + - uses: actions/upload-artifact@v3 + if: always() + with: + name: playwright-report + path: playwright-report/ + retention-days: 30 diff --git a/.github/workflows/test-node.yml b/.github/workflows/test-node.yml index 68be2f49c7..67071881c9 100644 --- a/.github/workflows/test-node.yml +++ b/.github/workflows/test-node.yml @@ -1,7 +1,12 @@ +# WARNING: This workflow is used by upstream workflows (jswaku, nwaku, gowaku) via workflow_call. +# DO NOT modify the name, inputs, or other parts of this workflow that might break upstream CI. + name: Run Test on: workflow_call: + # IMPORTANT: Do not change the name or properties of these inputs. + # If you add new required inputs make sure that they have default value or you make the change upstream as well inputs: nim_wakunode_image: required: true @@ -16,6 +21,7 @@ on: env: NODE_JS: "18" + # Ensure test type conditions remain consistent. WAKU_SERVICE_NODE_PARAMS: ${{ (inputs.test_type == 'go-waku-master') && '--min-relay-peers-to-publish=0' || '' }} DEBUG: ${{ inputs.debug }} diff --git a/.gitignore b/.gitignore index 038613d5b3..c568f60ee6 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,6 @@ coverage *.log *.tsbuildinfo docs +test-results +playwright-report +example diff --git a/README.md b/README.md index 01841edf79..204d78181a 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ A TypeScript implementation of the [Waku v2 protocol](https://rfc.vac.dev/spec/1 ## Documentation -- [Quick start](https://docs.waku.org/guides/js-waku/quick-start) +- [Quick start](https://docs.waku.org/guides/js-waku/#getting-started) - [Full documentation](https://docs.waku.org/guides/js-waku) - [API documentation (`master` branch)](https://js.waku.org/) - [Waku](https://waku.org/) diff --git a/karma.conf.cjs b/karma.conf.cjs new file mode 100644 index 0000000000..dcdf6e3694 --- /dev/null +++ b/karma.conf.cjs @@ -0,0 +1,49 @@ +const webpack = require("webpack"); +const playwright = require('playwright'); + +process.env.CHROME_BIN = playwright.chromium.executablePath(); +process.env.FIREFOX_BIN = playwright.firefox.executablePath(); + +module.exports = function (config) { + config.set({ + frameworks: ["webpack", "mocha"], + files: ["src/**/!(node).spec.ts"], + preprocessors: { + "src/**/!(node).spec.ts": ["webpack"] + }, + envPreprocessor: ["CI"], + reporters: ["progress"], + browsers: ["ChromeHeadless", "FirefoxHeadless"], + singleRun: true, + client: { + mocha: { + timeout: 6000 // Default is 2s + } + }, + webpack: { + mode: "development", + module: { + rules: [{ test: /\.([cm]?ts|tsx)$/, loader: "ts-loader" }] + }, + plugins: [ + new webpack.DefinePlugin({ + "process.env.CI": process.env.CI || false, + "process.env.DISPLAY": "Browser", + }), + new webpack.ProvidePlugin({ + process: "process/browser.js" + }) + ], + resolve: { + extensions: [".ts", ".tsx", ".js"], + extensionAlias: { + ".js": [".js", ".ts"], + ".cjs": [".cjs", ".cts"], + ".mjs": [".mjs", ".mts"] + } + }, + stats: { warnings: false }, + devtool: "inline-source-map" + } + }); +}; diff --git a/package-lock.json b/package-lock.json index 6e433aaeda..6a2f998419 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,12 +18,13 @@ "packages/message-encryption", "packages/sdk", "packages/tests", + "packages/browser-tests", "packages/build-utils" ], "devDependencies": { "@size-limit/preset-big-lib": "^8.2.4", - "@typescript-eslint/eslint-plugin": "^6.2.1", - "@typescript-eslint/parser": "^6.0.0", + "@typescript-eslint/eslint-plugin": "^6.6.0", + "@typescript-eslint/parser": "^6.6.0", "eslint": "^8.47.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-eslint-comments": "^3.2.0", @@ -32,10 +33,19 @@ "eslint-plugin-prettier": "^5.0.0", "gh-pages": "^5.0.0", "husky": "^8.0.3", - "lint-staged": "^13.2.2", - "size-limit": "^8.1.2", - "typedoc": "^0.23.26", - "typedoc-plugin-resolve-crossmodule-references": "^0.3.3" + "karma": "^6.4.2", + "karma-chrome-launcher": "^3.2.0", + "karma-firefox-launcher": "^2.1.2", + "karma-mocha": "^2.0.1", + "karma-webkit-launcher": "^2.1.0", + "karma-webpack": "^5.0.0", + "lint-staged": "^14.0.1", + "playwright": "^1.38.1", + "size-limit": "^9.0.0", + "ts-loader": "^9.4.2", + "ts-node": "^10.9.1", + "typedoc": "^0.25.1", + "typescript": "^5.2.2" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -46,12 +56,12 @@ } }, "node_modules/@achingbrain/nat-port-mapper": { - "version": "1.0.9", + "version": "1.0.11", "license": "Apache-2.0 OR MIT", "dependencies": { "@achingbrain/ssdp": "^4.0.1", - "@libp2p/logger": "^2.0.0", - "default-gateway": "^6.0.2", + "@libp2p/logger": "^3.0.0", + "default-gateway": "^7.2.2", "err-code": "^3.0.1", "it-first": "^3.0.1", "p-defer": "^4.0.0", @@ -107,26 +117,16 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.10", + "version": "7.22.13", "license": "MIT", "dependencies": { - "@babel/highlight": "^7.22.10", + "@babel/highlight": "^7.22.13", "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/code-frame/node_modules/chalk": { "version": "2.4.2", "license": "MIT", @@ -139,17 +139,13 @@ "node": ">=4" } }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", "license": "MIT", - "dependencies": { - "color-name": "1.1.3" + "engines": { + "node": ">=0.8.0" } }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, "node_modules/@babel/code-frame/node_modules/has-flag": { "version": "3.0.0", "license": "MIT", @@ -168,30 +164,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.22.9", + "version": "7.22.20", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.22.10", + "version": "7.22.20", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.10", - "@babel/generator": "^7.22.10", - "@babel/helper-compilation-targets": "^7.22.10", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helpers": "^7.22.10", - "@babel/parser": "^7.22.10", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.10", - "@babel/types": "^7.22.10", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.22.20", + "@babel/helpers": "^7.22.15", + "@babel/parser": "^7.22.16", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.22.20", + "@babel/types": "^7.22.19", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", + "json5": "^2.2.3", "semver": "^6.3.1" }, "engines": { @@ -203,7 +199,7 @@ } }, "node_modules/@babel/core/node_modules/@babel/parser": { - "version": "7.22.10", + "version": "7.22.16", "license": "MIT", "bin": { "parser": "bin/babel-parser.js" @@ -212,6 +208,42 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/core/node_modules/@babel/traverse": { + "version": "7.22.20", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.16", + "@babel/types": "^7.22.19", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/globals": { + "version": "11.12.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.3", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "license": "ISC", @@ -220,10 +252,10 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.10", + "version": "7.22.15", "license": "MIT", "dependencies": { - "@babel/types": "^7.22.10", + "@babel/types": "^7.22.15", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -232,6 +264,14 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.22.5", "license": "MIT", @@ -243,21 +283,21 @@ } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.10", + "version": "7.22.15", "license": "MIT", "dependencies": { - "@babel/types": "^7.22.10" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.10", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", "browserslist": "^4.21.9", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -285,13 +325,13 @@ "license": "ISC" }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.10", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-replace-supers": "^7.22.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -313,7 +353,7 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.9", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", @@ -349,7 +389,7 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", + "version": "7.22.20", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -377,34 +417,34 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.9", + "version": "7.22.20", "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-simple-access": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -431,12 +471,12 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.9", + "version": "7.22.20", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.9" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -446,11 +486,11 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.9", + "version": "7.22.20", "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { @@ -498,48 +538,84 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", + "version": "7.22.20", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.10", + "version": "7.22.20", "license": "MIT", "dependencies": { "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.10" + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.22.10", + "version": "7.22.15", "license": "MIT", "dependencies": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.10", - "@babel/types": "^7.22.10" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.22.10", + "node_modules/@babel/helpers/node_modules/@babel/parser": { + "version": "7.22.16", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/traverse": { + "version": "7.22.20", "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.16", + "@babel/types": "^7.22.19", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers/node_modules/globals": { + "version": "11.12.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.20", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, @@ -547,16 +623,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", "license": "MIT", @@ -569,17 +635,13 @@ "node": ">=4" } }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", "license": "MIT", - "dependencies": { - "color-name": "1.1.3" + "engines": { + "node": ">=0.8.0" } }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "license": "MIT", @@ -598,7 +660,7 @@ } }, "node_modules/@babel/parser": { - "version": "7.16.4", + "version": "7.22.5", "license": "MIT", "bin": { "parser": "bin/babel-parser.js" @@ -638,7 +700,7 @@ } }, "node_modules/@babel/plugin-proposal-export-default-from": { - "version": "7.22.5", + "version": "7.22.17", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -837,7 +899,7 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.10", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -850,16 +912,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.6", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, @@ -892,7 +954,7 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.10", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -933,7 +995,7 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -974,10 +1036,10 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" }, @@ -1002,7 +1064,7 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1028,14 +1090,14 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -1085,10 +1147,10 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.22.10", + "version": "7.22.15", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "babel-plugin-polyfill-corejs2": "^0.4.5", "babel-plugin-polyfill-corejs3": "^0.8.3", @@ -1163,11 +1225,11 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.10", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.10", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-typescript": "^7.22.5" }, @@ -1197,7 +1259,7 @@ "license": "MIT" }, "node_modules/@babel/runtime": { - "version": "7.22.10", + "version": "7.22.15", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -1207,19 +1269,19 @@ } }, "node_modules/@babel/template": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template/node_modules/@babel/parser": { - "version": "7.22.10", + "version": "7.22.16", "license": "MIT", "bin": { "parser": "bin/babel-parser.js" @@ -1229,17 +1291,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.22.10", + "version": "7.22.5", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.10", - "@babel/generator": "^7.22.10", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.10", - "@babel/types": "^7.22.10", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1247,16 +1309,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/@babel/parser": { - "version": "7.22.10", - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", "license": "MIT", @@ -1265,11 +1317,11 @@ } }, "node_modules/@babel/types": { - "version": "7.22.10", + "version": "7.22.19", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.19", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1314,47 +1366,28 @@ } }, "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/crypto": { - "version": "2.0.2", + "version": "2.0.4", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^0.1.1", - "@noble/ed25519": "^1.6.0", - "@noble/secp256k1": "^1.5.4", + "@libp2p/interface": "^0.1.2", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", "multiformats": "^12.0.1", "node-forge": "^1.1.0", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", - "uint8arrays": "^4.0.4" - } - }, - "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/logger": { - "version": "3.0.1", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^0.1.1", - "@multiformats/multiaddr": "^12.1.3", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "node_modules/@chainsafe/libp2p-gossipsub/node_modules/multiformats": { - "version": "12.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "uint8arrays": "^4.0.6" } }, "node_modules/@chainsafe/libp2p-noise": { - "version": "13.0.0", + "version": "13.0.1", "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/crypto": "^2.0.0", "@libp2p/interface": "^0.1.0", "@libp2p/logger": "^3.0.0", "@libp2p/peer-id": "^3.0.0", - "@noble/ciphers": "^0.1.4", + "@noble/ciphers": "^0.3.0", "@noble/curves": "^1.1.0", "@noble/hashes": "^1.3.1", "it-byte-stream": "^1.0.0", @@ -1373,44 +1406,17 @@ } }, "node_modules/@chainsafe/libp2p-noise/node_modules/@libp2p/crypto": { - "version": "2.0.2", + "version": "2.0.4", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^0.1.1", - "@noble/ed25519": "^1.6.0", - "@noble/secp256k1": "^1.5.4", + "@libp2p/interface": "^0.1.2", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", "multiformats": "^12.0.1", "node-forge": "^1.1.0", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", - "uint8arrays": "^4.0.4" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/@libp2p/logger": { - "version": "3.0.1", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^0.1.1", - "@multiformats/multiaddr": "^12.1.3", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/it-stream-types": { - "version": "2.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/multiformats": { - "version": "12.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "uint8arrays": "^4.0.6" } }, "node_modules/@chainsafe/netmask": { @@ -1428,16 +1434,15 @@ } }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-7.3.2.tgz", - "integrity": "sha512-mmb9gi2/jTj983ijgVsdsQ4FM5Bv/lKslgJt4jDUm6SOtQYW4geCJNl5/MbMzcMQUWSJouS0w4C55AyrJmq0iw==", + "version": "7.3.6", "dev": true, + "license": "MIT", "dependencies": { "@cspell/dict-ada": "^4.0.2", "@cspell/dict-aws": "^4.0.0", "@cspell/dict-bash": "^4.1.1", - "@cspell/dict-companies": "^3.0.20", - "@cspell/dict-cpp": "^5.0.4", + "@cspell/dict-companies": "^3.0.22", + "@cspell/dict-cpp": "^5.0.5", "@cspell/dict-cryptocurrencies": "^4.0.0", "@cspell/dict-csharp": "^4.0.2", "@cspell/dict-css": "^4.0.7", @@ -1464,17 +1469,17 @@ "@cspell/dict-latex": "^4.0.0", "@cspell/dict-lorem-ipsum": "^4.0.0", "@cspell/dict-lua": "^4.0.1", - "@cspell/dict-node": "^4.0.2", + "@cspell/dict-node": "^4.0.3", "@cspell/dict-npm": "^5.0.8", "@cspell/dict-php": "^4.0.2", "@cspell/dict-powershell": "^5.0.2", "@cspell/dict-public-licenses": "^2.0.3", - "@cspell/dict-python": "^4.1.7", + "@cspell/dict-python": "^4.1.8", "@cspell/dict-r": "^2.0.1", "@cspell/dict-ruby": "^5.0.0", "@cspell/dict-rust": "^4.0.1", "@cspell/dict-scala": "^5.0.0", - "@cspell/dict-software-terms": "^3.2.2", + "@cspell/dict-software-terms": "^3.2.3", "@cspell/dict-sql": "^2.1.1", "@cspell/dict-svelte": "^1.0.2", "@cspell/dict-swift": "^2.0.1", @@ -1486,31 +1491,28 @@ } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-7.3.2.tgz", - "integrity": "sha512-5j1CX2OXkQGO3ljMBzfHjDzEiixodjfxVGR3VKkQX1vxTUMTIkPgt4BsgOVCQtqTiO21Dd2Bzn+H0/Jf4OL37g==", + "version": "7.3.6", "dev": true, + "license": "MIT", "dependencies": { - "@cspell/cspell-types": "7.3.2" + "@cspell/cspell-types": "7.3.6" }, "engines": { "node": ">=16" } }, "node_modules/@cspell/cspell-pipe": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-7.3.2.tgz", - "integrity": "sha512-ZKOkb6IxuEXRXtjVAlZ41+4SXhyiGqrQ3FW16iZlCbM9Mp9WJAw2MOVh6wvpXmfKcM5/3jK1A4rFylB7b0QBHw==", + "version": "7.3.6", "dev": true, + "license": "MIT", "engines": { "node": ">=16" } }, "node_modules/@cspell/cspell-resolver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-7.3.2.tgz", - "integrity": "sha512-3gvZPlYLkjuPezF2VyCVurEJiJnb3sbr32Jp3MfvpO7x026RXMbetkdH87MKoiSAThxSiyG+qi/jvUeDYY/Wtg==", + "version": "7.3.6", "dev": true, + "license": "MIT", "dependencies": { "global-dirs": "^3.0.1" }, @@ -1519,319 +1521,268 @@ } }, "node_modules/@cspell/cspell-service-bus": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-7.3.2.tgz", - "integrity": "sha512-i2sPnUSsFJXc5afijbUsUtv1YEXyO8EbJbXV0kdE6KVu7I0CSMV8jprJaG3X1m5HE6lGftNcpLKLHjSlFOFvsA==", + "version": "7.3.6", "dev": true, + "license": "MIT", "engines": { "node": ">=16" } }, "node_modules/@cspell/cspell-types": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-7.3.2.tgz", - "integrity": "sha512-2lvRUfIgH9TvqGEDpuukuD6J84XPP8KFxR/qphtPZAzwg9SEpiagdN79eFlPe4ZI2xHNvwEsPDJUxuvxXu15wQ==", + "version": "7.3.6", "dev": true, + "license": "MIT", "engines": { "node": ">=16" } }, "node_modules/@cspell/dict-ada": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-ada/-/dict-ada-4.0.2.tgz", - "integrity": "sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-aws": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.0.tgz", - "integrity": "sha512-1YkCMWuna/EGIDN/zKkW+j98/55mxigftrSFgsehXhPld+ZMJM5J9UuBA88YfL7+/ETvBdd7mwW6IwWsC+/ltQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-bash": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.1.tgz", - "integrity": "sha512-8czAa/Mh96wu2xr0RXQEGMTBUGkTvYn/Pb0o+gqOO1YW+poXGQc3gx0YPqILDryP/KCERrNvkWUJz3iGbvwC2A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-companies": { - "version": "3.0.21", - "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.21.tgz", - "integrity": "sha512-u9b7qtCWYS728WqiJeAucJcjRs16Y1yGGwagS/w59SV25R0rXbXbPbQuX8wYDcaeIO8uRHGkbSWngx6O4qFoCQ==", - "dev": true + "version": "3.0.24", + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-cpp": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.0.4.tgz", - "integrity": "sha512-Vmz/CCb2d91ES5juaO8+CFWeTa2AFsbpR8bkCPJq+P8cRP16+37tY0zNXEBSK/1ur4MakaRf76jeQBijpZxw0Q==", - "dev": true + "version": "5.0.5", + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-cryptocurrencies": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-4.0.0.tgz", - "integrity": "sha512-EiZp91ATyRxTmauIQfOX9adLYCunKjHEh092rrM7o2eMXP9n7zpXAL9BK7LviL+LbB8VDOm21q+s83cKrrRrsg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-csharp": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-4.0.2.tgz", - "integrity": "sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-css": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.7.tgz", - "integrity": "sha512-NNlUTx/sYg+74kC0EtRewb7pjkEtPlIsu9JFNWAXa0JMTqqpQXqM3aEO4QJvUZFZF09bObeCAvzzxemAwxej7Q==", - "dev": true + "version": "4.0.8", + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-dart": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-dart/-/dict-dart-2.0.3.tgz", - "integrity": "sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-data-science": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-1.0.11.tgz", - "integrity": "sha512-TaHAZRVe0Zlcc3C23StZqqbzC0NrodRwoSAc8dis+5qLeLLnOCtagYQeROQvDlcDg3X/VVEO9Whh4W/z4PAmYQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-django": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-4.1.0.tgz", - "integrity": "sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-docker": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.7.tgz", - "integrity": "sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-dotnet": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-5.0.0.tgz", - "integrity": "sha512-EOwGd533v47aP5QYV8GlSSKkmM9Eq8P3G/eBzSpH3Nl2+IneDOYOBLEUraHuiCtnOkNsz0xtZHArYhAB2bHWAw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-elixir": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-elixir/-/dict-elixir-4.0.3.tgz", - "integrity": "sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-en_us": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.7.tgz", - "integrity": "sha512-83V0XXqiXJvXa1pj5cVpviYKeLTN2Dxvouz8ullrwgcfPtY57pYBy+3ACVAMYK0eGByhRPc/xVXlIgv4o0BNZw==", - "dev": true + "version": "4.3.8", + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-en-common-misspellings": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-1.0.2.tgz", - "integrity": "sha512-jg7ZQZpZH7+aAxNBlcAG4tGhYF6Ksy+QS5Df73Oo+XyckBjC9QS+PrRwLTeYoFIgXy5j3ICParK5r3MSSoL4gw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-en-gb": { "version": "1.1.33", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb/-/dict-en-gb-1.1.33.tgz", - "integrity": "sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-filetypes": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.1.tgz", - "integrity": "sha512-8z8mY1IbrTyTRumx2vvD9yzRhNMk9SajM/GtI5hdMM2pPpNSp25bnuauzjRf300eqlqPY2MNb5MmhBFO014DJw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-fonts": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-4.0.0.tgz", - "integrity": "sha512-t9V4GeN/m517UZn63kZPUYP3OQg5f0OBLSd3Md5CU3eH1IFogSvTzHHnz4Wqqbv8NNRiBZ3HfdY/pqREZ6br3Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-fsharp": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-fsharp/-/dict-fsharp-1.0.0.tgz", - "integrity": "sha512-dHPkMHwW4dWv3Lv9VWxHuVm4IylqvcfRBSnZ7usJTRThraetSVrOPIJwr6UJh7F5un/lGJx2lxWVApf2WQaB/A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-fullstack": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.1.5.tgz", - "integrity": "sha512-6ppvo1dkXUZ3fbYn/wwzERxCa76RtDDl5Afzv2lijLoijGGUw5yYdLBKJnx8PJBGNLh829X352ftE7BElG4leA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-gaming-terms": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.0.4.tgz", - "integrity": "sha512-hbDduNXlk4AOY0wFxcDMWBPpm34rpqJBeqaySeoUH70eKxpxm+dvjpoRLJgyu0TmymEICCQSl6lAHTHSDiWKZg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-git": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-2.0.0.tgz", - "integrity": "sha512-n1AxyX5Kgxij/sZFkxFJlzn3K9y/sCcgVPg/vz4WNJ4K9YeTsUmyGLA2OQI7d10GJeiuAo2AP1iZf2A8j9aj2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-golang": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.2.tgz", - "integrity": "sha512-5pyZn4AAiYukAW+gVMIMVmUSkIERFrDX2vtPDjg8PLQUhAHWiVeQSDjuOhq9/C5GCCEZU/zWSONkGiwLBBvV9A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-haskell": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-haskell/-/dict-haskell-4.0.1.tgz", - "integrity": "sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-html": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.3.tgz", - "integrity": "sha512-Gae8i8rrArT0UyG1I6DHDK62b7Be6QEcBSIeWOm4VIIW1CASkN9B0qFgSVnkmfvnu1Y3H7SSaaEynKjdj3cs8w==", - "dev": true + "version": "4.0.4", + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-html-symbol-entities": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.0.tgz", - "integrity": "sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-java": { "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.5.tgz", - "integrity": "sha512-X19AoJgWIBwJBSWGFqSgHaBR/FEykBHTMjL6EqOnhIGEyE9nvuo32tsSHjXNJ230fQxQptEvRZoaldNLtKxsRg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-k8s": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.1.tgz", - "integrity": "sha512-gc5y4Nm3hVdMZNBZfU2M1AsAmObZsRWjCUk01NFPfGhFBXyVne41T7E62rpnzu5330FV/6b/TnFcPgRmak9lLw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-latex": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-4.0.0.tgz", - "integrity": "sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-lorem-ipsum": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-4.0.0.tgz", - "integrity": "sha512-1l3yjfNvMzZPibW8A7mQU4kTozwVZVw0AvFEdy+NcqtbxH+TvbSkNMqROOFWrkD2PjnKG0+Ea0tHI2Pi6Gchnw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-lua": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.1.tgz", - "integrity": "sha512-j0MFmeCouSoC6EdZTbvGe1sJ9V+ruwKSeF+zRkNNNload7R72Co5kX1haW2xLHGdlq0kqSy1ODRZKdVl0e+7hg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-node": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-4.0.2.tgz", - "integrity": "sha512-FEQJ4TnMcXEFslqBQkXa5HposMoCGsiBv2ux4IZuIXgadXeHKHUHk60iarWpjhzNzQLyN2GD7NoRMd12bK3Llw==", - "dev": true + "version": "4.0.3", + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-npm": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.8.tgz", - "integrity": "sha512-KuqH8tEsFD6DPKqKwIfWr9E+admE3yghaC0AKXG8jPaf77N0lkctKaS3dm0oxWUXkYKA/eXj6LCtz3VcTyxFPg==", - "dev": true + "version": "5.0.9", + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-php": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.2.tgz", - "integrity": "sha512-7yglcmMoFHDPQXHW+9QAl8YjAToMm1qOi+4x/yGY1FSIEjZbCpjeDgyKMGg/NgpooQQceEN38AR59Pn23EDriA==", - "dev": true + "version": "4.0.3", + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-powershell": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.2.tgz", - "integrity": "sha512-IHfWLme3FXE7vnOmMncSBxOsMTdNWd1Vcyhag03WS8oANSgX8IZ+4lMI00mF0ptlgchf16/OU8WsV4pZfikEFw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-public-licenses": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.3.tgz", - "integrity": "sha512-JSLEdpEYufQ1H+93UHi+axlqQm1fhgK6kpdLHp6uPHu//CsvETcqNVawjB+qOdI/g38JTMw5fBqSd0aGNxa6Dw==", - "dev": true + "version": "2.0.4", + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-python": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.1.7.tgz", - "integrity": "sha512-8GkO7/w1QEpu4Y1GTHGYHrwfc/ZdiBRw7D/BGYCIiOoQPLi0YxMke7wzRC3j246yrzLt28ntDBjr4fB3+uFZtQ==", + "version": "4.1.8", "dev": true, + "license": "MIT", "dependencies": { "@cspell/dict-data-science": "^1.0.11" } }, "node_modules/@cspell/dict-r": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-r/-/dict-r-2.0.1.tgz", - "integrity": "sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-ruby": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.0.0.tgz", - "integrity": "sha512-ssb96QxLZ76yPqFrikWxItnCbUKhYXJ2owkoIYzUGNFl2CHSoHCb5a6Zetum9mQ/oUA3gNeUhd28ZUlXs0la2A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-rust": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.1.tgz", - "integrity": "sha512-xJSSzHDK2z6lSVaOmMxl3PTOtfoffaxMo7fTcbZUF+SCJzfKbO6vnN9TCGX2sx1RHFDz66Js6goz6SAZQdOwaw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-scala": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-5.0.0.tgz", - "integrity": "sha512-ph0twaRoV+ylui022clEO1dZ35QbeEQaKTaV2sPOsdwIokABPIiK09oWwGK9qg7jRGQwVaRPEq0Vp+IG1GpqSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-software-terms": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.2.2.tgz", - "integrity": "sha512-DmdS/qAyJVmKKku4ab89HVZhsvRIk84HoPUVIZ/zJhmuCO+LF45Ylzy1/7G32MYLjbG/o1Ze3UvbaE9HY4FKKA==", - "dev": true + "version": "3.3.0", + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-sql": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.1.1.tgz", - "integrity": "sha512-v1mswi9NF40+UDUMuI148YQPEQvWjac72P6ZsjlRdLjEiQEEMEsTQ+zlkIdnzC9QCNyJaqD5Liq9Mn78/8Zxtw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-svelte": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-svelte/-/dict-svelte-1.0.2.tgz", - "integrity": "sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-swift": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-swift/-/dict-swift-2.0.1.tgz", - "integrity": "sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-typescript": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.1.1.tgz", - "integrity": "sha512-N9vNJZoOXmmrFPR4ir3rGvnqqwmQGgOYoL1+y6D4oIhyr7FhaYiyF/d7QT61RmjZQcATMa6PSL+ZisCeRLx9+A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dict-vue": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-vue/-/dict-vue-3.0.0.tgz", - "integrity": "sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspell/dynamic-import": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-7.3.2.tgz", - "integrity": "sha512-G2ZBPC08X3lUQmHRobGdFYxb3oTSuSIfpW1P/oTMovqbuVoQh108W2WXv0Va40LVGkQD9OS31ZafHbcLELANeA==", + "version": "7.3.6", "dev": true, + "license": "MIT", "dependencies": { "import-meta-resolve": "^3.0.0" }, @@ -1840,10 +1791,9 @@ } }, "node_modules/@cspell/strong-weak-map": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-7.3.2.tgz", - "integrity": "sha512-Y2JL8A/CG37NnreVtU3DhvcOuYWNEAKUmOSU9NfBeOoptWwTMBvbNF5UbOpmZrf2BXc8OmdHIogIWHXYIESiyg==", + "version": "7.3.6", "dev": true, + "license": "MIT", "engines": { "node": ">=16" } @@ -1858,16 +1808,8 @@ "node": ">=12" } }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, "node_modules/@electron/get": { - "version": "2.0.2", + "version": "2.0.3", "license": "MIT", "dependencies": { "debug": "^4.1.1", @@ -1912,7 +1854,7 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.2", + "version": "0.19.3", "cpu": [ "arm64" ], @@ -1939,7 +1881,7 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.6.2", + "version": "4.8.1", "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -1967,7 +1909,7 @@ } }, "node_modules/@eslint/js": { - "version": "8.47.0", + "version": "8.49.0", "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2023,7 +1965,7 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", + "version": "0.11.11", "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -2064,21 +2006,6 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "license": "ISC", @@ -2107,6 +2034,17 @@ "node": ">=6" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { "version": "3.14.1", "license": "MIT", @@ -2118,6 +2056,39 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { "version": "1.0.3", "license": "BSD-3-Clause" @@ -2130,7 +2101,7 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", + "version": "0.3.3", "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", @@ -2142,7 +2113,7 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", + "version": "3.1.1", "license": "MIT", "engines": { "node": ">=6.0.0" @@ -2156,7 +2127,7 @@ } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.2", + "version": "0.3.5", "dev": true, "license": "MIT", "dependencies": { @@ -2165,15 +2136,15 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", + "version": "1.4.15", "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", + "version": "0.3.9", "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "node_modules/@jsdoc/salty": { @@ -2221,36 +2192,15 @@ "license": "MIT" }, "node_modules/@libp2p/bootstrap": { - "version": "9.0.2", + "version": "9.0.6", "dev": true, "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^0.1.1", - "@libp2p/logger": "^3.0.1", - "@libp2p/peer-id": "^3.0.1", + "@libp2p/interface": "^0.1.2", + "@libp2p/logger": "^3.0.2", + "@libp2p/peer-id": "^3.0.2", "@multiformats/mafmt": "^12.1.2", - "@multiformats/multiaddr": "^12.1.3" - } - }, - "node_modules/@libp2p/bootstrap/node_modules/@libp2p/logger": { - "version": "3.0.1", - "dev": true, - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^0.1.1", - "@multiformats/multiaddr": "^12.1.3", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "node_modules/@libp2p/bootstrap/node_modules/multiformats": { - "version": "12.0.1", - "dev": true, - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "@multiformats/multiaddr": "^12.1.5" } }, "node_modules/@libp2p/crypto": { @@ -2272,6 +2222,14 @@ "npm": ">=7.0.0" } }, + "node_modules/@libp2p/crypto/node_modules/multiformats": { + "version": "11.0.2", + "license": "Apache-2.0 OR MIT", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/@libp2p/interface": { "version": "0.1.2", "license": "Apache-2.0 OR MIT", @@ -2286,17 +2244,17 @@ } }, "node_modules/@libp2p/interface-compliance-tests": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/interface-compliance-tests/-/interface-compliance-tests-4.0.5.tgz", - "integrity": "sha512-KfCwz+vHwdXebWaG/nQLjDR3a1j6fh+fuGvr76RCD0ALjcexG2Sf4dU+tFmduIgkRND/Ir56bOLmKpWEVgGN4Q==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface-compliance-tests/-/interface-compliance-tests-4.1.0.tgz", + "integrity": "sha512-8h2rRws1zz6lF72rXcfa+xe91kjtwcRcJv8xxj8et5tGxq4mJiDUjOzBaEXjS6Vadf8BBMuHzWRGaloe9E6Mcw==", "dependencies": { "@libp2p/interface": "^0.1.2", - "@libp2p/interface-internal": "^0.1.4", + "@libp2p/interface-internal": "^0.1.5", "@libp2p/logger": "^3.0.2", "@libp2p/multistream-select": "^4.0.2", - "@libp2p/peer-collections": "^4.0.3", + "@libp2p/peer-collections": "^4.0.4", "@libp2p/peer-id": "^3.0.2", - "@libp2p/peer-id-factory": "^3.0.3", + "@libp2p/peer-id-factory": "^3.0.4", "@multiformats/multiaddr": "^12.1.5", "abortable-iterator": "^5.0.1", "aegir": "^40.0.11", @@ -2318,59 +2276,14 @@ "p-limit": "^4.0.0", "p-wait-for": "^5.0.2", "protons-runtime": "^5.0.0", - "sinon": "^15.1.2", + "sinon": "^16.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } }, - "node_modules/@libp2p/interface-compliance-tests/node_modules/@libp2p/logger": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.2.tgz", - "integrity": "sha512-2JtRGBXiGfm1t5XneUIXQ2JusW7QwyYmxsW7hSAYS5J73RQJUicpt5le5obVRt7+OM39ei+nWEuC6Xvm1ugHkw==", - "dependencies": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "node_modules/@libp2p/interface-compliance-tests/node_modules/it-stream-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", - "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-compliance-tests/node_modules/multiformats": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.0.tgz", - "integrity": "sha512-/qTOKKnU8nwcVURjRcS+UN0QYgdS5BPZzY10Aiciu2SqncyCVMGV8KtD83EBFmsuJDsSEmT4sGvzcTkCoMw0sQ==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-compliance-tests/node_modules/p-event": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.0.tgz", - "integrity": "sha512-Xbfxd0CfZmHLGKXH32k1JKjQYX6Rkv0UtQdaFJ8OyNcf+c0oWCeXHc1C4CX/IESZLmcvfPa5aFIO/vCr5gqtag==", - "dependencies": { - "p-timeout": "^6.1.2" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@libp2p/interface-compliance-tests/node_modules/p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -2383,8 +2296,7 @@ }, "node_modules/@libp2p/interface-compliance-tests/node_modules/yocto-queue": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -2393,45 +2305,17 @@ } }, "node_modules/@libp2p/interface-internal": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-0.1.4.tgz", - "integrity": "sha512-fRa8AUeCVOqfjgJgpIWupOsc7nAnJuI/VjWL2ZfRqbz7CPLD9c/ZAKXC140THSxlNdNQ9kGpo/C2z/yCGLy4ig==", + "version": "0.1.5", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^0.1.2", - "@libp2p/peer-collections": "^4.0.3", + "@libp2p/peer-collections": "^4.0.4", "@multiformats/multiaddr": "^12.1.5", "uint8arraylist": "^2.4.3" } }, "node_modules/@libp2p/interface-keys": { - "version": "1.0.7", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-id": { - "version": "2.0.2", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^11.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface/node_modules/it-stream-types": { - "version": "2.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface/node_modules/multiformats": { - "version": "12.0.1", + "version": "1.0.8", "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", @@ -2447,11 +2331,10 @@ } }, "node_modules/@libp2p/keychain": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-3.0.3.tgz", - "integrity": "sha512-mt3Pq8pPUDchoYlTXyNFMSIZ2/gbGZUJIr1qDQGphLZKxZ3Ejsqps2Dgo0t6yBxvJQ0581tXfptAXzw75Y2LIA==", + "version": "3.0.4", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^2.0.3", + "@libp2p/crypto": "^2.0.4", "@libp2p/interface": "^0.1.2", "@libp2p/logger": "^3.0.2", "@libp2p/peer-id": "^3.0.2", @@ -2462,9 +2345,8 @@ } }, "node_modules/@libp2p/keychain/node_modules/@libp2p/crypto": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.3.tgz", - "integrity": "sha512-VLhjdkJe8b/vedHp7SosDs62Yxq1i05Ej/YdVaEdWQdJsBRHCwbRlS4hPg3vm21U5hLF0g958r/927Vd/wamZw==", + "version": "2.0.4", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^0.1.2", "@noble/curves": "^1.1.0", @@ -2476,10 +2358,9 @@ "uint8arrays": "^4.0.6" } }, - "node_modules/@libp2p/keychain/node_modules/@libp2p/logger": { + "node_modules/@libp2p/logger": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.2.tgz", - "integrity": "sha512-2JtRGBXiGfm1t5XneUIXQ2JusW7QwyYmxsW7hSAYS5J73RQJUicpt5le5obVRt7+OM39ei+nWEuC6Xvm1ugHkw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^0.1.2", "@multiformats/multiaddr": "^12.1.5", @@ -2488,34 +2369,9 @@ "multiformats": "^12.0.1" } }, - "node_modules/@libp2p/keychain/node_modules/multiformats": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.1.tgz", - "integrity": "sha512-GBSToTmri2vJYs8wqcZQ8kB21dCaeTOzHTIAlr8J06C1eL6UbzqURXFZ5Fl0EYm9GAFz1IlYY8SxGOs9G9NJRg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/logger": { - "version": "2.1.1", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.2", - "@multiformats/multiaddr": "^12.1.3", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^11.0.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/mplex": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/mplex/-/mplex-9.0.5.tgz", - "integrity": "sha512-cwg8ueB7xzwQbWt2da/Q5oPsm/6wk1GwNiGBiUsvy75h3qr6b1RNDuFJYkCSySI4mLvdTrkvthJCXHQMAW4Tvg==", + "version": "9.0.6", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^0.1.2", "@libp2p/logger": "^3.0.2", @@ -2524,54 +2380,15 @@ "it-batched-bytes": "^2.0.2", "it-pushable": "^3.2.0", "it-stream-types": "^2.0.1", - "rate-limiter-flexible": "^2.3.11", + "rate-limiter-flexible": "^3.0.0", "uint8-varint": "^2.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } }, - "node_modules/@libp2p/mplex/node_modules/@libp2p/logger": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.2.tgz", - "integrity": "sha512-2JtRGBXiGfm1t5XneUIXQ2JusW7QwyYmxsW7hSAYS5J73RQJUicpt5le5obVRt7+OM39ei+nWEuC6Xvm1ugHkw==", - "dependencies": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "node_modules/@libp2p/mplex/node_modules/it-stream-types": { - "version": "2.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/mplex/node_modules/multiformats": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.1.tgz", - "integrity": "sha512-GBSToTmri2vJYs8wqcZQ8kB21dCaeTOzHTIAlr8J06C1eL6UbzqURXFZ5Fl0EYm9GAFz1IlYY8SxGOs9G9NJRg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/mplex/node_modules/uint8-varint": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-2.0.1.tgz", - "integrity": "sha512-euvmpuulJstK5+xNuI4S1KfnxJnbI5QP52RXIR3GZ3/ZMkOsEK2AgCtFpNvEQLXMxMx2o0qcyevK1fJwOZJagQ==", - "dependencies": { - "uint8arraylist": "^2.0.0", - "uint8arrays": "^4.0.2" - } - }, "node_modules/@libp2p/multistream-select": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-4.0.2.tgz", - "integrity": "sha512-Ss3kPD+1Z8RFLUT+oN9I2ynEtp/Yj2+rOngU1XjIxustg1nt5lq0kk9hvWJyBexzmuML0xCknNjUXovpRbFPgQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^0.1.2", "@libp2p/logger": "^3.0.2", @@ -2588,39 +2405,9 @@ "uint8arrays": "^4.0.6" } }, - "node_modules/@libp2p/multistream-select/node_modules/@libp2p/logger": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.2.tgz", - "integrity": "sha512-2JtRGBXiGfm1t5XneUIXQ2JusW7QwyYmxsW7hSAYS5J73RQJUicpt5le5obVRt7+OM39ei+nWEuC6Xvm1ugHkw==", - "dependencies": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "node_modules/@libp2p/multistream-select/node_modules/it-stream-types": { - "version": "2.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/multistream-select/node_modules/multiformats": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.0.tgz", - "integrity": "sha512-/qTOKKnU8nwcVURjRcS+UN0QYgdS5BPZzY10Aiciu2SqncyCVMGV8KtD83EBFmsuJDsSEmT4sGvzcTkCoMw0sQ==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/peer-collections": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-4.0.3.tgz", - "integrity": "sha512-ahfZFdRhApN4dulnzAvkzQsPVJVX7UID3QMKC/cduK5FYWqm7zbtW6bpwDilhZY3wvjvaQYs4R0KKSysvTPiQQ==", + "version": "4.0.4", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^0.1.2", "@libp2p/peer-id": "^3.0.2" @@ -2636,10 +2423,10 @@ } }, "node_modules/@libp2p/peer-id-factory": { - "version": "3.0.3", + "version": "3.0.4", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^2.0.3", + "@libp2p/crypto": "^2.0.4", "@libp2p/interface": "^0.1.2", "@libp2p/peer-id": "^3.0.2", "multiformats": "^12.0.1", @@ -2649,7 +2436,7 @@ } }, "node_modules/@libp2p/peer-id-factory/node_modules/@libp2p/crypto": { - "version": "2.0.3", + "version": "2.0.4", "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^0.1.2", @@ -2662,42 +2449,24 @@ "uint8arrays": "^4.0.6" } }, - "node_modules/@libp2p/peer-id-factory/node_modules/multiformats": { - "version": "12.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/peer-id/node_modules/multiformats": { - "version": "12.1.0", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/peer-record": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-6.0.3.tgz", - "integrity": "sha512-S5C4Df2uyX1vNsnduZ6RVjB7T+dUEhqnaSNhiv82VCoqMoniHQBf2ftvXlv/UqqssW9or1x4UwgFU+sL7kObkw==", + "version": "6.0.5", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^2.0.3", + "@libp2p/crypto": "^2.0.4", "@libp2p/interface": "^0.1.2", "@libp2p/peer-id": "^3.0.2", - "@libp2p/utils": "^4.0.2", + "@libp2p/utils": "^4.0.3", "@multiformats/multiaddr": "^12.1.5", "protons-runtime": "^5.0.0", - "uint8-varint": "^1.0.2", + "uint8-varint": "^2.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } }, "node_modules/@libp2p/peer-record/node_modules/@libp2p/crypto": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.3.tgz", - "integrity": "sha512-VLhjdkJe8b/vedHp7SosDs62Yxq1i05Ej/YdVaEdWQdJsBRHCwbRlS4hPg3vm21U5hLF0g958r/927Vd/wamZw==", + "version": "2.0.4", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^0.1.2", "@noble/curves": "^1.1.0", @@ -2709,26 +2478,16 @@ "uint8arrays": "^4.0.6" } }, - "node_modules/@libp2p/peer-record/node_modules/multiformats": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.1.tgz", - "integrity": "sha512-GBSToTmri2vJYs8wqcZQ8kB21dCaeTOzHTIAlr8J06C1eL6UbzqURXFZ5Fl0EYm9GAFz1IlYY8SxGOs9G9NJRg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/peer-store": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-9.0.3.tgz", - "integrity": "sha512-7vSAUvKAzzWRwcMxOUvyGNw8V59t9l9l1Ugxa+VHCKKhvAEn9eXjf8We8BLGT3KnUG6aJ5HpODPK4RbW6BNGfA==", + "version": "9.0.5", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^0.1.2", "@libp2p/logger": "^3.0.2", - "@libp2p/peer-collections": "^4.0.3", + "@libp2p/peer-collections": "^4.0.4", "@libp2p/peer-id": "^3.0.2", - "@libp2p/peer-id-factory": "^3.0.3", - "@libp2p/peer-record": "^6.0.3", + "@libp2p/peer-id-factory": "^3.0.4", + "@libp2p/peer-record": "^6.0.5", "@multiformats/multiaddr": "^12.1.5", "interface-datastore": "^8.2.0", "it-all": "^3.0.2", @@ -2739,37 +2498,16 @@ "uint8arrays": "^4.0.6" } }, - "node_modules/@libp2p/peer-store/node_modules/@libp2p/logger": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.2.tgz", - "integrity": "sha512-2JtRGBXiGfm1t5XneUIXQ2JusW7QwyYmxsW7hSAYS5J73RQJUicpt5le5obVRt7+OM39ei+nWEuC6Xvm1ugHkw==", - "dependencies": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "node_modules/@libp2p/peer-store/node_modules/multiformats": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.1.tgz", - "integrity": "sha512-GBSToTmri2vJYs8wqcZQ8kB21dCaeTOzHTIAlr8J06C1eL6UbzqURXFZ5Fl0EYm9GAFz1IlYY8SxGOs9G9NJRg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/pubsub": { - "version": "8.0.3", + "version": "8.0.6", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^2.0.2", - "@libp2p/interface": "^0.1.1", - "@libp2p/interface-internal": "^0.1.2", - "@libp2p/logger": "^3.0.1", - "@libp2p/peer-collections": "^4.0.2", - "@libp2p/peer-id": "^3.0.1", + "@libp2p/crypto": "^2.0.4", + "@libp2p/interface": "^0.1.2", + "@libp2p/interface-internal": "^0.1.5", + "@libp2p/logger": "^3.0.2", + "@libp2p/peer-collections": "^4.0.4", + "@libp2p/peer-id": "^3.0.2", "abortable-iterator": "^5.0.1", "it-length-prefixed": "^9.0.1", "it-pipe": "^3.0.1", @@ -2777,91 +2515,45 @@ "multiformats": "^12.0.1", "p-queue": "^7.3.4", "uint8arraylist": "^2.4.3", - "uint8arrays": "^4.0.4" + "uint8arrays": "^4.0.6" } }, "node_modules/@libp2p/pubsub/node_modules/@libp2p/crypto": { - "version": "2.0.2", + "version": "2.0.4", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^0.1.1", - "@noble/ed25519": "^1.6.0", - "@noble/secp256k1": "^1.5.4", + "@libp2p/interface": "^0.1.2", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", "multiformats": "^12.0.1", "node-forge": "^1.1.0", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", - "uint8arrays": "^4.0.4" - } - }, - "node_modules/@libp2p/pubsub/node_modules/@libp2p/logger": { - "version": "3.0.1", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^0.1.1", - "@multiformats/multiaddr": "^12.1.3", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "node_modules/@libp2p/pubsub/node_modules/multiformats": { - "version": "12.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "uint8arrays": "^4.0.6" } }, "node_modules/@libp2p/utils": { - "version": "4.0.2", + "version": "4.0.3", "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/is-ip": "^2.0.2", "@libp2p/interface": "^0.1.2", "@libp2p/logger": "^3.0.2", "@multiformats/multiaddr": "^12.1.5", + "@multiformats/multiaddr-matcher": "^1.0.1", "is-loopback-addr": "^2.0.1", "it-stream-types": "^2.0.1", "private-ip": "^3.0.0", "uint8arraylist": "^2.4.3" } }, - "node_modules/@libp2p/utils/node_modules/@libp2p/logger": { - "version": "3.0.2", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "node_modules/@libp2p/utils/node_modules/it-stream-types": { - "version": "2.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/utils/node_modules/multiformats": { - "version": "12.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/websockets": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-7.0.5.tgz", - "integrity": "sha512-2Dz4ETRk+ecF2nj1S/G5vSBrhXhuBrXIMAzpqzTM6L0TrEraGrJYyoYB15A+u7kA8xMbdRodyguB6ZLVatL5nw==", + "version": "7.0.7", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^0.1.2", "@libp2p/logger": "^3.0.2", - "@libp2p/utils": "^4.0.2", + "@libp2p/utils": "^4.0.3", "@multiformats/mafmt": "^12.1.2", "@multiformats/multiaddr": "^12.1.5", "@multiformats/multiaddr-to-uri": "^9.0.2", @@ -2873,27 +2565,8 @@ "ws": "^8.12.1" } }, - "node_modules/@libp2p/websockets/node_modules/@libp2p/logger": { - "version": "3.0.2", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "node_modules/@libp2p/websockets/node_modules/multiformats": { - "version": "12.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/websockets/node_modules/ws": { - "version": "8.13.0", + "version": "8.14.2", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -2912,14 +2585,14 @@ } }, "node_modules/@multiformats/mafmt": { - "version": "12.1.5", + "version": "12.1.6", "license": "Apache-2.0 OR MIT", "dependencies": { "@multiformats/multiaddr": "^12.0.0" } }, "node_modules/@multiformats/multiaddr": { - "version": "12.1.6", + "version": "12.1.7", "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/is-ip": "^2.0.1", @@ -2927,8 +2600,8 @@ "@libp2p/interface": "^0.1.1", "dns-over-http-resolver": "^2.1.0", "multiformats": "^12.0.1", - "uint8arrays": "^4.0.2", - "varint": "^6.0.0" + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" }, "engines": { "node": ">=18.0.0", @@ -2936,81 +2609,37 @@ } }, "node_modules/@multiformats/multiaddr-matcher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-matcher/-/multiaddr-matcher-1.0.1.tgz", - "integrity": "sha512-ZzqwTH8tP5Py/k8eNKprO0i6tuwgrbp7KWz+ttxvzkPl43BlU9Yd5joq+M5grCt158rpAc2uhPobzfXgPxW5XQ==", + "version": "1.0.2", + "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/is-ip": "^2.0.1", "@multiformats/multiaddr": "^12.0.0", "multiformats": "^12.0.1" } }, - "node_modules/@multiformats/multiaddr-matcher/node_modules/multiformats": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.1.tgz", - "integrity": "sha512-GBSToTmri2vJYs8wqcZQ8kB21dCaeTOzHTIAlr8J06C1eL6UbzqURXFZ5Fl0EYm9GAFz1IlYY8SxGOs9G9NJRg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@multiformats/multiaddr-to-uri": { - "version": "9.0.2", + "version": "9.0.7", "license": "Apache-2.0 OR MIT", "dependencies": { - "@multiformats/multiaddr": "^11.0.0" + "@multiformats/multiaddr": "^12.0.0" }, "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" } }, - "node_modules/@multiformats/multiaddr-to-uri/node_modules/@multiformats/multiaddr": { - "version": "11.6.1", - "license": "Apache-2.0 OR MIT", - "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/node_modules/multiformats": { - "version": "12.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@noble/ciphers": { - "version": "0.1.4", + "version": "0.3.0", "license": "MIT", "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@noble/curves": { - "version": "1.1.0", + "version": "1.2.0", "license": "MIT", "dependencies": { - "@noble/hashes": "1.3.1" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.3.1", - "license": "MIT", - "engines": { - "node": ">= 16" + "@noble/hashes": "1.3.2" }, "funding": { "url": "https://paulmillr.com/funding/" @@ -3238,21 +2867,18 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/@pkgr/utils/node_modules/open": { - "version": "9.1.0", + "node_modules/@playwright/test": { + "version": "1.38.1", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "default-browser": "^4.0.0", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" + "playwright": "1.38.1" + }, + "bin": { + "playwright": "cli.js" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=16" } }, "node_modules/@pnpm/config.env-replace": { @@ -3272,6 +2898,10 @@ "node": ">=12.22.0" } }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "license": "ISC" + }, "node_modules/@pnpm/npm-conf": { "version": "2.2.2", "license": "MIT", @@ -3336,51 +2966,10 @@ "version": "1.1.0", "license": "BSD-3-Clause" }, - "node_modules/@puppeteer/browsers": { - "version": "1.7.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "debug": "4.3.4", - "extract-zip": "2.0.1", - "progress": "2.0.3", - "proxy-agent": "6.3.0", - "tar-fs": "3.0.4", - "unbzip2-stream": "1.4.3", - "yargs": "17.7.1" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=16.3.0" - } - }, - "node_modules/@puppeteer/browsers/node_modules/tar-fs": { - "version": "3.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - } - }, - "node_modules/@puppeteer/browsers/node_modules/tar-stream": { - "version": "3.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, "node_modules/@rollup/plugin-commonjs": { "version": "25.0.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.4.tgz", - "integrity": "sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", @@ -3401,43 +2990,6 @@ } } }, - "node_modules/@rollup/plugin-commonjs/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@rollup/plugin-commonjs/node_modules/glob": { - "version": "8.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": { - "version": "5.1.6", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@rollup/plugin-json": { "version": "6.0.0", "dev": true, @@ -3458,7 +3010,7 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "15.1.0", + "version": "15.2.1", "dev": true, "license": "MIT", "dependencies": { @@ -3482,7 +3034,7 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.0.2", + "version": "5.0.4", "dev": true, "license": "MIT", "dependencies": { @@ -3502,11 +3054,6 @@ } } }, - "node_modules/@rollup/pluginutils/node_modules/@types/estree": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, "node_modules/@samverschueren/stream-to-observable": { "version": "0.3.1", "license": "MIT", @@ -3571,12 +3118,12 @@ } }, "node_modules/@semantic-release/commit-analyzer": { - "version": "10.0.1", + "version": "10.0.4", "license": "MIT", "dependencies": { "conventional-changelog-angular": "^6.0.0", "conventional-commits-filter": "^3.0.0", - "conventional-commits-parser": "^4.0.0", + "conventional-commits-parser": "^5.0.0", "debug": "^4.0.0", "import-from": "^4.0.0", "lodash-es": "^4.17.21", @@ -3692,7 +3239,7 @@ } }, "node_modules/@semantic-release/github": { - "version": "9.0.4", + "version": "9.0.6", "license": "MIT", "dependencies": { "@octokit/core": "^5.0.0", @@ -3700,7 +3247,7 @@ "@octokit/plugin-retry": "^6.0.0", "@octokit/plugin-throttling": "^7.0.0", "@semantic-release/error": "^4.0.0", - "aggregate-error": "^4.0.1", + "aggregate-error": "^5.0.0", "debug": "^4.3.4", "dir-glob": "^3.0.1", "globby": "^13.1.4", @@ -3737,27 +3284,27 @@ } }, "node_modules/@semantic-release/github/node_modules/aggregate-error": { - "version": "4.0.1", + "version": "5.0.0", "license": "MIT", "dependencies": { - "clean-stack": "^4.0.0", + "clean-stack": "^5.2.0", "indent-string": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@semantic-release/github/node_modules/clean-stack": { - "version": "4.2.0", + "version": "5.2.0", "license": "MIT", "dependencies": { "escape-string-regexp": "5.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3791,7 +3338,7 @@ } }, "node_modules/@semantic-release/github/node_modules/https-proxy-agent": { - "version": "7.0.1", + "version": "7.0.2", "license": "MIT", "dependencies": { "agent-base": "^7.0.2", @@ -3822,12 +3369,12 @@ } }, "node_modules/@semantic-release/npm": { - "version": "10.0.4", + "version": "10.0.6", "license": "MIT", "dependencies": { "@semantic-release/error": "^4.0.0", - "aggregate-error": "^4.0.1", - "execa": "^7.0.0", + "aggregate-error": "^5.0.0", + "execa": "^8.0.0", "fs-extra": "^11.0.0", "lodash-es": "^4.17.21", "nerf-dart": "^1.0.0", @@ -3854,27 +3401,27 @@ } }, "node_modules/@semantic-release/npm/node_modules/aggregate-error": { - "version": "4.0.1", + "version": "5.0.0", "license": "MIT", "dependencies": { - "clean-stack": "^4.0.0", + "clean-stack": "^5.2.0", "indent-string": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@semantic-release/npm/node_modules/clean-stack": { - "version": "4.2.0", + "version": "5.2.0", "license": "MIT", "dependencies": { "escape-string-regexp": "5.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3890,6 +3437,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@semantic-release/npm/node_modules/execa": { + "version": "8.0.1", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, "node_modules/@semantic-release/npm/node_modules/fs-extra": { "version": "11.1.1", "license": "MIT", @@ -3902,6 +3470,33 @@ "node": ">=14.14" } }, + "node_modules/@semantic-release/npm/node_modules/get-stream": { + "version": "8.0.1", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/hosted-git-info": { + "version": "7.0.1", + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@semantic-release/npm/node_modules/human-signals": { + "version": "5.0.0", + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, "node_modules/@semantic-release/npm/node_modules/indent-string": { "version": "5.0.0", "license": "MIT", @@ -3912,6 +3507,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@semantic-release/npm/node_modules/json-parse-even-better-errors": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@semantic-release/npm/node_modules/jsonfile": { "version": "6.1.0", "license": "MIT", @@ -3922,6 +3524,96 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/@semantic-release/npm/node_modules/lines-and-columns": { + "version": "2.0.3", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/@semantic-release/npm/node_modules/lru-cache": { + "version": "10.0.1", + "license": "ISC", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@semantic-release/npm/node_modules/normalize-package-data": { + "version": "6.0.0", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@semantic-release/npm/node_modules/parse-json": { + "version": "7.1.0", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/parse-json/node_modules/type-fest": { + "version": "3.13.1", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/read-pkg": { + "version": "8.1.0", + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^6.0.0", + "parse-json": "^7.0.0", + "type-fest": "^4.2.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/signal-exit": { + "version": "4.1.0", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@semantic-release/npm/node_modules/type-fest": { + "version": "4.3.1", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@semantic-release/npm/node_modules/universalify": { "version": "2.0.0", "license": "MIT", @@ -3930,13 +3622,13 @@ } }, "node_modules/@semantic-release/release-notes-generator": { - "version": "11.0.4", + "version": "11.0.7", "license": "MIT", "dependencies": { "conventional-changelog-angular": "^6.0.0", "conventional-changelog-writer": "^6.0.0", - "conventional-commits-filter": "^3.0.0", - "conventional-commits-parser": "^4.0.0", + "conventional-commits-filter": "^4.0.0", + "conventional-commits-parser": "^5.0.0", "debug": "^4.0.0", "get-stream": "^7.0.0", "import-from": "^4.0.0", @@ -3951,18 +3643,11 @@ "semantic-release": ">=20.1.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/find-up": { - "version": "6.3.0", + "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-commits-filter": { + "version": "4.0.0", "license": "MIT", - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=16" } }, "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { @@ -3975,87 +3660,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/locate-path": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/p-limit": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/p-locate": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/path-exists": { - "version": "5.0.0", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/read-pkg-up": { - "version": "10.0.0", - "license": "MIT", - "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^8.0.0", - "type-fest": "^3.12.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/type-fest": { - "version": "3.13.1", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/release-notes-generator/node_modules/yocto-queue": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@sindresorhus/is": { "version": "4.6.0", "license": "MIT", @@ -4111,35 +3715,36 @@ "node": ">=8" } }, - "node_modules/@size-limit/file": { - "version": "8.2.4", + "node_modules/@size-limit/preset-big-lib": { + "version": "8.2.6", "dev": true, "license": "MIT", "dependencies": { - "semver": "7.3.8" + "@size-limit/file": "8.2.6", + "@size-limit/time": "8.2.6", + "@size-limit/webpack": "8.2.6", + "size-limit": "8.2.6" + }, + "peerDependencies": { + "size-limit": "8.2.6" + } + }, + "node_modules/@size-limit/preset-big-lib/node_modules/@size-limit/file": { + "version": "8.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "7.5.3" }, "engines": { "node": "^14.0.0 || ^16.0.0 || >=18.0.0" }, "peerDependencies": { - "size-limit": "8.2.4" + "size-limit": "8.2.6" } }, - "node_modules/@size-limit/preset-big-lib": { - "version": "8.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@size-limit/file": "8.2.4", - "@size-limit/time": "8.2.4", - "@size-limit/webpack": "8.2.4" - }, - "peerDependencies": { - "size-limit": "8.2.4" - } - }, - "node_modules/@size-limit/time": { - "version": "8.2.4", + "node_modules/@size-limit/preset-big-lib/node_modules/@size-limit/time": { + "version": "8.2.6", "dev": true, "license": "MIT", "dependencies": { @@ -4150,22 +3755,55 @@ "node": "^14.0.0 || ^16.0.0 || >=18.0.0" }, "peerDependencies": { - "size-limit": "8.2.4" + "size-limit": "8.2.6" } }, - "node_modules/@size-limit/webpack": { - "version": "8.2.4", + "node_modules/@size-limit/preset-big-lib/node_modules/@size-limit/webpack": { + "version": "8.2.6", "dev": true, "license": "MIT", "dependencies": { - "nanoid": "^3.3.4", - "webpack": "^5.75.0" + "nanoid": "^3.3.6", + "webpack": "^5.88.0" }, "engines": { "node": "^14.0.0 || ^16.0.0 || >=18.0.0" }, "peerDependencies": { - "size-limit": "8.2.4" + "size-limit": "8.2.6" + } + }, + "node_modules/@size-limit/preset-big-lib/node_modules/semver": { + "version": "7.5.3", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@size-limit/preset-big-lib/node_modules/size-limit": { + "version": "8.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes-iec": "^3.1.1", + "chokidar": "^3.5.3", + "globby": "^11.1.0", + "lilconfig": "^2.1.0", + "nanospinner": "^1.1.0", + "picocolors": "^1.0.0" + }, + "bin": { + "size-limit": "bin.js" + }, + "engines": { + "node": "^14.0.0 || ^16.0.0 || >=18.0.0" } }, "node_modules/@socket.io/component-emitter": { @@ -4183,11 +3821,6 @@ "node": ">=10" } }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "dev": true, - "license": "MIT" - }, "node_modules/@tsconfig/node10": { "version": "1.0.9", "license": "MIT" @@ -4201,7 +3834,7 @@ "license": "MIT" }, "node_modules/@tsconfig/node16": { - "version": "1.0.3", + "version": "1.0.4", "license": "MIT" }, "node_modules/@types/cacheable-request": { @@ -4215,18 +3848,18 @@ } }, "node_modules/@types/chai": { - "version": "4.3.5", + "version": "4.3.6", "license": "MIT" }, "node_modules/@types/chai-as-promised": { - "version": "7.1.5", + "version": "7.1.6", "license": "MIT", "dependencies": { "@types/chai": "*" } }, "node_modules/@types/chai-string": { - "version": "1.4.2", + "version": "1.4.3", "license": "MIT", "dependencies": { "@types/chai": "*" @@ -4245,7 +3878,7 @@ "license": "MIT" }, "node_modules/@types/cors": { - "version": "2.8.13", + "version": "2.8.14", "dev": true, "license": "MIT", "dependencies": { @@ -4254,14 +3887,13 @@ }, "node_modules/@types/debug": { "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz", - "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==", + "license": "MIT", "dependencies": { "@types/ms": "*" } }, "node_modules/@types/docker-modem": { - "version": "3.0.2", + "version": "3.0.3", "dev": true, "license": "MIT", "dependencies": { @@ -4279,7 +3911,7 @@ } }, "node_modules/@types/eslint": { - "version": "8.21.1", + "version": "8.44.2", "dev": true, "license": "MIT", "dependencies": { @@ -4297,12 +3929,12 @@ } }, "node_modules/@types/estree": { - "version": "0.0.51", + "version": "1.0.1", "dev": true, "license": "MIT" }, "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", + "version": "4.0.2", "license": "MIT" }, "node_modules/@types/istanbul-lib-coverage": { @@ -4310,7 +3942,7 @@ "license": "MIT" }, "node_modules/@types/json-schema": { - "version": "7.0.12", + "version": "7.0.13", "license": "MIT" }, "node_modules/@types/json5": { @@ -4325,10 +3957,16 @@ } }, "node_modules/@types/linkify-it": { - "version": "3.0.2", + "version": "3.0.3", "dev": true, "license": "MIT" }, + "node_modules/@types/lodash": { + "version": "4.14.199", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", + "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==", + "dev": true + }, "node_modules/@types/markdown-it": { "version": "12.2.3", "dev": true, @@ -4367,7 +4005,7 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "18.15.1", + "version": "20.6.3", "license": "MIT" }, "node_modules/@types/normalize-package-data": { @@ -4391,11 +4029,11 @@ } }, "node_modules/@types/retry": { - "version": "0.12.1", + "version": "0.12.2", "license": "MIT" }, "node_modules/@types/semver": { - "version": "7.5.0", + "version": "7.5.2", "license": "MIT" }, "node_modules/@types/sinon": { @@ -4412,13 +4050,18 @@ "license": "MIT" }, "node_modules/@types/ssh2": { - "version": "1.11.8", + "version": "1.11.13", "dev": true, "license": "MIT", "dependencies": { "@types/node": "^18.11.18" } }, + "node_modules/@types/ssh2/node_modules/@types/node": { + "version": "18.17.18", + "dev": true, + "license": "MIT" + }, "node_modules/@types/strip-bom": { "version": "3.0.0", "license": "MIT" @@ -4441,10 +4084,9 @@ "license": "MIT" }, "node_modules/@types/uuid": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.3.tgz", - "integrity": "sha512-taHQQH/3ZyI3zP8M/puluDEIEvtQHVYcC6y3N8ijFtAd28+Ey/G4sg1u2gB01S8MwybLOKAp9/yCMu/uR5l3Ug==", - "dev": true + "version": "9.0.4", + "dev": true, + "license": "MIT" }, "node_modules/@types/ws": { "version": "8.5.5", @@ -4473,20 +4115,19 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.3.0", + "version": "6.7.2", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.3.0", - "@typescript-eslint/type-utils": "6.3.0", - "@typescript-eslint/utils": "6.3.0", - "@typescript-eslint/visitor-keys": "6.3.0", + "@typescript-eslint/scope-manager": "6.7.2", + "@typescript-eslint/type-utils": "6.7.2", + "@typescript-eslint/utils": "6.7.2", + "@typescript-eslint/visitor-keys": "6.7.2", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", "natural-compare": "^1.4.0", - "natural-compare-lite": "^1.4.0", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, @@ -4507,70 +4148,6 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "6.3.0", - "@typescript-eslint/utils": "6.3.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.3.0", - "@typescript-eslint/types": "6.3.0", - "@typescript-eslint/typescript-estree": "6.3.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/experimental-utils": { "version": "5.62.0", "license": "MIT", @@ -4678,41 +4255,33 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/array-union": { - "version": "2.1.0", - "license": "MIT", + "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-scope": { + "version": "5.1.1", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, "engines": { - "node": ">=8" + "node": ">=8.0.0" } }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/globby": { - "version": "11.1.0", - "license": "MIT", - "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" - }, + "node_modules/@typescript-eslint/experimental-utils/node_modules/estraverse": { + "version": "4.3.0", + "license": "BSD-2-Clause", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.6.0.tgz", - "integrity": "sha512-setq5aJgUwtzGrhW177/i+DMLqBaJbdwGj2CPIVFFLE0NCliy5ujIdLHd2D1ysmlmsjdL2GWW+hR85neEfc12w==", + "version": "6.7.2", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "6.6.0", - "@typescript-eslint/types": "6.6.0", - "@typescript-eslint/typescript-estree": "6.6.0", - "@typescript-eslint/visitor-keys": "6.6.0", + "@typescript-eslint/scope-manager": "6.7.2", + "@typescript-eslint/types": "6.7.2", + "@typescript-eslint/typescript-estree": "6.7.2", + "@typescript-eslint/visitor-keys": "6.7.2", "debug": "^4.3.4" }, "engines": { @@ -4731,131 +4300,13 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.6.0.tgz", - "integrity": "sha512-pT08u5W/GT4KjPUmEtc2kSYvrH8x89cVzkA0Sy2aaOUIw6YxOIjA8ilwLr/1fLjOedX1QAuBpG9XggWqIIfERw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.6.0", - "@typescript-eslint/visitor-keys": "6.6.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.6.0.tgz", - "integrity": "sha512-CB6QpJQ6BAHlJXdwUmiaXDBmTqIE2bzGTDLADgvqtHWuhfNP3rAOK7kAgRMAET5rDRr9Utt+qAzRBdu3AhR3sg==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.6.0.tgz", - "integrity": "sha512-hMcTQ6Al8MP2E6JKBAaSxSVw5bDhdmbCEhGW/V8QXkb9oNsFkA4SBuOMYVPxD3jbtQ4R/vSODBsr76R6fP3tbA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.6.0", - "@typescript-eslint/visitor-keys": "6.6.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.6.0.tgz", - "integrity": "sha512-L61uJT26cMOfFQ+lMZKoJNbAEckLe539VhTxiGHrWl5XSKQgA0RTBZJW2HFPy5T0ZvPVSD93QsrTKDkfNwJGyQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.6.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@typescript-eslint/parser/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/@typescript-eslint/parser/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.3.0", + "version": "6.7.2", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.3.0", - "@typescript-eslint/visitor-keys": "6.3.0" + "@typescript-eslint/types": "6.7.2", + "@typescript-eslint/visitor-keys": "6.7.2" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4866,12 +4317,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.4.0", + "version": "6.7.2", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "6.4.0", - "@typescript-eslint/utils": "6.4.0", + "@typescript-eslint/typescript-estree": "6.7.2", + "@typescript-eslint/utils": "6.7.2", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -4891,103 +4342,8 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "6.4.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.4.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "6.4.0", - "@typescript-eslint/visitor-keys": "6.4.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.4.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/array-union": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "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/@typescript-eslint/type-utils/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/types": { - "version": "6.3.0", + "version": "6.7.2", "dev": true, "license": "MIT", "engines": { @@ -4999,12 +4355,12 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.3.0", + "version": "6.7.2", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "6.3.0", - "@typescript-eslint/visitor-keys": "6.3.0", + "@typescript-eslint/types": "6.7.2", + "@typescript-eslint/visitor-keys": "6.7.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -5024,58 +4380,17 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/array-union": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "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/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/utils": { - "version": "6.4.0", + "version": "6.7.2", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.4.0", - "@typescript-eslint/types": "6.4.0", - "@typescript-eslint/typescript-estree": "6.4.0", + "@typescript-eslint/scope-manager": "6.7.2", + "@typescript-eslint/types": "6.7.2", + "@typescript-eslint/typescript-estree": "6.7.2", "semver": "^7.5.4" }, "engines": { @@ -5089,123 +4404,12 @@ "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "6.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.4.0", - "@typescript-eslint/visitor-keys": "6.4.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "6.4.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.4.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "6.4.0", - "@typescript-eslint/visitor-keys": "6.4.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.4.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/array-union": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "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/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.3.0", + "version": "6.7.2", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.3.0", + "@typescript-eslint/types": "6.7.2", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -5234,16 +4438,6 @@ "source-map-js": "^1.0.2" } }, - "node_modules/@vue/compiler-core/node_modules/@babel/parser": { - "version": "7.22.10", - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@vue/compiler-dom": { "version": "3.3.4", "license": "MIT", @@ -5268,22 +4462,8 @@ "source-map-js": "^1.0.2" } }, - "node_modules/@vue/compiler-sfc/node_modules/@babel/parser": { - "version": "7.22.10", - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@vue/compiler-sfc/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "license": "MIT" - }, "node_modules/@vue/compiler-sfc/node_modules/magic-string": { - "version": "0.30.2", + "version": "0.30.3", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" @@ -5311,22 +4491,8 @@ "magic-string": "^0.30.0" } }, - "node_modules/@vue/reactivity-transform/node_modules/@babel/parser": { - "version": "7.22.10", - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@vue/reactivity-transform/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "license": "MIT" - }, "node_modules/@vue/reactivity-transform/node_modules/magic-string": { - "version": "0.30.2", + "version": "0.30.3", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" @@ -5339,6 +4505,10 @@ "version": "3.3.4", "license": "MIT" }, + "node_modules/@waku/browser-tests": { + "resolved": "packages/browser-tests", + "link": true + }, "node_modules/@waku/build-utils": { "resolved": "packages/build-utils", "link": true @@ -5347,6 +4517,64 @@ "resolved": "packages/core", "link": true }, + "node_modules/@waku/create-app": { + "version": "0.1.1-7c24ffa", + "dev": true, + "license": "MIT OR Apache-2.0", + "dependencies": { + "commander": "^9.4.1", + "enquirer": "^2.3.6", + "fs-extra": "^11.1.0", + "semver": "^7.3.8", + "validate-npm-package-name": "^5.0.0" + }, + "bin": { + "create-app": "index.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@waku/create-app/node_modules/commander": { + "version": "9.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/@waku/create-app/node_modules/fs-extra": { + "version": "11.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@waku/create-app/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@waku/create-app/node_modules/universalify": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/@waku/dns-discovery": { "resolved": "packages/dns-discovery", "link": true @@ -5392,57 +4620,57 @@ "link": true }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "license": "MIT", "dependencies": { @@ -5450,7 +4678,7 @@ } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -5458,67 +4686,67 @@ } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" } }, @@ -5536,6 +4764,11 @@ "version": "1.1.0", "license": "BSD-2-Clause" }, + "node_modules/@zeit/schemas": { + "version": "2.29.0", + "dev": true, + "license": "MIT" + }, "node_modules/abortable-iterator": { "version": "5.0.1", "license": "Apache-2.0 OR MIT", @@ -5548,14 +4781,6 @@ "npm": ">=7.0.0" } }, - "node_modules/abortable-iterator/node_modules/it-stream-types": { - "version": "2.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/accepts": { "version": "1.3.8", "dev": true, @@ -5579,7 +4804,7 @@ } }, "node_modules/acorn-import-assertions": { - "version": "1.8.0", + "version": "1.9.0", "dev": true, "license": "MIT", "peerDependencies": { @@ -5611,7 +4836,7 @@ } }, "node_modules/aegir": { - "version": "40.0.11", + "version": "40.0.13", "license": "Apache-2.0 OR MIT", "dependencies": { "@electron/get": "^2.0.0", @@ -5652,7 +4877,7 @@ "eslint-plugin-jsdoc": "^46.4.3", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.1.1", - "execa": "^7.0.0", + "execa": "^8.0.1", "extract-zip": "^2.0.1", "fs-extra": "^11.1.0", "gh-pages": "^6.0.0", @@ -5679,7 +4904,7 @@ "npm-package-json-lint": "^7.0.0", "nyc": "^15.1.0", "p-map": "^6.0.0", - "p-retry": "^5.1.2", + "p-retry": "^6.0.0", "pascalcase": "^2.0.0", "path": "^0.12.7", "playwright-test": "^12.1.1", @@ -5697,7 +4922,7 @@ "strip-bom": "^5.0.0", "strip-json-comments": "^5.0.0", "tempy": "^3.0.0", - "typedoc": "^0.24.8", + "typedoc": "^0.25.0", "typedoc-plugin-mdn-links": "^3.0.3", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "^5.1.6", @@ -5717,10 +4942,6 @@ "npm": ">=8.6.0" } }, - "node_modules/aegir/node_modules/@types/node": { - "version": "20.5.0", - "license": "MIT" - }, "node_modules/aegir/node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", "license": "MIT", @@ -5855,13 +5076,6 @@ } } }, - "node_modules/aegir/node_modules/@typescript-eslint/typescript-estree/node_modules/array-union": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/aegir/node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { "version": "11.1.0", "license": "MIT", @@ -5948,25 +5162,50 @@ "ieee754": "^1.2.1" } }, - "node_modules/aegir/node_modules/commander": { - "version": "11.0.0", - "license": "MIT", + "node_modules/aegir/node_modules/diff": { + "version": "5.1.0", + "license": "BSD-3-Clause", "engines": { - "node": ">=16" + "node": ">=0.3.1" } }, - "node_modules/aegir/node_modules/find-up": { - "version": "6.3.0", - "license": "MIT", + "node_modules/aegir/node_modules/eslint-scope": { + "version": "5.1.1", + "license": "BSD-2-Clause", "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=8.0.0" + } + }, + "node_modules/aegir/node_modules/estraverse": { + "version": "4.3.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/aegir/node_modules/execa": { + "version": "8.0.1", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/aegir/node_modules/foreground-child": { @@ -5995,6 +5234,16 @@ "node": ">=14.14" } }, + "node_modules/aegir/node_modules/get-stream": { + "version": "8.0.1", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/aegir/node_modules/gh-pages": { "version": "6.0.0", "license": "MIT", @@ -6015,6 +5264,42 @@ "node": ">=10" } }, + "node_modules/aegir/node_modules/gh-pages/node_modules/array-union": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/aegir/node_modules/gh-pages/node_modules/brace-expansion": { + "version": "1.1.11", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/aegir/node_modules/gh-pages/node_modules/glob": { + "version": "7.2.3", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/aegir/node_modules/gh-pages/node_modules/globby": { "version": "6.1.0", "license": "MIT", @@ -6029,6 +5314,36 @@ "node": ">=0.10.0" } }, + "node_modules/aegir/node_modules/gh-pages/node_modules/minimatch": { + "version": "3.1.2", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/aegir/node_modules/glob": { + "version": "10.3.5", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/aegir/node_modules/globby": { "version": "13.2.2", "license": "MIT", @@ -6056,6 +5371,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/aegir/node_modules/human-signals": { + "version": "5.0.0", + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, "node_modules/aegir/node_modules/jsonfile": { "version": "6.1.0", "license": "MIT", @@ -6066,19 +5388,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/aegir/node_modules/locate-path": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/aegir/node_modules/minimatch": { "version": "9.0.3", "license": "ISC", @@ -6099,62 +5408,11 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/aegir/node_modules/p-limit": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/aegir/node_modules/p-locate": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/aegir/node_modules/p-map": { - "version": "6.0.0", + "node_modules/aegir/node_modules/pify": { + "version": "2.3.0", "license": "MIT", "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/aegir/node_modules/path-exists": { - "version": "5.0.0", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/aegir/node_modules/read-pkg-up": { - "version": "10.0.0", - "license": "MIT", - "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^8.0.0", - "type-fest": "^3.12.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/aegir/node_modules/rimraf": { @@ -6173,26 +5431,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/aegir/node_modules/rimraf/node_modules/glob": { - "version": "10.3.3", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/aegir/node_modules/signal-exit": { "version": "4.1.0", "license": "ISC", @@ -6203,6 +5441,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/aegir/node_modules/strip-bom": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/aegir/node_modules/strip-json-comments": { "version": "5.0.1", "license": "MIT", @@ -6213,53 +5461,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/aegir/node_modules/type-fest": { - "version": "3.13.1", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/aegir/node_modules/typedoc": { - "version": "0.24.8", - "license": "Apache-2.0", - "dependencies": { - "lunr": "^2.3.9", - "marked": "^4.3.0", - "minimatch": "^9.0.0", - "shiki": "^0.14.1" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 14.14" - }, - "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x" - } - }, - "node_modules/aegir/node_modules/typedoc-plugin-missing-exports": { - "version": "2.0.1", - "license": "MIT", - "peerDependencies": { - "typedoc": "0.24.x" - } - }, - "node_modules/aegir/node_modules/typescript": { - "version": "5.1.6", - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, "node_modules/aegir/node_modules/universalify": { "version": "2.0.0", "license": "MIT", @@ -6267,16 +5468,6 @@ "node": ">= 10.0.0" } }, - "node_modules/aegir/node_modules/yocto-queue": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/agent-base": { "version": "6.0.2", "dev": true, @@ -6375,15 +5566,34 @@ "node": ">=8" } }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/ansi-escapes": { - "version": "4.3.2", + "version": "5.0.0", "dev": true, "license": "MIT", "dependencies": { - "type-fest": "^0.21.3" + "type-fest": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "1.4.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6400,17 +5610,17 @@ } }, "node_modules/ansi-sequence-parser": { - "version": "1.1.0", + "version": "1.1.1", "license": "MIT" }, "node_modules/ansi-styles": { - "version": "6.2.1", + "version": "3.2.1", "license": "MIT", - "engines": { - "node": ">=12" + "dependencies": { + "color-convert": "^1.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=4" } }, "node_modules/ansicolors": { @@ -6460,6 +5670,25 @@ "node": ">=8" } }, + "node_modules/arch": { + "version": "2.2.0", + "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" + } + ], + "license": "MIT" + }, "node_modules/archy": { "version": "1.0.0", "license": "MIT" @@ -6506,13 +5735,13 @@ "license": "MIT" }, "node_modules/array-includes": { - "version": "3.1.6", + "version": "3.1.7", "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" }, "engines": { @@ -6524,18 +5753,14 @@ }, "node_modules/array-timsort": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", - "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/array-union": { - "version": "1.0.2", + "version": "2.1.0", "license": "MIT", - "dependencies": { - "array-uniq": "^1.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/array-uniq": { @@ -6545,13 +5770,30 @@ "node": ">=0.10.0" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.1", + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -6562,12 +5804,12 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", + "version": "1.3.2", "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -6577,6 +5819,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/arrify": { "version": "1.0.1", "license": "MIT", @@ -6592,13 +5853,14 @@ } }, "node_modules/assert": { - "version": "2.0.0", + "version": "2.1.0", "license": "MIT", "dependencies": { - "es6-object-assign": "^1.1.0", - "is-nan": "^1.2.1", - "object-is": "^1.0.1", - "util": "^0.12.0" + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" } }, "node_modules/assert/node_modules/util": { @@ -6619,25 +5881,6 @@ "node": "*" } }, - "node_modules/ast-types": { - "version": "0.13.4", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/async": { "version": "3.2.4", "license": "MIT" @@ -6659,11 +5902,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/b4a": { - "version": "1.6.4", - "dev": true, - "license": "ISC" - }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.5", "license": "MIT", @@ -6738,14 +5976,6 @@ "node": "^4.5.0 || >= 5.9" } }, - "node_modules/basic-ftp": { - "version": "5.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "license": "BSD-3-Clause", @@ -6840,17 +6070,17 @@ "license": "MIT" }, "node_modules/boxen": { - "version": "7.1.1", + "version": "7.0.0", "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", - "camelcase": "^7.0.1", - "chalk": "^5.2.0", + "camelcase": "^7.0.0", + "chalk": "^5.0.1", "cli-boxes": "^3.0.0", "string-width": "^5.1.2", "type-fest": "^2.13.0", "widest-line": "^4.0.1", - "wrap-ansi": "^8.1.0" + "wrap-ansi": "^8.0.1" }, "engines": { "node": ">=14.16" @@ -6879,21 +6109,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/boxen/node_modules/wrap-ansi": { - "version": "8.1.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/bplist-parser": { "version": "0.2.0", "dev": true, @@ -6928,7 +6143,7 @@ "license": "ISC" }, "node_modules/browserslist": { - "version": "4.21.10", + "version": "4.21.11", "funding": [ { "type": "opencollective", @@ -6945,10 +6160,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001517", - "electron-to-chromium": "^1.4.477", + "caniuse-lite": "^1.0.30001538", + "electron-to-chromium": "^1.4.526", "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.11" + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -6991,7 +6206,7 @@ "license": "MIT" }, "node_modules/buildcheck": { - "version": "0.0.3", + "version": "0.0.6", "optional": true, "engines": { "node": ">=10.0.0" @@ -7037,17 +6252,6 @@ "node": ">=10.16.0" } }, - "node_modules/byte-access": { - "version": "1.0.1", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/bytes": { "version": "3.1.2", "license": "MIT", @@ -7091,115 +6295,6 @@ "node": ">=12" } }, - "node_modules/c8/node_modules/ansi-regex": { - "version": "5.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/c8/node_modules/emoji-regex": { - "version": "8.0.0", - "license": "MIT" - }, - "node_modules/c8/node_modules/find-up": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/c8/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/c8/node_modules/locate-path": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/c8/node_modules/p-limit": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/c8/node_modules/p-locate": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/c8/node_modules/string-width": { - "version": "4.2.3", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/c8/node_modules/strip-ansi": { - "version": "6.0.1", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/c8/node_modules/yargs": { - "version": "17.7.2", - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/cacheable-lookup": { "version": "5.0.4", "license": "MIT", @@ -7270,6 +6365,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/callsite": { + "version": "1.0.0", + "engines": { + "node": "*" + } + }, "node_modules/callsites": { "version": "3.1.0", "license": "MIT", @@ -7317,7 +6418,7 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001521", + "version": "1.0.30001538", "funding": [ { "type": "opencollective", @@ -7365,8 +6466,9 @@ } }, "node_modules/chai": { - "version": "4.3.7", - "license": "MIT", + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.8.tgz", + "integrity": "sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==", "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", @@ -7382,8 +6484,7 @@ }, "node_modules/chai-as-promised": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "license": "WTFPL", "dependencies": { "check-error": "^1.0.2" }, @@ -7420,7 +6521,7 @@ } }, "node_modules/chalk": { - "version": "5.2.0", + "version": "5.3.0", "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -7483,6 +6584,16 @@ "fsevents": "~2.3.2" } }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/chownr": { "version": "1.1.4", "license": "ISC" @@ -7495,20 +6606,18 @@ "node": ">=6.0" } }, - "node_modules/chromium-bidi": { - "version": "0.4.22", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "mitt": "3.0.1" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, "node_modules/ci-info": { - "version": "2.0.0", - "license": "MIT" + "version": "3.8.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } }, "node_modules/clean-stack": { "version": "2.2.0", @@ -7519,9 +6628,8 @@ }, "node_modules/clear-module": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/clear-module/-/clear-module-4.1.2.tgz", - "integrity": "sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^2.0.0", "resolve-from": "^5.0.0" @@ -7544,17 +6652,20 @@ } }, "node_modules/cli-cursor": { - "version": "3.1.0", + "version": "4.0.0", "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" + "restore-cursor": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-spinners": { - "version": "2.9.0", + "version": "2.9.1", "license": "MIT", "engines": { "node": ">=6" @@ -7631,6 +6742,104 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/clipboardy": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "arch": "^2.2.0", + "execa": "^5.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy/node_modules/execa": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/clipboardy/node_modules/human-signals": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/clipboardy/node_modules/is-stream": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/clipboardy/node_modules/npm-run-path": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clipboardy/node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy/node_modules/strip-final-newline": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/cliui": { "version": "8.0.1", "license": "ISC", @@ -7650,6 +6859,33 @@ "node": ">=8" } }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "license": "MIT" @@ -7683,6 +6919,21 @@ "node": ">=8" } }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/clone": { "version": "1.0.4", "license": "MIT", @@ -7708,21 +6959,18 @@ } }, "node_modules/color-convert": { - "version": "2.0.1", + "version": "1.9.3", "license": "MIT", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "color-name": "1.1.3" } }, "node_modules/color-name": { - "version": "1.1.4", + "version": "1.1.3", "license": "MIT" }, "node_modules/colorette": { - "version": "2.0.19", + "version": "2.0.20", "dev": true, "license": "MIT" }, @@ -7734,18 +6982,16 @@ } }, "node_modules/commander": { - "version": "9.5.0", - "dev": true, + "version": "11.0.0", "license": "MIT", "engines": { - "node": "^12.20.0 || >=14" + "node": ">=16" } }, "node_modules/comment-json": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", "dev": true, + "license": "MIT", "dependencies": { "array-timsort": "^1.0.3", "core-util-is": "^1.0.3", @@ -7776,6 +7022,70 @@ "dot-prop": "^5.1.0" } }, + "node_modules/compare-func/node_modules/dot-prop": { + "version": "5.3.0", + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, "node_modules/concat-map": { "version": "0.0.1", "license": "MIT" @@ -7788,6 +7098,10 @@ "proto-list": "~1.2.1" } }, + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "license": "ISC" + }, "node_modules/configstore": { "version": "6.0.0", "license": "BSD-2-Clause", @@ -7805,19 +7119,6 @@ "url": "https://github.com/yeoman/configstore?sponsor=1" } }, - "node_modules/configstore/node_modules/dot-prop": { - "version": "6.0.1", - "license": "MIT", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/connect": { "version": "3.7.0", "dev": true, @@ -7845,6 +7146,14 @@ "dev": true, "license": "MIT" }, + "node_modules/content-disposition": { + "version": "0.5.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/content-type": { "version": "1.0.5", "dev": true, @@ -7904,19 +7213,29 @@ } }, "node_modules/conventional-commits-parser": { - "version": "4.0.0", + "version": "5.0.0", "license": "MIT", "dependencies": { - "is-text-path": "^1.0.1", + "is-text-path": "^2.0.0", "JSONStream": "^1.3.5", - "meow": "^8.1.2", - "split2": "^3.2.2" + "meow": "^12.0.1", + "split2": "^4.0.0" }, "bin": { - "conventional-commits-parser": "cli.js" + "conventional-commits-parser": "cli.mjs" }, "engines": { - "node": ">=14" + "node": ">=16" + } + }, + "node_modules/conventional-commits-parser/node_modules/meow": { + "version": "12.1.1", + "license": "MIT", + "engines": { + "node": ">=16.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/convert-source-map": { @@ -7932,10 +7251,10 @@ } }, "node_modules/core-js-compat": { - "version": "3.32.0", + "version": "3.32.2", "license": "MIT", "dependencies": { - "browserslist": "^4.21.9" + "browserslist": "^4.21.10" }, "funding": { "type": "opencollective", @@ -7958,7 +7277,7 @@ } }, "node_modules/cosmiconfig": { - "version": "8.2.0", + "version": "8.0.0", "license": "MIT", "dependencies": { "import-fresh": "^3.2.1", @@ -7968,9 +7287,6 @@ }, "engines": { "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" } }, "node_modules/cp-file": { @@ -7988,13 +7304,38 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cp-file/node_modules/p-event": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", + "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", + "dependencies": { + "p-timeout": "^5.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cp-file/node_modules/p-timeout": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cpu-features": { - "version": "0.0.4", + "version": "0.0.9", "hasInstallScript": true, "optional": true, "dependencies": { - "buildcheck": "0.0.3", - "nan": "^2.15.0" + "buildcheck": "~0.0.6", + "nan": "^2.17.0" }, "engines": { "node": ">=10.0.0" @@ -8047,16 +7388,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cpy/node_modules/p-map": { - "version": "6.0.0", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cpy/node_modules/slash": { "version": "4.0.0", "license": "MIT", @@ -8079,6 +7410,25 @@ "node-fetch": "2.6.7" } }, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.6.7", + "dev": true, + "license": "MIT", + "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-spawn": { "version": "7.0.3", "license": "MIT", @@ -8115,25 +7465,24 @@ } }, "node_modules/cspell": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-7.3.2.tgz", - "integrity": "sha512-/YY1C0CYBP+GueFon1BUgcDGc1YXDCyAIjuebvRygjt1cXwCklQVF5bZIGCrimgjzTrY+wx0ePgzuVQ9RyJnOQ==", + "version": "7.3.6", "dev": true, + "license": "MIT", "dependencies": { - "@cspell/cspell-json-reporter": "7.3.2", - "@cspell/cspell-pipe": "7.3.2", - "@cspell/cspell-types": "7.3.2", - "@cspell/dynamic-import": "7.3.2", + "@cspell/cspell-json-reporter": "7.3.6", + "@cspell/cspell-pipe": "7.3.6", + "@cspell/cspell-types": "7.3.6", + "@cspell/dynamic-import": "7.3.6", "chalk": "^5.3.0", "chalk-template": "^1.1.0", "commander": "^11.0.0", - "cspell-gitignore": "7.3.2", - "cspell-glob": "7.3.2", - "cspell-io": "7.3.2", - "cspell-lib": "7.3.2", + "cspell-gitignore": "7.3.6", + "cspell-glob": "7.3.6", + "cspell-io": "7.3.6", + "cspell-lib": "7.3.6", "fast-glob": "^3.3.1", "fast-json-stable-stringify": "^2.1.0", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^7.0.0", "get-stdin": "^9.0.0", "semver": "^7.5.4", "strip-ansi": "^7.1.0", @@ -8151,16 +7500,15 @@ } }, "node_modules/cspell-dictionary": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-7.3.2.tgz", - "integrity": "sha512-hL8fOZ7zTkUuE6jq2CUObxUp0fSLsNQyMo+HAkpg0w6ssHvbgnP6HP8kyEN641L/F0X/Ow2vo3CaRBadvyyzCA==", + "version": "7.3.6", "dev": true, + "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "7.3.2", - "@cspell/cspell-types": "7.3.2", - "cspell-trie-lib": "7.3.2", + "@cspell/cspell-pipe": "7.3.6", + "@cspell/cspell-types": "7.3.6", + "cspell-trie-lib": "7.3.6", "fast-equals": "^4.0.3", - "gensequence": "^5.0.2" + "gensequence": "^6.0.0" }, "engines": { "node": ">=16" @@ -8168,17 +7516,15 @@ }, "node_modules/cspell-dictionary/node_modules/fast-equals": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", - "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cspell-gitignore": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-7.3.2.tgz", - "integrity": "sha512-NWxxFcf4wwKbRInkZK/p/BrPR2ElCpcB8DLcrBxRkiI4uX7yCX8v5QjI8ZpTyuaUTl9aFqJFYtj9Q7GqkBnPzA==", + "version": "7.3.6", "dev": true, + "license": "MIT", "dependencies": { - "cspell-glob": "7.3.2", + "cspell-glob": "7.3.6", "find-up": "^5.0.0" }, "bin": { @@ -8188,72 +7534,10 @@ "node": ">=16" } }, - "node_modules/cspell-gitignore/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cspell-gitignore/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cspell-gitignore/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cspell-gitignore/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cspell-glob": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-7.3.2.tgz", - "integrity": "sha512-R/YwtBN5ApOTONkBoTOSCKDMmnRRA1fF9prkaFMfE0aT5oC2VF0N7hLCSYjpQM+kYsXeqLDc13vxFBOnHRuc3g==", + "version": "7.3.6", "dev": true, + "license": "MIT", "dependencies": { "micromatch": "^4.0.5" }, @@ -8262,13 +7546,12 @@ } }, "node_modules/cspell-grammar": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-7.3.2.tgz", - "integrity": "sha512-ale40T4M0jHmwQsPjIbpZKzaRxMVy5dnpyvplwj7ExX4sp2Grt1wcqxk2ELS4r4bsaIap+iIfeYYhoXqYq1dQg==", + "version": "7.3.6", "dev": true, + "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "7.3.2", - "@cspell/cspell-types": "7.3.2" + "@cspell/cspell-pipe": "7.3.6", + "@cspell/cspell-types": "7.3.6" }, "bin": { "cspell-grammar": "bin.mjs" @@ -8278,62 +7561,40 @@ } }, "node_modules/cspell-io": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-7.3.2.tgz", - "integrity": "sha512-nul6K4YUMe1VdxuJDDOMvWUw/hIS2UZkvJLDo5GkAus7YmGSR0knfDueU+hebYszRa0LxjrduuPNcNJE/ZWUFg==", + "version": "7.3.6", "dev": true, + "license": "MIT", "dependencies": { - "@cspell/cspell-service-bus": "7.3.2", + "@cspell/cspell-service-bus": "7.3.6", "node-fetch": "^2.7.0" }, "engines": { "node": ">=16" } }, - "node_modules/cspell-io/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "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/cspell-lib": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-7.3.2.tgz", - "integrity": "sha512-cbo0TSL2JnM/GdiutH193aynxdxSnxBR1DYJ1/8ycIWDU0p4AHO0EZ+5L5MkBFwpM20OicuXvLrAem9WjYVDBQ==", + "version": "7.3.6", "dev": true, + "license": "MIT", "dependencies": { - "@cspell/cspell-bundled-dicts": "7.3.2", - "@cspell/cspell-pipe": "7.3.2", - "@cspell/cspell-resolver": "7.3.2", - "@cspell/cspell-types": "7.3.2", - "@cspell/dynamic-import": "7.3.2", - "@cspell/strong-weak-map": "7.3.2", + "@cspell/cspell-bundled-dicts": "7.3.6", + "@cspell/cspell-pipe": "7.3.6", + "@cspell/cspell-resolver": "7.3.6", + "@cspell/cspell-types": "7.3.6", + "@cspell/dynamic-import": "7.3.6", + "@cspell/strong-weak-map": "7.3.6", "clear-module": "^4.1.2", "comment-json": "^4.2.3", "configstore": "^6.0.0", "cosmiconfig": "8.0.0", - "cspell-dictionary": "7.3.2", - "cspell-glob": "7.3.2", - "cspell-grammar": "7.3.2", - "cspell-io": "7.3.2", - "cspell-trie-lib": "7.3.2", + "cspell-dictionary": "7.3.6", + "cspell-glob": "7.3.6", + "cspell-grammar": "7.3.6", + "cspell-io": "7.3.6", + "cspell-trie-lib": "7.3.6", "fast-equals": "^5.0.1", "find-up": "^6.3.0", - "gensequence": "^5.0.2", + "gensequence": "^6.0.0", "import-fresh": "^3.3.0", "resolve-from": "^5.0.0", "vscode-languageserver-textdocument": "^1.0.8", @@ -8343,26 +7604,10 @@ "node": ">=16" } }, - "node_modules/cspell-lib/node_modules/cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "dependencies": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, "node_modules/cspell-lib/node_modules/find-up": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -8376,9 +7621,8 @@ }, "node_modules/cspell-lib/node_modules/locate-path": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^6.0.0" }, @@ -8391,9 +7635,8 @@ }, "node_modules/cspell-lib/node_modules/p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -8406,9 +7649,8 @@ }, "node_modules/cspell-lib/node_modules/p-locate": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^4.0.0" }, @@ -8421,18 +7663,16 @@ }, "node_modules/cspell-lib/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/cspell-lib/node_modules/yocto-queue": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -8441,52 +7681,18 @@ } }, "node_modules/cspell-trie-lib": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-7.3.2.tgz", - "integrity": "sha512-IXNCWBw4UDZuY6MB+j7YNdcDpTdcfElsLkwTV8fEmNfUeClJacn2mQicQ/LKZJLvOc1TNbcSPWSCe3kQA+uxNw==", + "version": "7.3.6", "dev": true, + "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "7.3.2", - "@cspell/cspell-types": "7.3.2", - "gensequence": "^5.0.2" + "@cspell/cspell-pipe": "7.3.6", + "@cspell/cspell-types": "7.3.6", + "gensequence": "^6.0.0" }, "engines": { "node": ">=16" } }, - "node_modules/cspell/node_modules/chalk": { - "version": "5.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/cspell/node_modules/commander": { - "version": "11.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - } - }, - "node_modules/cspell/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/custom-event": { "version": "1.0.1", "dev": true, @@ -8498,18 +7704,9 @@ "node": ">=0.4.0" } }, - "node_modules/data-uri-to-buffer": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/datastore-core": { "version": "9.2.3", - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-9.2.3.tgz", - "integrity": "sha512-jcvrVDt+jp7lUp2WhMXXgX/hoi3VcJebN+z/ZXbIRKOVfNOF4bl8cvr7sQ1y9qITikgC2coXFYd79Wzt/n13ZQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/logger": "^3.0.0", "err-code": "^3.0.1", @@ -8526,36 +7723,6 @@ "uint8arrays": "^4.0.2" } }, - "node_modules/datastore-core/node_modules/@libp2p/logger": { - "version": "3.0.2", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "node_modules/datastore-core/node_modules/it-filter": { - "version": "3.0.2", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "it-peekable": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/datastore-core/node_modules/multiformats": { - "version": "12.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/date-fns": { "version": "1.30.1", "license": "MIT" @@ -8674,7 +7841,7 @@ "license": "MIT" }, "node_modules/deepmerge": { - "version": "4.3.0", + "version": "4.3.1", "dev": true, "license": "MIT", "engines": { @@ -8722,88 +7889,13 @@ } }, "node_modules/default-gateway": { - "version": "6.0.3", + "version": "7.2.2", "license": "BSD-2-Clause", "dependencies": { - "execa": "^5.0.0" + "execa": "^7.1.1" }, "engines": { - "node": ">= 10" - } - }, - "node_modules/default-gateway/node_modules/execa": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/default-gateway/node_modules/human-signals": { - "version": "2.1.0", - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/default-gateway/node_modules/is-stream": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-gateway/node_modules/mimic-fn": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/default-gateway/node_modules/npm-run-path": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/default-gateway/node_modules/onetime": { - "version": "5.1.2", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-gateway/node_modules/strip-final-newline": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=6" + "node": ">= 16" } }, "node_modules/default-require-extensions": { @@ -8843,6 +7935,18 @@ "node": ">=10" } }, + "node_modules/define-data-property": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/define-lazy-prop": { "version": "3.0.0", "dev": true, @@ -8855,9 +7959,10 @@ } }, "node_modules/define-properties": { - "version": "1.2.0", + "version": "1.2.1", "license": "MIT", "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -8868,47 +7973,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/degenerator": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/degenerator/node_modules/escodegen": { - "version": "2.1.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/degenerator/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/del": { "version": "6.1.1", "license": "MIT", @@ -8929,23 +7993,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del/node_modules/array-union": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/del/node_modules/globby": { - "version": "11.1.0", + "node_modules/del/node_modules/p-map": { + "version": "4.0.0", "license": "MIT", "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" + "aggregate-error": "^3.0.0" }, "engines": { "node": ">=10" @@ -8956,8 +8008,7 @@ }, "node_modules/delay": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-6.0.0.tgz", - "integrity": "sha512-2NJozoOHQ4NuZuVIr5CWd0iiLVIRSDepakaovIN+9eIDHEhdCAEvSy2cuf1DCrPPQLvHmbqTHODlhHg8UCy4zw==", + "license": "MIT", "engines": { "node": ">=16" }, @@ -8973,16 +8024,18 @@ } }, "node_modules/depcheck": { - "version": "1.4.3", + "version": "1.4.6", "license": "MIT", "dependencies": { - "@babel/parser": "7.16.4", - "@babel/traverse": "^7.12.5", + "@babel/parser": "7.22.5", + "@babel/traverse": "7.22.5", "@vue/compiler-sfc": "^3.0.5", + "callsite": "^1.0.0", "camelcase": "^6.2.0", "cosmiconfig": "^7.0.0", "debug": "^4.2.0", "deps-regex": "^0.1.4", + "findup-sync": "^5.0.0", "ignore": "^5.1.8", "is-core-module": "^2.4.0", "js-yaml": "^3.14.0", @@ -8991,12 +8044,10 @@ "minimatch": "^3.0.4", "multimatch": "^5.0.0", "please-upgrade-node": "^3.2.0", - "query-ast": "^1.0.3", "readdirp": "^3.5.0", "require-package-name": "^2.0.1", "resolve": "^1.18.1", - "sass": "^1.29.0", - "scss-parser": "^1.0.4", + "resolve-from": "^5.0.0", "semver": "^7.3.2", "yargs": "^16.1.0" }, @@ -9014,6 +8065,19 @@ "node": ">=8" } }, + "node_modules/depcheck/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/depcheck/node_modules/argparse": { "version": "1.0.10", "license": "MIT", @@ -9030,6 +8094,20 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/depcheck/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/depcheck/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/depcheck/node_modules/cosmiconfig": { "version": "7.1.0", "license": "MIT", @@ -9066,6 +8144,16 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/depcheck/node_modules/json5": { + "version": "2.2.3", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/depcheck/node_modules/sprintf-js": { "version": "1.0.3", "license": "BSD-3-Clause" @@ -9092,6 +8180,21 @@ "node": ">=8" } }, + "node_modules/depcheck/node_modules/wrap-ansi": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/depcheck/node_modules/yaml": { "version": "1.10.2", "license": "ISC", @@ -9154,6 +8257,13 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-file": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/detect-node": { "version": "2.1.0", "license": "MIT", @@ -9181,7 +8291,7 @@ "license": "MIT" }, "node_modules/diff": { - "version": "5.1.0", + "version": "4.0.2", "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" @@ -9198,7 +8308,7 @@ } }, "node_modules/dns-over-http-resolver": { - "version": "2.1.1", + "version": "2.1.2", "license": "Apache-2.0 OR MIT", "dependencies": { "debug": "^4.3.1", @@ -9282,13 +8392,35 @@ } }, "node_modules/dot-prop": { - "version": "5.3.0", + "version": "6.0.1", "license": "MIT", "dependencies": { "is-obj": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dotenv": { + "version": "8.6.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-flow": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "dotenv": "^8.6.0" + }, + "engines": { + "node": ">= 8.0.0" } }, "node_modules/duplexer2": { @@ -9298,6 +8430,10 @@ "readable-stream": "^2.0.2" } }, + "node_modules/duplexer2/node_modules/isarray": { + "version": "1.0.0", + "license": "MIT" + }, "node_modules/duplexer2/node_modules/readable-stream": { "version": "2.3.8", "license": "MIT", @@ -9410,6 +8546,20 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/electron-mocha-main/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/electron-mocha-main/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/electron-mocha-main/node_modules/debug": { "version": "4.3.3", "license": "MIT", @@ -9436,30 +8586,6 @@ "version": "8.0.0", "license": "MIT" }, - "node_modules/electron-mocha-main/node_modules/escape-string-regexp": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/electron-mocha-main/node_modules/find-up": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/electron-mocha-main/node_modules/fs-extra": { "version": "10.1.0", "license": "MIT", @@ -9517,19 +8643,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/electron-mocha-main/node_modules/locate-path": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/electron-mocha-main/node_modules/log-symbols": { "version": "4.1.0", "license": "MIT", @@ -9609,32 +8722,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/electron-mocha-main/node_modules/p-limit": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/electron-mocha-main/node_modules/p-locate": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/electron-mocha-main/node_modules/serialize-javascript": { "version": "6.0.0", "license": "BSD-3-Clause", @@ -9686,6 +8773,21 @@ "version": "6.2.0", "license": "Apache-2.0" }, + "node_modules/electron-mocha-main/node_modules/wrap-ansi": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/electron-mocha-main/node_modules/yargs": { "version": "16.2.0", "license": "MIT", @@ -9710,7 +8812,7 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.492", + "version": "1.4.527", "license": "ISC" }, "node_modules/electron-window": { @@ -9751,7 +8853,7 @@ } }, "node_modules/engine.io": { - "version": "6.4.1", + "version": "6.5.2", "dev": true, "license": "MIT", "dependencies": { @@ -9763,15 +8865,15 @@ "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", + "engine.io-parser": "~5.2.1", "ws": "~8.11.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=10.2.0" } }, "node_modules/engine.io-parser": { - "version": "5.0.6", + "version": "5.2.1", "dev": true, "license": "MIT", "engines": { @@ -9799,7 +8901,7 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.12.0", + "version": "5.15.0", "dev": true, "license": "MIT", "dependencies": { @@ -9810,6 +8912,37 @@ "node": ">=10.13.0" } }, + "node_modules/enquirer": { + "version": "2.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/enquirer/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/enquirer/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ent": { "version": "2.2.0", "dev": true, @@ -9856,16 +8989,17 @@ } }, "node_modules/es-abstract": { - "version": "1.21.2", + "version": "1.22.2", "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", @@ -9880,19 +9014,23 @@ "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", "object-inspect": "^1.12.3", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -9902,7 +9040,7 @@ } }, "node_modules/es-module-lexer": { - "version": "0.9.3", + "version": "1.3.1", "dev": true, "license": "MIT" }, @@ -9944,12 +9082,8 @@ "version": "4.1.1", "license": "MIT" }, - "node_modules/es6-object-assign": { - "version": "1.1.0", - "license": "MIT" - }, "node_modules/esbuild": { - "version": "0.19.2", + "version": "0.19.3", "hasInstallScript": true, "license": "MIT", "bin": { @@ -9959,28 +9093,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.2", - "@esbuild/android-arm64": "0.19.2", - "@esbuild/android-x64": "0.19.2", - "@esbuild/darwin-arm64": "0.19.2", - "@esbuild/darwin-x64": "0.19.2", - "@esbuild/freebsd-arm64": "0.19.2", - "@esbuild/freebsd-x64": "0.19.2", - "@esbuild/linux-arm": "0.19.2", - "@esbuild/linux-arm64": "0.19.2", - "@esbuild/linux-ia32": "0.19.2", - "@esbuild/linux-loong64": "0.19.2", - "@esbuild/linux-mips64el": "0.19.2", - "@esbuild/linux-ppc64": "0.19.2", - "@esbuild/linux-riscv64": "0.19.2", - "@esbuild/linux-s390x": "0.19.2", - "@esbuild/linux-x64": "0.19.2", - "@esbuild/netbsd-x64": "0.19.2", - "@esbuild/openbsd-x64": "0.19.2", - "@esbuild/sunos-x64": "0.19.2", - "@esbuild/win32-arm64": "0.19.2", - "@esbuild/win32-ia32": "0.19.2", - "@esbuild/win32-x64": "0.19.2" + "@esbuild/android-arm": "0.19.3", + "@esbuild/android-arm64": "0.19.3", + "@esbuild/android-x64": "0.19.3", + "@esbuild/darwin-arm64": "0.19.3", + "@esbuild/darwin-x64": "0.19.3", + "@esbuild/freebsd-arm64": "0.19.3", + "@esbuild/freebsd-x64": "0.19.3", + "@esbuild/linux-arm": "0.19.3", + "@esbuild/linux-arm64": "0.19.3", + "@esbuild/linux-ia32": "0.19.3", + "@esbuild/linux-loong64": "0.19.3", + "@esbuild/linux-mips64el": "0.19.3", + "@esbuild/linux-ppc64": "0.19.3", + "@esbuild/linux-riscv64": "0.19.3", + "@esbuild/linux-s390x": "0.19.3", + "@esbuild/linux-x64": "0.19.3", + "@esbuild/netbsd-x64": "0.19.3", + "@esbuild/openbsd-x64": "0.19.3", + "@esbuild/sunos-x64": "0.19.3", + "@esbuild/win32-arm64": "0.19.3", + "@esbuild/win32-ia32": "0.19.3", + "@esbuild/win32-x64": "0.19.3" } }, "node_modules/esbuild-plugin-wasm": { @@ -10017,10 +9151,13 @@ "license": "MIT" }, "node_modules/escape-string-regexp": { - "version": "1.0.5", + "version": "4.0.0", "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/escodegen": { @@ -10044,6 +9181,14 @@ "source-map": "~0.6.1" } }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, "node_modules/escodegen/node_modules/levn": { "version": "0.3.0", "dev": true, @@ -10091,14 +9236,14 @@ } }, "node_modules/eslint": { - "version": "8.47.0", + "version": "8.49.0", "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "^8.47.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint/js": "8.49.0", + "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.12.4", @@ -10339,13 +9484,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/eslint-config-ipfs/node_modules/array-union": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/eslint-config-ipfs/node_modules/eslint-config-standard-with-typescript": { "version": "37.0.0", "license": "MIT", @@ -10362,22 +9500,22 @@ "typescript": "*" } }, - "node_modules/eslint-config-ipfs/node_modules/globby": { - "version": "11.1.0", - "license": "MIT", + "node_modules/eslint-config-ipfs/node_modules/eslint-scope": { + "version": "5.1.1", + "license": "BSD-2-Clause", "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" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8.0.0" + } + }, + "node_modules/eslint-config-ipfs/node_modules/estraverse": { + "version": "4.3.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" } }, "node_modules/eslint-config-prettier": { @@ -10432,12 +9570,12 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", + "version": "0.3.9", "license": "MIT", "dependencies": { "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -10448,7 +9586,7 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.4", + "version": "2.8.0", "license": "MIT", "dependencies": { "debug": "^3.2.7" @@ -10522,6 +9660,14 @@ "eslint": ">=4.19.1" } }, + "node_modules/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/eslint-plugin-etc": { "version": "2.0.3", "license": "MIT", @@ -10569,50 +9715,27 @@ } } }, - "node_modules/eslint-plugin-functional/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-plugin-functional/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-plugin-import": { - "version": "2.27.5", + "version": "2.28.1", "license": "MIT", "dependencies": { "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", "array.prototype.flat": "^1.3.1", "array.prototype.flatmap": "^1.3.1", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", + "eslint-module-utils": "^2.8.0", "has": "^1.0.3", - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "engines": { "node": ">=4" @@ -10639,14 +9762,14 @@ } }, "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-jsdoc": { - "version": "46.4.6", + "version": "46.8.2", "license": "BSD-3-Clause", "dependencies": { "@es-joy/jsdoccomment": "~0.40.1", @@ -10666,37 +9789,15 @@ "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-plugin-jsdoc/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-plugin-n": { - "version": "16.0.1", + "version": "16.1.0", "license": "MIT", "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "builtins": "^5.0.1", "eslint-plugin-es-x": "^7.1.0", + "get-tsconfig": "^4.7.0", "ignore": "^5.2.4", "is-core-module": "^2.12.1", "minimatch": "^3.1.2", @@ -10713,20 +9814,6 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-plugin-no-only-tests": { "version": "3.1.0", "license": "MIT", @@ -10798,14 +9885,17 @@ } }, "node_modules/eslint-scope": { - "version": "5.1.1", + "version": "7.2.2", "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-utils": { @@ -10872,98 +9962,28 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=7.0.0" } }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", + "node_modules/eslint/node_modules/file-entry-cache": { + "version": "6.0.1", "license": "MIT", "dependencies": { - "p-locate": "^5.0.0" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/eslint/node_modules/strip-ansi": { @@ -11022,13 +10042,6 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "license": "BSD-2-Clause", @@ -11039,13 +10052,6 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/estimo": { "version": "2.3.6", "dev": true, @@ -11064,8 +10070,16 @@ "node": ">=12" } }, + "node_modules/estimo/node_modules/commander": { + "version": "9.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, "node_modules/estraverse": { - "version": "4.3.0", + "version": "5.3.0", "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -11087,7 +10101,7 @@ "license": "MIT" }, "node_modules/eventemitter3": { - "version": "4.0.7", + "version": "5.0.1", "license": "MIT" }, "node_modules/events": { @@ -11118,6 +10132,16 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/extend": { "version": "3.0.2", "dev": true, @@ -11161,7 +10185,9 @@ } }, "node_modules/fast-check": { - "version": "3.12.0", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.13.1.tgz", + "integrity": "sha512-Xp00tFuWd83i8rbG/4wU54qU+yINjQha7bXH2N4ARNTkyOimzHtUBJ5+htpdXk7RMaCOD/j2jxSjEt9u9ZPNeQ==", "funding": [ { "type": "individual", @@ -11172,7 +10198,6 @@ "url": "https://opencollective.com/fast-check" } ], - "license": "MIT", "dependencies": { "pure-rand": "^6.0.0" }, @@ -11185,24 +10210,18 @@ "license": "MIT" }, "node_modules/fast-diff": { - "version": "1.2.0", + "version": "1.3.0", "dev": true, "license": "Apache-2.0" }, "node_modules/fast-equals": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz", - "integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "dev": true, - "license": "MIT" - }, "node_modules/fast-glob": { "version": "3.3.1", "license": "MIT", @@ -11217,6 +10236,16 @@ "node": ">=8.6.0" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "license": "MIT" @@ -11225,6 +10254,19 @@ "version": "2.0.6", "license": "MIT" }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "dev": true, + "license": "MIT" + }, "node_modules/fastq": { "version": "1.15.0", "license": "ISC", @@ -11250,14 +10292,22 @@ "node": ">=0.10.0" } }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/file-entry-cache": { - "version": "6.0.1", + "version": "7.0.0", + "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^3.1.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=12.0.0" } }, "node_modules/file-url": { @@ -11364,14 +10414,17 @@ } }, "node_modules/find-up": { - "version": "4.1.0", + "version": "5.0.0", "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/find-versions": { @@ -11394,6 +10447,19 @@ "micromatch": "^4.0.2" } }, + "node_modules/findup-sync": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 10.13.0" + } + }, "node_modules/flat": { "version": "5.0.2", "license": "BSD-3-Clause", @@ -11402,22 +10468,23 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", + "version": "3.1.0", "license": "MIT", "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.7", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=12.0.0" } }, "node_modules/flatted": { - "version": "3.2.7", + "version": "3.2.9", "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.2", + "version": "1.15.3", "dev": true, "funding": [ { @@ -11476,6 +10543,10 @@ "readable-stream": "^2.0.0" } }, + "node_modules/from2/node_modules/isarray": { + "version": "1.0.0", + "license": "MIT" + }, "node_modules/from2/node_modules/readable-stream": { "version": "2.3.8", "license": "MIT", @@ -11539,7 +10610,7 @@ "license": "ISC" }, "node_modules/fsevents": { - "version": "2.3.2", + "version": "2.3.3", "license": "MIT", "optional": true, "os": [ @@ -11554,13 +10625,13 @@ "license": "MIT" }, "node_modules/function.prototype.name": { - "version": "1.1.5", + "version": "1.1.6", "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -11577,12 +10648,11 @@ } }, "node_modules/gensequence": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-5.0.2.tgz", - "integrity": "sha512-JlKEZnFc6neaeSVlkzBGGgkIoIaSxMgvdamRoPN8r3ozm2r9dusqxeKqYQ7lhzmj2UhFQP8nkyfCaiLQxiLrDA==", + "version": "6.0.0", "dev": true, + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/gensync": { @@ -11607,11 +10677,12 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.0", + "version": "1.2.1", "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" }, "funding": { @@ -11619,7 +10690,7 @@ } }, "node_modules/get-iterator": { - "version": "2.0.0", + "version": "2.0.1", "license": "MIT" }, "node_modules/get-package-type": { @@ -11664,18 +10735,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-uri": { - "version": "6.0.1", - "dev": true, + "node_modules/get-tsconfig": { + "version": "4.7.2", "license": "MIT", + "peer": true, "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^5.0.1", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" + "resolve-pkg-maps": "^1.0.0" }, - "engines": { - "node": ">= 14" + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, "node_modules/gh-pages": { @@ -11699,11 +10767,64 @@ "node": ">=10" } }, + "node_modules/gh-pages/node_modules/array-union": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/gh-pages/node_modules/commander": { "version": "2.20.3", "dev": true, "license": "MIT" }, + "node_modules/gh-pages/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/gh-pages/node_modules/globby": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/pify": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/git-log-parser": { "version": "1.2.0", "license": "MIT", @@ -11728,31 +10849,31 @@ "license": "ISC" }, "node_modules/glob": { - "version": "7.2.3", + "version": "8.1.0", + "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { - "version": "5.1.2", + "version": "6.0.2", "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, "node_modules/glob-to-regexp": { @@ -11760,6 +10881,25 @@ "dev": true, "license": "BSD-2-Clause" }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.6", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/global-agent": { "version": "3.0.0", "license": "BSD-3-Clause", @@ -11789,15 +10929,48 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "license": "ISC", + "node_modules/global-modules": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, "engines": { - "node": ">=10" + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/ini": { + "version": "1.3.8", + "license": "ISC" + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, "node_modules/globals": { - "version": "13.21.0", + "version": "13.22.0", "license": "MIT", "dependencies": { "type-fest": "^0.20.2" @@ -11809,16 +10982,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/globalthis": { "version": "1.0.3", "license": "MIT", @@ -11833,18 +10996,21 @@ } }, "node_modules/globby": { - "version": "6.1.0", - "dev": true, + "version": "11.1.0", "license": "MIT", "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "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": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/gopd": { @@ -11881,7 +11047,7 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.10", + "version": "4.2.11", "license": "ISC" }, "node_modules/graphemer": { @@ -11964,9 +11130,8 @@ }, "node_modules/has-own-prop": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", - "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -12066,6 +11231,16 @@ "version": "0.5.1", "license": "MIT" }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/hook-std": { "version": "3.0.0", "license": "MIT", @@ -12077,14 +11252,8 @@ } }, "node_modules/hosted-git-info": { - "version": "4.1.0", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } + "version": "2.8.9", + "license": "ISC" }, "node_modules/html-escaper": { "version": "2.0.2", @@ -12151,6 +11320,11 @@ "node": ">= 14" } }, + "node_modules/http-proxy/node_modules/eventemitter3": { + "version": "4.0.7", + "dev": true, + "license": "MIT" + }, "node_modules/http2-wrapper": { "version": "1.0.3", "license": "MIT", @@ -12175,7 +11349,7 @@ } }, "node_modules/human-signals": { - "version": "4.3.0", + "version": "4.3.1", "license": "Apache-2.0", "engines": { "node": ">=14.18.0" @@ -12235,10 +11409,6 @@ "version": "0.1.2", "dev": true }, - "node_modules/immutable": { - "version": "4.3.2", - "license": "MIT" - }, "node_modules/import-fresh": { "version": "3.3.0", "license": "MIT", @@ -12289,9 +11459,8 @@ }, "node_modules/import-meta-resolve": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-3.0.0.tgz", - "integrity": "sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -12324,13 +11493,15 @@ "license": "ISC" }, "node_modules/ini": { - "version": "1.3.8", - "license": "ISC" + "version": "2.0.0", + "license": "ISC", + "engines": { + "node": ">=10" + } }, "node_modules/interface-datastore": { "version": "8.2.5", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", - "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "interface-store": "^5.0.0", "nanoid": "^4.0.0", @@ -12338,7 +11509,13 @@ } }, "node_modules/interface-datastore/node_modules/nanoid": { - "version": "4.0.1", + "version": "4.0.2", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "bin": { "nanoid": "bin/nanoid.js" @@ -12348,12 +11525,8 @@ } }, "node_modules/interface-store": { - "version": "5.1.3", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } + "version": "5.1.4", + "license": "Apache-2.0 OR MIT" }, "node_modules/internal-slot": { "version": "1.0.5", @@ -12381,18 +11554,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/invariant": { - "version": "2.2.4", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ip": { - "version": "1.1.8", - "dev": true, - "license": "MIT" - }, "node_modules/ip-regex": { "version": "5.0.0", "license": "MIT", @@ -12404,7 +11565,7 @@ } }, "node_modules/ipaddr.js": { - "version": "2.0.1", + "version": "2.1.0", "license": "MIT", "engines": { "node": ">= 10" @@ -12505,10 +11666,10 @@ } }, "node_modules/is-ci": { - "version": "2.0.0", + "version": "3.0.1", "license": "MIT", "dependencies": { - "ci-info": "^2.0.0" + "ci-info": "^3.2.0" }, "bin": { "is-ci": "bin.js" @@ -12538,13 +11699,14 @@ } }, "node_modules/is-docker": { - "version": "2.2.1", + "version": "3.0.0", + "dev": true, "license": "MIT", "bin": { "is-docker": "cli.js" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -12629,20 +11791,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-inside-container/node_modules/is-docker": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-installed-globally": { "version": "0.4.0", "license": "MIT", @@ -12668,7 +11816,7 @@ } }, "node_modules/is-loopback-addr": { - "version": "2.0.1", + "version": "2.0.2", "license": "MIT" }, "node_modules/is-module": { @@ -12700,6 +11848,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-network-error": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.0.0.tgz", + "integrity": "sha512-P3fxi10Aji2FZmHTrMPSNFbNC6nnp4U5juPAIjXPHkUNubi4+qK7vvdsaNpAUwXslhYm9oyjEYTxs1xd/+Ph0w==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-npm": { "version": "6.0.0", "license": "MIT", @@ -12775,6 +11934,17 @@ "node": ">=0.10.0" } }, + "node_modules/is-port-reachable": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-promise": { "version": "2.2.2", "license": "MIT" @@ -12848,24 +12018,20 @@ } }, "node_modules/is-text-path": { - "version": "1.0.1", + "version": "2.0.0", "license": "MIT", "dependencies": { - "text-extensions": "^1.0.0" + "text-extensions": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/is-typed-array": { - "version": "1.1.10", + "version": "1.1.12", "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -12919,6 +12085,19 @@ "node": ">=8" } }, + "node_modules/is-wsl/node_modules/is-docker": { + "version": "2.2.1", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-yarn-global": { "version": "0.4.1", "license": "MIT", @@ -12927,7 +12106,7 @@ } }, "node_modules/isarray": { - "version": "1.0.0", + "version": "2.0.5", "license": "MIT" }, "node_modules/isbinaryfile": { @@ -13041,6 +12220,13 @@ "node": ">=8" } }, + "node_modules/istanbul-lib-processinfo/node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/istanbul-lib-report": { "version": "3.0.1", "license": "BSD-3-Clause", @@ -13066,19 +12252,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/istanbul-lib-report/node_modules/supports-color": { "version": "7.2.0", "license": "MIT", @@ -13117,19 +12290,15 @@ "license": "Apache-2.0 OR MIT" }, "node_modules/it-batched-bytes": { - "version": "2.0.3", + "version": "2.0.4", "license": "Apache-2.0 OR MIT", "dependencies": { "p-defer": "^4.0.0", "uint8arraylist": "^2.4.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" } }, "node_modules/it-byte-stream": { - "version": "1.0.0", + "version": "1.0.1", "license": "Apache-2.0 OR MIT", "dependencies": { "it-pushable": "^3.2.0", @@ -13137,29 +12306,20 @@ "uint8arraylist": "^2.4.1" } }, - "node_modules/it-byte-stream/node_modules/it-stream-types": { - "version": "2.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/it-drain": { - "version": "3.0.2", + "version": "3.0.3", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/it-filter": { + "version": "3.0.3", "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "dependencies": { + "it-peekable": "^3.0.0" } }, "node_modules/it-first": { - "version": "3.0.2", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } + "version": "3.0.3", + "license": "Apache-2.0 OR MIT" }, "node_modules/it-handshake": { "version": "4.1.3", @@ -13176,21 +12336,14 @@ "npm": ">=7.0.0" } }, - "node_modules/it-handshake/node_modules/it-stream-types": { - "version": "2.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/it-length-prefixed": { - "version": "9.0.1", + "version": "9.0.3", "license": "Apache-2.0 OR MIT", "dependencies": { "err-code": "^3.0.1", + "it-reader": "^6.0.1", "it-stream-types": "^2.0.1", - "uint8-varint": "^1.0.1", + "uint8-varint": "^2.0.1", "uint8arraylist": "^2.0.0", "uint8arrays": "^4.0.2" }, @@ -13200,61 +12353,33 @@ } }, "node_modules/it-length-prefixed-stream": { - "version": "1.0.0", + "version": "1.0.2", "license": "Apache-2.0 OR MIT", "dependencies": { "it-byte-stream": "^1.0.0", "it-length-prefixed": "^9.0.1", "it-stream-types": "^2.0.1", - "uint8-varint": "^1.0.6", + "uint8-varint": "^2.0.1", "uint8arraylist": "^2.4.1" } }, - "node_modules/it-length-prefixed-stream/node_modules/it-stream-types": { - "version": "2.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-length-prefixed/node_modules/it-stream-types": { - "version": "2.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/it-map": { - "version": "3.0.3", + "version": "3.0.4", "license": "Apache-2.0 OR MIT", "dependencies": { "it-peekable": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" } }, "node_modules/it-merge": { - "version": "3.0.1", + "version": "3.0.2", "license": "Apache-2.0 OR MIT", "dependencies": { - "it-pushable": "^3.1.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "it-pushable": "^3.2.0" } }, "node_modules/it-ndjson": { - "version": "1.0.3", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } + "version": "1.0.4", + "license": "Apache-2.0 OR MIT" }, "node_modules/it-pair": { "version": "2.0.6", @@ -13268,32 +12393,16 @@ "npm": ">=7.0.0" } }, - "node_modules/it-pair/node_modules/it-stream-types": { - "version": "2.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/it-parallel": { - "version": "3.0.3", + "version": "3.0.4", "license": "Apache-2.0 OR MIT", "dependencies": { "p-defer": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" } }, "node_modules/it-peekable": { - "version": "3.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } + "version": "3.0.2", + "license": "Apache-2.0 OR MIT" }, "node_modules/it-pipe": { "version": "3.0.1", @@ -13308,35 +12417,14 @@ "npm": ">=7.0.0" } }, - "node_modules/it-pipe/node_modules/it-stream-types": { - "version": "2.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/it-protobuf-stream": { - "version": "1.0.0", + "version": "1.0.2", "license": "Apache-2.0 OR MIT", "dependencies": { "it-length-prefixed-stream": "^1.0.0", "it-stream-types": "^2.0.1", "protons-runtime": "^5.0.0", - "uint8-varint": "^1.0.6", "uint8arraylist": "^2.4.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-protobuf-stream/node_modules/it-stream-types": { - "version": "2.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" } }, "node_modules/it-pushable": { @@ -13351,10 +12439,10 @@ } }, "node_modules/it-reader": { - "version": "6.0.2", + "version": "6.0.4", "license": "Apache-2.0 OR MIT", "dependencies": { - "it-stream-types": "^1.0.4", + "it-stream-types": "^2.0.1", "uint8arraylist": "^2.0.0" }, "engines": { @@ -13363,18 +12451,14 @@ } }, "node_modules/it-sort": { - "version": "3.0.2", + "version": "3.0.3", "license": "Apache-2.0 OR MIT", "dependencies": { "it-all": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" } }, "node_modules/it-stream-types": { - "version": "1.0.5", + "version": "2.0.1", "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", @@ -13382,22 +12466,14 @@ } }, "node_modules/it-take": { - "version": "3.0.2", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } + "version": "3.0.3", + "license": "Apache-2.0 OR MIT" }, "node_modules/it-to-buffer": { - "version": "4.0.2", + "version": "4.0.3", "license": "Apache-2.0 OR MIT", "dependencies": { "uint8arrays": "^4.0.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" } }, "node_modules/it-ws": { @@ -13416,16 +12492,8 @@ "npm": ">=7.0.0" } }, - "node_modules/it-ws/node_modules/it-stream-types": { - "version": "2.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/jackspeak": { - "version": "2.3.0", + "version": "2.3.3", "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -13461,8 +12529,9 @@ } }, "node_modules/js-sha3": { - "version": "0.8.0", - "license": "MIT" + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.9.2.tgz", + "integrity": "sha512-8kgvwd03wNGQG1GRvl3yy1Yt40sICAcIMsDU2ZLgoL0Z6z9rkRmf9Vd+bi/gYSzgAqMUGl/jiDKu0J8AWFd+BQ==" }, "node_modules/js-tokens": { "version": "4.0.0", @@ -13521,17 +12590,6 @@ "node": ">=12.0.0" } }, - "node_modules/jsdoc/node_modules/@babel/parser": { - "version": "7.21.2", - "dev": true, - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/jsdoc/node_modules/escape-string-regexp": { "version": "2.0.0", "dev": true, @@ -13586,13 +12644,13 @@ "license": "ISC" }, "node_modules/json5": { - "version": "2.2.3", + "version": "1.0.2", "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, "bin": { "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" } }, "node_modules/jsonc-parser": { @@ -13643,9 +12701,8 @@ }, "node_modules/karma": { "version": "6.4.2", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", - "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", "dev": true, + "license": "MIT", "dependencies": { "@colors/colors": "1.5.0", "body-parser": "^1.19.0", @@ -13698,6 +12755,15 @@ "which": "bin/which" } }, + "node_modules/karma-firefox-launcher": { + "version": "2.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^2.2.0", + "which": "^2.0.1" + } + }, "node_modules/karma-mocha": { "version": "2.0.1", "dev": true, @@ -13706,6 +12772,20 @@ "minimist": "^1.2.3" } }, + "node_modules/karma-webkit-launcher": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "is-ci": "^3.0.1", + "uuid": "^9.0.0" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": true + } + } + }, "node_modules/karma-webpack": { "version": "5.0.0", "dev": true, @@ -13722,6 +12802,25 @@ "webpack": "^5.0.0" } }, + "node_modules/karma-webpack/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/karma/node_modules/ansi-regex": { "version": "5.0.1", "dev": true, @@ -13730,6 +12829,20 @@ "node": ">=8" } }, + "node_modules/karma/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/karma/node_modules/cliui": { "version": "7.0.4", "dev": true, @@ -13740,11 +12853,46 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/karma/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/karma/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, "node_modules/karma/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, "license": "MIT" }, + "node_modules/karma/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/karma/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "dev": true, @@ -13788,6 +12936,22 @@ "node": ">=8" } }, + "node_modules/karma/node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/karma/node_modules/yargs": { "version": "16.2.0", "dev": true, @@ -13874,23 +13038,23 @@ } }, "node_modules/libp2p": { - "version": "0.46.9", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.46.9.tgz", - "integrity": "sha512-voJaMxTaf/LONFdUuSn0rE9SC+VeTwFfIkqSzZGD043CtrUsftToR2+zyIyl2eXS75vTkXyKqzL8Q9IIoqTaFQ==", + "version": "0.46.12", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.46.12.tgz", + "integrity": "sha512-LPEfSVW/tsFNaUplNo/QqDsg9C7wed+lBGPUUhUsRcnPnKQTqZnKBpA9pSv2+A0ST9B++uiyCOk+JK7nIlpjeA==", "dependencies": { "@achingbrain/nat-port-mapper": "^1.0.9", - "@libp2p/crypto": "^2.0.3", + "@libp2p/crypto": "^2.0.4", "@libp2p/interface": "^0.1.2", - "@libp2p/interface-internal": "^0.1.4", - "@libp2p/keychain": "^3.0.3", + "@libp2p/interface-internal": "^0.1.5", + "@libp2p/keychain": "^3.0.4", "@libp2p/logger": "^3.0.2", "@libp2p/multistream-select": "^4.0.2", - "@libp2p/peer-collections": "^4.0.3", + "@libp2p/peer-collections": "^4.0.4", "@libp2p/peer-id": "^3.0.2", - "@libp2p/peer-id-factory": "^3.0.3", - "@libp2p/peer-record": "^6.0.3", - "@libp2p/peer-store": "^9.0.3", - "@libp2p/utils": "^4.0.2", + "@libp2p/peer-id-factory": "^3.0.4", + "@libp2p/peer-record": "^6.0.5", + "@libp2p/peer-store": "^9.0.5", + "@libp2p/utils": "^4.0.3", "@multiformats/mafmt": "^12.1.2", "@multiformats/multiaddr": "^12.1.5", "@multiformats/multiaddr-matcher": "^1.0.0", @@ -13926,9 +13090,8 @@ } }, "node_modules/libp2p/node_modules/@libp2p/crypto": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.3.tgz", - "integrity": "sha512-VLhjdkJe8b/vedHp7SosDs62Yxq1i05Ej/YdVaEdWQdJsBRHCwbRlS4hPg3vm21U5hLF0g958r/927Vd/wamZw==", + "version": "2.0.4", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface": "^0.1.2", "@noble/curves": "^1.1.0", @@ -13940,71 +13103,6 @@ "uint8arrays": "^4.0.6" } }, - "node_modules/libp2p/node_modules/@libp2p/logger": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.2.tgz", - "integrity": "sha512-2JtRGBXiGfm1t5XneUIXQ2JusW7QwyYmxsW7hSAYS5J73RQJUicpt5le5obVRt7+OM39ei+nWEuC6Xvm1ugHkw==", - "dependencies": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "node_modules/libp2p/node_modules/@types/retry": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", - "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" - }, - "node_modules/libp2p/node_modules/it-filter": { - "version": "3.0.2", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "it-peekable": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/libp2p/node_modules/it-stream-types": { - "version": "2.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/libp2p/node_modules/multiformats": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.1.tgz", - "integrity": "sha512-GBSToTmri2vJYs8wqcZQ8kB21dCaeTOzHTIAlr8J06C1eL6UbzqURXFZ5Fl0EYm9GAFz1IlYY8SxGOs9G9NJRg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/libp2p/node_modules/p-retry": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.0.0.tgz", - "integrity": "sha512-6NuuXu8Upembd4sNdo4PRbs+M6aHgBTrFE6lkH0YKjVzne3cDW4gkncB98ty/bkMxLxLVNeD5bX9FyWjM7WZ+A==", - "dependencies": { - "@types/retry": "0.12.2", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/libp2p/node_modules/rate-limiter-flexible": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rate-limiter-flexible/-/rate-limiter-flexible-3.0.0.tgz", - "integrity": "sha512-janAJkWxWxmLka0hV+XvCTo0M8keeSeOuz8ZL33cTXrkS4ek9mQ2VJm9ri7fm03oTVth19Sfqb1ijCmo7K/vAg==" - }, "node_modules/lilconfig": { "version": "2.1.0", "license": "MIT", @@ -14025,42 +13123,31 @@ } }, "node_modules/lint-staged": { - "version": "13.2.2", + "version": "14.0.1", "dev": true, "license": "MIT", "dependencies": { - "chalk": "5.2.0", - "cli-truncate": "^3.1.0", - "commander": "^10.0.0", - "debug": "^4.3.4", - "execa": "^7.0.0", + "chalk": "5.3.0", + "commander": "11.0.0", + "debug": "4.3.4", + "execa": "7.2.0", "lilconfig": "2.1.0", - "listr2": "^5.0.7", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.3", - "pidtree": "^0.6.0", - "string-argv": "^0.3.1", - "yaml": "^2.2.2" + "listr2": "6.6.1", + "micromatch": "4.0.5", + "pidtree": "0.6.0", + "string-argv": "0.3.2", + "yaml": "2.3.1" }, "bin": { "lint-staged": "bin/lint-staged.js" }, "engines": { - "node": "^14.13.1 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" }, "funding": { "url": "https://opencollective.com/lint-staged" } }, - "node_modules/lint-staged/node_modules/commander": { - "version": "10.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, "node_modules/listr": { "version": "0.14.3", "license": "MIT", @@ -14162,6 +13249,13 @@ "node": ">=0.10.0" } }, + "node_modules/listr-update-renderer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/listr-update-renderer/node_modules/indent-string": { "version": "3.2.0", "license": "MIT", @@ -14314,16 +13408,6 @@ "node": ">=4" } }, - "node_modules/listr-verbose-renderer/node_modules/ansi-styles": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/listr-verbose-renderer/node_modules/chalk": { "version": "2.4.2", "license": "MIT", @@ -14346,17 +13430,13 @@ "node": ">=4" } }, - "node_modules/listr-verbose-renderer/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/listr-verbose-renderer/node_modules/escape-string-regexp": { + "version": "1.0.5", "license": "MIT", - "dependencies": { - "color-name": "1.1.3" + "engines": { + "node": ">=0.8.0" } }, - "node_modules/listr-verbose-renderer/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, "node_modules/listr-verbose-renderer/node_modules/figures": { "version": "2.0.0", "license": "MIT", @@ -14426,36 +13506,20 @@ "node": ">=6" } }, - "node_modules/listr/node_modules/rxjs": { - "version": "6.6.7", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/listr/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD" - }, "node_modules/listr2": { - "version": "5.0.8", + "version": "6.6.1", "dev": true, "license": "MIT", "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.19", - "log-update": "^4.0.0", - "p-map": "^4.0.0", + "cli-truncate": "^3.1.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^5.0.1", "rfdc": "^1.3.0", - "rxjs": "^7.8.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^8.1.0" }, "engines": { - "node": "^14.13.1 || >=16.0.0" + "node": ">=16.0.0" }, "peerDependencies": { "enquirer": ">= 2.3.0 < 3" @@ -14466,93 +13530,6 @@ } } }, - "node_modules/listr2/node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/listr2/node_modules/cli-truncate": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/listr2/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/listr2/node_modules/slice-ansi": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/listr2/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/listr2/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/load-json-file": { "version": "4.0.0", "license": "MIT", @@ -14577,20 +13554,6 @@ "node": ">=4" } }, - "node_modules/load-json-file/node_modules/pify": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/loader-runner": { "version": "4.3.0", "dev": true, @@ -14600,18 +13563,22 @@ } }, "node_modules/locate-path": { - "version": "5.0.0", + "version": "6.0.0", "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { "version": "4.17.21", - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash-es": { "version": "4.17.21", @@ -14695,6 +13662,13 @@ "node": ">=0.10.0" } }, + "node_modules/log-symbols/node_modules/escape-string-regexp": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/log-symbols/node_modules/strip-ansi": { "version": "3.0.1", "license": "MIT", @@ -14713,108 +13687,21 @@ } }, "node_modules/log-update": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { "version": "5.0.1", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "ansi-escapes": "^5.0.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^5.0.0", + "strip-ansi": "^7.0.1", + "wrap-ansi": "^8.0.1" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-update/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log4js": { @@ -14836,18 +13723,6 @@ "version": "5.2.3", "license": "Apache-2.0" }, - "node_modules/longbits": { - "version": "1.1.0", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "byte-access": "^1.0.1", - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/longest-streak": { "version": "3.1.0", "license": "MIT", @@ -14858,6 +13733,7 @@ }, "node_modules/loose-envify": { "version": "1.4.0", + "dev": true, "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -14919,7 +13795,7 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", + "version": "6.3.1", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -15033,17 +13909,6 @@ "node": ">=10" } }, - "node_modules/matcher/node_modules/escape-string-regexp": { - "version": "4.0.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/matchit": { "version": "1.1.0", "license": "MIT", @@ -15055,7 +13920,7 @@ } }, "node_modules/mdast-util-find-and-replace": { - "version": "3.0.0", + "version": "3.0.1", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", @@ -15290,9 +14155,72 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/meow/node_modules/find-up": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/meow/node_modules/hosted-git-info": { - "version": "2.8.9", - "license": "ISC" + "version": "4.1.0", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/locate-path": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/normalize-package-data": { + "version": "3.0.3", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/p-limit": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/p-locate": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } }, "node_modules/meow/node_modules/read-pkg": { "version": "5.2.0", @@ -15329,6 +14257,10 @@ "node": ">=8" } }, + "node_modules/meow/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "license": "ISC" + }, "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { "version": "2.5.0", "license": "BSD-2-Clause", @@ -15339,6 +14271,13 @@ "validate-npm-package-license": "^3.0.1" } }, + "node_modules/meow/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { "version": "0.6.0", "license": "(MIT OR CC0-1.0)", @@ -15346,13 +14285,6 @@ "node": ">=8" } }, - "node_modules/meow/node_modules/semver": { - "version": "5.7.2", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, "node_modules/meow/node_modules/type-fest": { "version": "0.18.1", "license": "(MIT OR CC0-1.0)", @@ -16056,11 +14988,6 @@ "node": ">=8" } }, - "node_modules/mitt": { - "version": "3.0.1", - "dev": true, - "license": "MIT" - }, "node_modules/mkdirp": { "version": "0.5.6", "license": "MIT", @@ -16173,6 +15100,20 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/mocha/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/mocha/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/mocha/node_modules/diff": { "version": "5.0.0", "license": "BSD-3-Clause", @@ -16184,30 +15125,6 @@ "version": "8.0.0", "license": "MIT" }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mocha/node_modules/glob": { "version": "7.2.0", "license": "ISC", @@ -16253,19 +15170,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mocha/node_modules/log-symbols": { "version": "4.1.0", "license": "MIT", @@ -16311,32 +15215,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mocha/node_modules/serialize-javascript": { "version": "6.0.0", "license": "BSD-3-Clause", @@ -16366,6 +15244,21 @@ "node": ">=8" } }, + "node_modules/mocha/node_modules/wrap-ansi": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/mocha/node_modules/yargs": { "version": "16.2.0", "license": "MIT", @@ -16398,8 +15291,7 @@ }, "node_modules/mortice": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.0.1.tgz", - "integrity": "sha512-eyDUsl1nCR9+JtNksKnaESLP9MgAXCA4w1LTtsmOSQNsThnv++f36rrBu5fC/fdGIwTJZmbiaR/QewptH93pYA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "nanoid": "^4.0.0", "observable-webworkers": "^2.0.1", @@ -16413,14 +15305,13 @@ }, "node_modules/mortice/node_modules/nanoid": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", - "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.js" }, @@ -16447,7 +15338,7 @@ "license": "MIT" }, "node_modules/multiformats": { - "version": "11.0.2", + "version": "12.1.1", "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", @@ -16471,13 +15362,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/multimatch/node_modules/array-union": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/multimatch/node_modules/arrify": { "version": "2.0.1", "license": "MIT", @@ -16490,13 +15374,18 @@ "license": "ISC" }, "node_modules/nan": { - "version": "2.17.0", + "version": "2.18.0", "license": "MIT", "optional": true }, "node_modules/nanoid": { - "version": "3.3.4", - "dev": true, + "version": "3.3.6", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" @@ -16577,6 +15466,17 @@ "type-detect": "4.0.8" } }, + "node_modules/nise/node_modules/isarray": { + "version": "0.0.1", + "license": "MIT" + }, + "node_modules/nise/node_modules/path-to-regexp": { + "version": "1.8.0", + "license": "MIT", + "dependencies": { + "isarray": "0.0.1" + } + }, "node_modules/node-emoji": { "version": "1.11.0", "license": "MIT", @@ -16585,7 +15485,7 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", + "version": "2.7.0", "dev": true, "license": "MIT", "dependencies": { @@ -16625,16 +15525,20 @@ "license": "MIT" }, "node_modules/normalize-package-data": { - "version": "3.0.3", + "version": "2.5.0", "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, "node_modules/normalize-path": { @@ -16855,13 +15759,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/npm-package-json-lint/node_modules/array-union": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/npm-package-json-lint/node_modules/chalk": { "version": "4.1.2", "license": "MIT", @@ -16876,27 +15773,64 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/npm-package-json-lint/node_modules/globby": { - "version": "11.1.0", + "node_modules/npm-package-json-lint/node_modules/color-convert": { + "version": "2.0.1", "license": "MIT", "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" + "color-name": "~1.1.4" }, "engines": { - "node": ">=10" + "node": ">=7.0.0" + } + }, + "node_modules/npm-package-json-lint/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/npm-package-json-lint/node_modules/cosmiconfig": { + "version": "8.3.6", + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/npm-package-json-lint/node_modules/find-up": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/npm-package-json-lint/node_modules/hosted-git-info": { - "version": "2.8.9", - "license": "ISC" + "version": "4.1.0", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } }, "node_modules/npm-package-json-lint/node_modules/is-plain-obj": { "version": "3.0.0", @@ -16918,6 +15852,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm-package-json-lint/node_modules/locate-path": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/npm-package-json-lint/node_modules/log-symbols": { "version": "4.1.0", "license": "MIT", @@ -16966,6 +15910,42 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm-package-json-lint/node_modules/normalize-package-data": { + "version": "3.0.3", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-package-json-lint/node_modules/p-limit": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-package-json-lint/node_modules/p-locate": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/npm-package-json-lint/node_modules/read-pkg": { "version": "5.2.0", "license": "MIT", @@ -17001,6 +15981,10 @@ "node": ">=8" } }, + "node_modules/npm-package-json-lint/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "license": "ISC" + }, "node_modules/npm-package-json-lint/node_modules/read-pkg/node_modules/normalize-package-data": { "version": "2.5.0", "license": "BSD-2-Clause", @@ -17025,19 +16009,6 @@ "node": ">=8" } }, - "node_modules/npm-package-json-lint/node_modules/semver": { - "version": "7.5.4", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/npm-package-json-lint/node_modules/supports-color": { "version": "7.2.0", "license": "MIT", @@ -17089,17 +16060,6 @@ "node": ">= 4" } }, - "node_modules/npm-run-all/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/npm-run-all/node_modules/chalk": { "version": "2.4.2", "dev": true, @@ -17113,19 +16073,6 @@ "node": ">=4" } }, - "node_modules/npm-run-all/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/npm-run-all/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, "node_modules/npm-run-all/node_modules/cross-spawn": { "version": "6.0.5", "dev": true, @@ -17141,6 +16088,14 @@ "node": ">=4.8" } }, + "node_modules/npm-run-all/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/npm-run-all/node_modules/has-flag": { "version": "3.0.0", "dev": true, @@ -17149,22 +16104,6 @@ "node": ">=4" } }, - "node_modules/npm-run-all/node_modules/hosted-git-info": { - "version": "2.8.9", - "dev": true, - "license": "ISC" - }, - "node_modules/npm-run-all/node_modules/normalize-package-data": { - "version": "2.5.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, "node_modules/npm-run-all/node_modules/path-key": { "version": "2.0.1", "dev": true, @@ -17173,17 +16112,6 @@ "node": ">=4" } }, - "node_modules/npm-run-all/node_modules/path-type": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/npm-run-all/node_modules/pidtree": { "version": "0.3.1", "dev": true, @@ -17195,29 +16123,8 @@ "node": ">=0.10" } }, - "node_modules/npm-run-all/node_modules/pify": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/read-pkg": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true, "license": "ISC", "bin": { @@ -20085,10 +18992,53 @@ "wrap-ansi": "^6.2.0" } }, + "node_modules/nyc/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/nyc/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/nyc/node_modules/emoji-regex": { "version": "8.0.0", "license": "MIT" }, + "node_modules/nyc/node_modules/find-up": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/glob": { + "version": "7.2.3", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/nyc/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "license": "MIT", @@ -20096,6 +19046,39 @@ "node": ">=8" } }, + "node_modules/nyc/node_modules/locate-path": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/p-limit": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nyc/node_modules/p-locate": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/nyc/node_modules/p-map": { "version": "3.0.0", "license": "MIT", @@ -20226,13 +19209,38 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.values": { - "version": "1.1.6", + "node_modules/object.fromentries": { + "version": "2.0.7", "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -20243,8 +19251,7 @@ }, "node_modules/observable-webworkers": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-2.0.1.tgz", - "integrity": "sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -20261,6 +19268,14 @@ "node": ">= 0.8" } }, + "node_modules/on-headers": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/once": { "version": "1.4.0", "license": "ISC", @@ -20282,14 +19297,17 @@ } }, "node_modules/open": { - "version": "7.4.2", + "version": "9.1.0", + "dev": true, "license": "MIT", "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -20311,38 +19329,29 @@ } }, "node_modules/ora": { - "version": "6.3.1", + "version": "7.0.1", "license": "MIT", "dependencies": { - "chalk": "^5.0.0", + "chalk": "^5.3.0", "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", + "cli-spinners": "^2.9.0", "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", + "is-unicode-supported": "^1.3.0", "log-symbols": "^5.1.0", "stdin-discarder": "^0.1.0", - "strip-ansi": "^7.0.1", - "wcwidth": "^1.0.1" + "string-width": "^6.1.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/ora/node_modules/emoji-regex": { + "version": "10.2.1", + "license": "MIT" }, "node_modules/ora/node_modules/log-symbols": { "version": "5.1.0", @@ -20358,35 +19367,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/mimic-fn": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/onetime": { - "version": "5.1.2", + "node_modules/ora/node_modules/string-width": { + "version": "6.1.0", "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^10.2.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -20427,23 +19417,14 @@ } }, "node_modules/p-event": { - "version": "5.0.1", - "license": "MIT", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.0.tgz", + "integrity": "sha512-Xbfxd0CfZmHLGKXH32k1JKjQYX6Rkv0UtQdaFJ8OyNcf+c0oWCeXHc1C4CX/IESZLmcvfPa5aFIO/vCr5gqtag==", "dependencies": { - "p-timeout": "^5.0.2" + "p-timeout": "^6.1.2" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-event/node_modules/p-timeout": { - "version": "5.1.0", - "license": "MIT", - "engines": { - "node": ">=12" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -20537,33 +19518,10 @@ } }, "node_modules/p-limit": { - "version": "2.3.0", + "version": "3.1.0", "license": "MIT", "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" + "yocto-queue": "^0.1.0" }, "engines": { "node": ">=10" @@ -20572,11 +19530,34 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-queue": { - "version": "7.3.4", + "node_modules/p-locate": { + "version": "5.0.0", "license": "MIT", "dependencies": { - "eventemitter3": "^4.0.7", + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "6.0.0", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "7.4.1", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.1", "p-timeout": "^5.0.2" }, "engines": { @@ -20604,14 +19585,16 @@ } }, "node_modules/p-retry": { - "version": "5.1.2", - "license": "MIT", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.1.0.tgz", + "integrity": "sha512-fJLEQ2KqYBJRuaA/8cKMnqhulqNM+bpcjYtXNex2t3mOXKRYPitAJt9NacSf8XAFzcYahSAbKpobiWDSqHSh2g==", "dependencies": { - "@types/retry": "0.12.1", + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", "retry": "^0.13.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -20654,60 +19637,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pac-proxy-agent": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "pac-resolver": "^7.0.0", - "socks-proxy-agent": "^8.0.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-proxy-agent/node_modules/agent-base": { - "version": "7.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "degenerator": "^5.0.0", - "ip": "^1.1.8", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/package-hash": { "version": "4.0.0", "license": "ISC", @@ -20841,6 +19770,19 @@ "node": ">=12.20" } }, + "node_modules/package-json/node_modules/registry-url": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/package-json/node_modules/responselike": { "version": "3.0.0", "license": "MIT", @@ -20856,9 +19798,8 @@ }, "node_modules/parent-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", - "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.1.0" }, @@ -20882,6 +19823,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/parseurl": { "version": "1.3.3", "dev": true, @@ -20954,6 +19902,24 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/patch-package/node_modules/ci-info": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/patch-package/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/patch-package/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/patch-package/node_modules/cross-spawn": { "version": "6.0.5", "license": "MIT", @@ -20981,6 +19947,47 @@ "node": ">=10" } }, + "node_modules/patch-package/node_modules/glob": { + "version": "7.2.3", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/patch-package/node_modules/is-ci": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/patch-package/node_modules/is-docker": { + "version": "2.2.1", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/patch-package/node_modules/jsonfile": { "version": "6.1.0", "license": "MIT", @@ -20991,6 +19998,20 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/patch-package/node_modules/open": { + "version": "7.4.2", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/patch-package/node_modules/path-key": { "version": "2.0.1", "license": "MIT", @@ -21109,6 +20130,11 @@ "node": ">=0.10.0" } }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "dev": true, + "license": "(WTFPL OR MIT)" + }, "node_modules/path-key": { "version": "3.1.1", "license": "MIT", @@ -21149,14 +20175,8 @@ } }, "node_modules/path-to-regexp": { - "version": "1.8.0", - "license": "MIT", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/path-to-regexp/node_modules/isarray": { - "version": "0.0.1", + "version": "2.2.1", + "dev": true, "license": "MIT" }, "node_modules/path-type": { @@ -21207,10 +20227,10 @@ } }, "node_modules/pify": { - "version": "2.3.0", + "version": "3.0.0", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, "node_modules/pinkie": { @@ -21306,6 +20326,50 @@ "node": ">=8" } }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/pkg-up": { "version": "2.0.0", "license": "MIT", @@ -21375,8 +20439,26 @@ "version": "1.3.6", "license": "MIT" }, + "node_modules/playwright": { + "version": "1.38.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.38.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, "node_modules/playwright-core": { - "version": "1.36.0", + "version": "1.38.1", + "dev": true, "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" @@ -21386,30 +20468,30 @@ } }, "node_modules/playwright-test": { - "version": "12.1.1", + "version": "12.3.4", "license": "MIT", "dependencies": { "acorn-loose": "^8.3.0", - "assert": "^2.0.0", + "assert": "^2.1.0", "buffer": "^6.0.3", - "c8": "^8.0.0", - "camelcase": "^7.0.1", + "c8": "^8.0.1", + "camelcase": "^8.0.0", "chokidar": "^3.5.3", "cpy": "^10.1.0", - "esbuild": "0.18.12", + "esbuild": "0.19.3", "esbuild-plugin-wasm": "^1.1.0", "events": "^3.3.0", - "execa": "^7.1.1", + "execa": "^8.0.1", "globby": "^13.2.2", "kleur": "^4.1.5", "lilconfig": "^2.1.0", "lodash": "^4.17.21", "merge-options": "^3.0.4", - "nanoid": "^4.0.2", - "ora": "^6.3.1", - "p-wait-for": "5.0.2", + "nanoid": "^5.0.1", + "ora": "^7.0.1", + "p-timeout": "^6.1.2", "path-browserify": "^1.0.1", - "playwright-core": "1.36.0", + "playwright-core": "1.38.0", "polka": "^0.5.2", "premove": "^4.0.0", "process": "^0.11.10", @@ -21418,7 +20500,6 @@ "source-map": "0.6.1", "source-map-support": "^0.5.21", "stream-browserify": "^3.0.0", - "strip-ansi": "^7.1.0", "tempy": "^3.1.0", "test-exclude": "^6.0.0", "util": "^0.12.5", @@ -21432,20 +20513,6 @@ "node": ">=16.0.0" } }, - "node_modules/playwright-test/node_modules/@esbuild/darwin-arm64": { - "version": "0.18.12", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/playwright-test/node_modules/buffer": { "version": "6.0.3", "funding": [ @@ -21469,48 +20536,44 @@ } }, "node_modules/playwright-test/node_modules/camelcase": { - "version": "7.0.1", + "version": "8.0.0", "license": "MIT", "engines": { - "node": ">=14.16" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/playwright-test/node_modules/esbuild": { - "version": "0.18.12", - "hasInstallScript": true, + "node_modules/playwright-test/node_modules/execa": { + "version": "8.0.1", "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": ">=12" + "node": ">=16.17" }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.12", - "@esbuild/android-arm64": "0.18.12", - "@esbuild/android-x64": "0.18.12", - "@esbuild/darwin-arm64": "0.18.12", - "@esbuild/darwin-x64": "0.18.12", - "@esbuild/freebsd-arm64": "0.18.12", - "@esbuild/freebsd-x64": "0.18.12", - "@esbuild/linux-arm": "0.18.12", - "@esbuild/linux-arm64": "0.18.12", - "@esbuild/linux-ia32": "0.18.12", - "@esbuild/linux-loong64": "0.18.12", - "@esbuild/linux-mips64el": "0.18.12", - "@esbuild/linux-ppc64": "0.18.12", - "@esbuild/linux-riscv64": "0.18.12", - "@esbuild/linux-s390x": "0.18.12", - "@esbuild/linux-x64": "0.18.12", - "@esbuild/netbsd-x64": "0.18.12", - "@esbuild/openbsd-x64": "0.18.12", - "@esbuild/sunos-x64": "0.18.12", - "@esbuild/win32-arm64": "0.18.12", - "@esbuild/win32-ia32": "0.18.12", - "@esbuild/win32-x64": "0.18.12" + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/playwright-test/node_modules/get-stream": { + "version": "8.0.1", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/playwright-test/node_modules/globby": { @@ -21530,8 +20593,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/playwright-test/node_modules/human-signals": { + "version": "5.0.0", + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, "node_modules/playwright-test/node_modules/nanoid": { - "version": "4.0.2", + "version": "5.0.1", "funding": [ { "type": "github", @@ -21543,7 +20613,27 @@ "nanoid": "bin/nanoid.js" }, "engines": { - "node": "^14 || ^16 || >=18" + "node": "^18 || >=20" + } + }, + "node_modules/playwright-test/node_modules/playwright-core": { + "version": "1.38.0", + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/playwright-test/node_modules/signal-exit": { + "version": "4.1.0", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/playwright-test/node_modules/slash": { @@ -21567,6 +20657,18 @@ "which-typed-array": "^1.1.2" } }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/please-upgrade-node": { "version": "3.2.0", "license": "MIT", @@ -21622,7 +20724,7 @@ } }, "node_modules/postcss": { - "version": "8.4.28", + "version": "8.4.30", "funding": [ { "type": "opencollective", @@ -21647,22 +20749,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.6", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", "license": "MIT", @@ -21681,7 +20767,7 @@ } }, "node_modules/prettier": { - "version": "3.0.1", + "version": "3.0.3", "dev": true, "license": "MIT", "peer": true, @@ -21707,12 +20793,12 @@ } }, "node_modules/private-ip": { - "version": "3.0.0", + "version": "3.0.1", "license": "MIT", "dependencies": { "@chainsafe/is-ip": "^2.0.1", "ip-regex": "^5.0.0", - "ipaddr.js": "^2.0.1", + "ipaddr.js": "^2.1.0", "netmask": "^2.0.2" }, "engines": { @@ -21786,7 +20872,7 @@ "license": "ISC" }, "node_modules/protobufjs": { - "version": "7.2.4", + "version": "7.2.5", "hasInstallScript": true, "license": "BSD-3-Clause", "dependencies": { @@ -21807,229 +20893,8 @@ "node": ">=12.0.0" } }, - "node_modules/protons": { - "version": "7.0.2", - "dev": true, - "license": "Apache-2.0 OR MIT", - "dependencies": { - "meow": "^11.0.0", - "protobufjs-cli": "^1.0.0" - }, - "bin": { - "protons": "dist/bin/protons.js" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/protons-runtime": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-5.0.2.tgz", - "integrity": "sha512-eKppVrIS5dDh+Y61Yj4bDEOs2sQLQbQGIhr7EBiybPQhIMGBynzVXlYILPWl3Td1GDadobc8qevh5D+JwfG9bw==", - "dependencies": { - "protobufjs": "^7.0.0", - "uint8arraylist": "^2.4.3" - }, - "peerDependencies": { - "uint8arraylist": "^2.3.2" - } - }, - "node_modules/protons/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/protons/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/protons/node_modules/camelcase": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/protons/node_modules/camelcase-keys": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^7.0.0", - "map-obj": "^4.3.0", - "quick-lru": "^6.1.1", - "type-fest": "^2.13.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/protons/node_modules/camelcase-keys/node_modules/type-fest": { - "version": "2.19.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/protons/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "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/protons/node_modules/decamelize": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/protons/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/protons/node_modules/glob": { - "version": "8.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/protons/node_modules/hosted-git-info": { - "version": "5.2.1", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/protons/node_modules/indent-string": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/protons/node_modules/lru-cache": { - "version": "7.18.3", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/protons/node_modules/meow": { - "version": "11.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimist": "^1.2.2", - "camelcase-keys": "^8.0.2", - "decamelize": "^6.0.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^4.0.1", - "read-pkg-up": "^9.1.0", - "redent": "^4.0.0", - "trim-newlines": "^4.0.2", - "type-fest": "^3.1.0", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/protons/node_modules/minimatch": { - "version": "5.1.6", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/protons/node_modules/normalize-package-data": { - "version": "4.0.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^5.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/protons/node_modules/protobufjs-cli": { - "version": "1.1.1", + "node_modules/protobufjs-cli": { + "version": "1.1.2", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -22055,47 +20920,52 @@ "protobufjs": "^7.0.0" } }, - "node_modules/protons/node_modules/quick-lru": { - "version": "6.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/protons/node_modules/redent": { - "version": "4.0.0", + "node_modules/protobufjs-cli/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, "license": "MIT", "dependencies": { - "indent-string": "^5.0.0", - "strip-indent": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/protons/node_modules/strip-indent": { - "version": "4.0.0", + "node_modules/protobufjs-cli/node_modules/chalk": { + "version": "4.1.2", "dev": true, "license": "MIT", "dependencies": { - "min-indent": "^1.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/protons/node_modules/supports-color": { + "node_modules/protobufjs-cli/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/protobufjs-cli/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/protobufjs-cli/node_modules/supports-color": { "version": "7.2.0", "dev": true, "license": "MIT", @@ -22106,77 +20976,40 @@ "node": ">=8" } }, - "node_modules/protons/node_modules/trim-newlines": { - "version": "4.0.2", + "node_modules/protons": { + "version": "7.0.5", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "meow": "^12.0.1", + "protobufjs-cli": "^1.0.0" + }, + "bin": { + "protons": "dist/bin/protons.js" + } + }, + "node_modules/protons-runtime": { + "version": "5.0.2", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "protobufjs": "^7.0.0", + "uint8arraylist": "^2.4.3" + }, + "peerDependencies": { + "uint8arraylist": "^2.3.2" + } + }, + "node_modules/protons/node_modules/meow": { + "version": "12.1.1", "dev": true, "license": "MIT", "engines": { - "node": ">=12" + "node": ">=16.10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/protons/node_modules/type-fest": { - "version": "3.6.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/proxy-agent": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.0.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/agent-base": { - "version": "7.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/https-proxy-agent": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "7.18.3", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/proxy-from-env": { "version": "1.1.0", "dev": true, @@ -22214,20 +21047,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/puppeteer": { - "version": "21.1.1", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "1.7.0", - "cosmiconfig": "8.2.0", - "puppeteer-core": "21.1.1" - }, - "engines": { - "node": ">=16.3.0" - } - }, "node_modules/puppeteer-core": { "version": "13.7.0", "dev": true, @@ -22250,76 +21069,8 @@ "node": ">=10.18.1" } }, - "node_modules/puppeteer/node_modules/cross-fetch": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/puppeteer/node_modules/devtools-protocol": { - "version": "0.0.1159816", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/puppeteer/node_modules/node-fetch": { - "version": "2.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/puppeteer/node_modules/puppeteer-core": { - "version": "21.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "1.7.0", - "chromium-bidi": "0.4.22", - "cross-fetch": "4.0.0", - "debug": "4.3.4", - "devtools-protocol": "0.0.1159816", - "ws": "8.13.0" - }, - "engines": { - "node": ">=16.3.0" - } - }, - "node_modules/puppeteer/node_modules/ws": { - "version": "8.13.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/pure-rand": { - "version": "6.0.1", + "version": "6.0.3", "funding": [ { "type": "individual", @@ -22354,14 +21105,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/query-ast": { - "version": "1.0.5", - "license": "BSD-3-Clause", - "dependencies": { - "invariant": "2.2.4", - "lodash": "^4.17.21" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "funding": [ @@ -22380,11 +21123,6 @@ ], "license": "MIT" }, - "node_modules/queue-tick": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "node_modules/quick-lru": { "version": "5.1.1", "license": "MIT", @@ -22415,7 +21153,7 @@ } }, "node_modules/rate-limiter-flexible": { - "version": "2.4.1", + "version": "3.0.0", "license": "ISC" }, "node_modules/raw-body": { @@ -22445,6 +21183,10 @@ "rc": "cli.js" } }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "license": "ISC" + }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", "license": "MIT", @@ -22522,13 +21264,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/react-native-test-runner/node_modules/array-union": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/react-native-test-runner/node_modules/chalk": { "version": "4.1.2", "license": "MIT", @@ -22543,6 +21278,34 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/react-native-test-runner/node_modules/ci-info": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/react-native-test-runner/node_modules/cli-cursor": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/react-native-test-runner/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/react-native-test-runner/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/react-native-test-runner/node_modules/crypto-random-string": { "version": "2.0.0", "license": "MIT", @@ -22571,20 +21334,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/react-native-test-runner/node_modules/find-up": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/react-native-test-runner/node_modules/fs-extra": { "version": "9.1.0", "license": "MIT", @@ -22611,28 +21360,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-native-test-runner/node_modules/globby": { - "version": "11.1.0", - "license": "MIT", - "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/react-native-test-runner/node_modules/hosted-git-info": { - "version": "2.8.9", - "license": "ISC" - }, "node_modules/react-native-test-runner/node_modules/human-signals": { "version": "1.1.1", "license": "Apache-2.0", @@ -22640,6 +21367,16 @@ "node": ">=8.12.0" } }, + "node_modules/react-native-test-runner/node_modules/is-ci": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, "node_modules/react-native-test-runner/node_modules/is-interactive": { "version": "1.0.0", "license": "MIT", @@ -22677,19 +21414,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/react-native-test-runner/node_modules/locate-path": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/react-native-test-runner/node_modules/log-symbols": { "version": "4.1.0", "license": "MIT", @@ -22711,23 +21435,6 @@ "node": ">=6" } }, - "node_modules/react-native-test-runner/node_modules/normalize-package-data": { - "version": "2.5.0", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/react-native-test-runner/node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, "node_modules/react-native-test-runner/node_modules/npm-run-path": { "version": "4.0.1", "license": "MIT", @@ -22772,32 +21479,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-native-test-runner/node_modules/p-limit": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-native-test-runner/node_modules/p-locate": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/react-native-test-runner/node_modules/p-retry": { "version": "4.6.2", "license": "MIT", @@ -22822,6 +21503,17 @@ "node": ">=8" } }, + "node_modules/react-native-test-runner/node_modules/restore-cursor": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/react-native-test-runner/node_modules/strip-ansi": { "version": "6.0.1", "license": "MIT", @@ -22907,6 +21599,13 @@ "node": ">= 10.0.0" } }, + "node_modules/react-native-test-runner/node_modules/yn": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/react-refresh": { "version": "0.4.3", "license": "MIT", @@ -22925,13 +21624,25 @@ } }, "node_modules/read-pkg": { - "version": "8.0.0", + "version": "3.0.0", + "dev": true, "license": "MIT", "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^5.0.0", - "parse-json": "^7.0.0", - "type-fest": "^3.8.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "10.1.0", + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0", + "read-pkg": "^8.1.0", + "type-fest": "^4.2.0" }, "engines": { "node": ">=16" @@ -22940,25 +21651,8 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up": { - "version": "9.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^7.1.0", - "type-fest": "^2.5.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/read-pkg-up/node_modules/find-up": { "version": "6.3.0", - "dev": true, "license": "MIT", "dependencies": { "locate-path": "^7.1.0", @@ -22971,9 +21665,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/read-pkg-up/node_modules/hosted-git-info": { + "version": "7.0.1", + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/read-pkg-up/node_modules/json-parse-even-better-errors": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-pkg-up/node_modules/lines-and-columns": { + "version": "2.0.3", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/read-pkg-up/node_modules/locate-path": { "version": "7.2.0", - "dev": true, "license": "MIT", "dependencies": { "p-locate": "^6.0.0" @@ -22985,9 +21702,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/read-pkg-up/node_modules/lru-cache": { + "version": "10.0.1", + "license": "ISC", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/read-pkg-up/node_modules/normalize-package-data": { + "version": "6.0.0", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/read-pkg-up/node_modules/p-limit": { "version": "4.0.0", - "dev": true, "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" @@ -23001,7 +21737,6 @@ }, "node_modules/read-pkg-up/node_modules/p-locate": { "version": "6.0.0", - "dev": true, "license": "MIT", "dependencies": { "p-limit": "^4.0.0" @@ -23013,99 +21748,8 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/read-pkg-up/node_modules/read-pkg": { + "node_modules/read-pkg-up/node_modules/parse-json": { "version": "7.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "2.19.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/yocto-queue": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "6.1.1", - "license": "ISC", - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-pkg/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-pkg/node_modules/lines-and-columns": { - "version": "2.0.3", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/read-pkg/node_modules/lru-cache": { - "version": "7.18.3", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "5.0.0", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-pkg/node_modules/parse-json": { - "version": "7.0.0", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.21.4", @@ -23121,7 +21765,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg/node_modules/type-fest": { + "node_modules/read-pkg-up/node_modules/parse-json/node_modules/type-fest": { "version": "3.13.1", "license": "(MIT OR CC0-1.0)", "engines": { @@ -23131,6 +21775,60 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "8.1.0", + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^6.0.0", + "parse-json": "^7.0.0", + "type-fest": "^4.2.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "4.3.1", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/yocto-queue": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "license": "MIT", @@ -23183,7 +21881,7 @@ "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", + "version": "10.1.1", "license": "MIT", "dependencies": { "regenerate": "^1.4.2" @@ -23204,12 +21902,12 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", + "version": "1.5.1", "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -23254,16 +21952,14 @@ } }, "node_modules/registry-url": { - "version": "6.0.1", + "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { - "rc": "1.2.8" + "rc": "^1.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/regjsparser": { @@ -23294,9 +21990,8 @@ }, "node_modules/repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } @@ -23308,6 +22003,14 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/require-main-filename": { "version": "2.0.0", "license": "ISC" @@ -23337,7 +22040,7 @@ } }, "node_modules/resolve": { - "version": "1.22.4", + "version": "1.22.6", "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", @@ -23355,6 +22058,17 @@ "version": "1.2.1", "license": "MIT" }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve-from": { "version": "5.0.0", "license": "MIT", @@ -23362,6 +22076,14 @@ "node": ">=8" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/responselike": { "version": "2.0.1", "license": "MIT", @@ -23373,14 +22095,17 @@ } }, "node_modules/restore-cursor": { - "version": "3.1.0", + "version": "4.0.0", "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/restore-cursor/node_modules/mimic-fn": { @@ -23443,6 +22168,24 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/roarr": { "version": "2.15.4", "license": "BSD-3-Clause", @@ -23461,9 +22204,8 @@ }, "node_modules/rollup": { "version": "3.29.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.2.tgz", - "integrity": "sha512-CJouHoZ27v6siztc21eEQGo0kIcE5D1gVPA571ez0mMYb25LGYGKnVNXpEj5MGlepmDWGXNjDB5q7uNiPHC11A==", "dev": true, + "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, @@ -23593,13 +22335,19 @@ } }, "node_modules/rxjs": { - "version": "7.8.0", - "dev": true, + "version": "6.6.7", "license": "Apache-2.0", "dependencies": { - "tslib": "^2.1.0" + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" } }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, "node_modules/sade": { "version": "1.8.1", "license": "MIT", @@ -23610,6 +22358,22 @@ "node": ">=6" } }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "funding": [ @@ -23646,33 +22410,17 @@ }, "node_modules/sanitize-filename": { "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "license": "WTFPL OR ISC", "dependencies": { "truncate-utf8-bytes": "^1.0.0" } }, - "node_modules/sass": { - "version": "1.65.1", - "license": "MIT", - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/sax": { "version": "1.2.4", "license": "ISC" }, "node_modules/schema-utils": { - "version": "3.1.1", + "version": "3.3.0", "dev": true, "license": "MIT", "dependencies": { @@ -23688,17 +22436,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/scss-parser": { - "version": "1.0.6", - "license": "SEE LICENSE IN README", - "dependencies": { - "invariant": "2.2.4", - "lodash": "4.17.21" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/semantic-release": { "name": "@achingbrain/semantic-release", "version": "21.0.9", @@ -23822,10 +22559,6 @@ "node": ">=12" } }, - "node_modules/semantic-release-monorepo/node_modules/hosted-git-info": { - "version": "2.8.9", - "license": "ISC" - }, "node_modules/semantic-release-monorepo/node_modules/is-stream": { "version": "1.1.0", "license": "MIT", @@ -23851,16 +22584,6 @@ "yallist": "^2.1.2" } }, - "node_modules/semantic-release-monorepo/node_modules/normalize-package-data": { - "version": "2.5.0", - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, "node_modules/semantic-release-monorepo/node_modules/npm-run-path": { "version": "2.0.2", "license": "MIT", @@ -23918,13 +22641,6 @@ "node": ">=8" } }, - "node_modules/semantic-release-monorepo/node_modules/semver": { - "version": "5.7.2", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, "node_modules/semantic-release-monorepo/node_modules/shebang-command": { "version": "1.2.0", "license": "MIT", @@ -24090,20 +22806,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/find-up": { - "version": "6.3.0", - "license": "MIT", - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/semantic-release/node_modules/hosted-git-info": { "version": "6.1.1", "license": "ISC", @@ -24124,19 +22826,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/locate-path": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/semantic-release/node_modules/lru-cache": { "version": "7.18.3", "license": "ISC", @@ -24154,32 +22843,6 @@ "node": ">= 16" } }, - "node_modules/semantic-release/node_modules/p-limit": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/p-locate": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/semantic-release/node_modules/p-reduce": { "version": "3.0.0", "license": "MIT", @@ -24190,50 +22853,8 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/path-exists": { - "version": "5.0.0", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/semantic-release/node_modules/read-pkg-up": { - "version": "10.0.0", - "license": "MIT", - "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^8.0.0", - "type-fest": "^3.12.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/type-fest": { - "version": "3.13.1", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/yocto-queue": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/semver": { - "version": "7.3.8", + "version": "7.5.4", "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -24305,10 +22926,202 @@ "randombytes": "^2.1.0" } }, + "node_modules/serve": { + "version": "14.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@zeit/schemas": "2.29.0", + "ajv": "8.11.0", + "arg": "5.0.2", + "boxen": "7.0.0", + "chalk": "5.0.1", + "chalk-template": "0.4.0", + "clipboardy": "3.0.0", + "compression": "1.7.4", + "is-port-reachable": "4.0.0", + "serve-handler": "6.1.5", + "update-check": "1.5.4" + }, + "bin": { + "serve": "build/main.js" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/serve-handler": { + "version": "6.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/bytes": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serve-handler/node_modules/mime-db": { + "version": "1.33.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/mime-types": { + "version": "2.1.18", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/range-parser": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve/node_modules/ajv": { + "version": "8.11.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/serve/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/serve/node_modules/arg": { + "version": "5.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/serve/node_modules/chalk": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/serve/node_modules/chalk-template": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/serve/node_modules/chalk-template/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "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/serve/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/serve/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/serve/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/serve/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/set-blocking": { "version": "2.0.0", "license": "ISC" }, + "node_modules/set-function-name": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "dev": true, @@ -24332,7 +23145,7 @@ } }, "node_modules/shell-quote": { - "version": "1.8.0", + "version": "1.8.1", "dev": true, "license": "MIT", "funding": { @@ -24340,7 +23153,7 @@ } }, "node_modules/shiki": { - "version": "0.14.2", + "version": "0.14.4", "license": "MIT", "dependencies": { "ansi-sequence-parser": "^1.1.0", @@ -24377,16 +23190,6 @@ "node": ">=6" } }, - "node_modules/signale/node_modules/ansi-styles": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/signale/node_modules/chalk": { "version": "2.4.2", "license": "MIT", @@ -24399,17 +23202,13 @@ "node": ">=4" } }, - "node_modules/signale/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/signale/node_modules/escape-string-regexp": { + "version": "1.0.5", "license": "MIT", - "dependencies": { - "color-name": "1.1.3" + "engines": { + "node": ">=0.8.0" } }, - "node_modules/signale/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, "node_modules/signale/node_modules/figures": { "version": "2.0.0", "license": "MIT", @@ -24438,8 +23237,9 @@ } }, "node_modules/sinon": { - "version": "15.2.0", - "license": "BSD-3-Clause", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-16.0.0.tgz", + "integrity": "sha512-B8AaZZm9CT5pqe4l4uWJztfD/mOTa7dL8Qo0W4+s+t74xECOgSZDDQCBjNgIK3+n4kyxQrSTv2V5ul8K25qkiQ==", "dependencies": { "@sinonjs/commons": "^3.0.0", "@sinonjs/fake-timers": "^10.3.0", @@ -24453,6 +23253,13 @@ "url": "https://opencollective.com/sinon" } }, + "node_modules/sinon/node_modules/diff": { + "version": "5.1.0", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/sinon/node_modules/supports-color": { "version": "7.2.0", "license": "MIT", @@ -24476,18 +23283,18 @@ } }, "node_modules/sirv/node_modules/@polka/url": { - "version": "1.0.0-next.21", + "version": "1.0.0-next.23", "license": "MIT" }, "node_modules/size-limit": { - "version": "8.2.4", + "version": "9.0.0", "dev": true, "license": "MIT", "dependencies": { "bytes-iec": "^3.1.1", "chokidar": "^3.5.3", "globby": "^11.1.0", - "lilconfig": "^2.0.6", + "lilconfig": "^2.1.0", "nanospinner": "^1.1.0", "picocolors": "^1.0.0" }, @@ -24495,34 +23302,7 @@ "size-limit": "bin.js" }, "engines": { - "node": "^14.0.0 || ^16.0.0 || >=18.0.0" - } - }, - "node_modules/size-limit/node_modules/array-union": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/size-limit/node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "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": "^18.0.0 || >=20.0.0" } }, "node_modules/slash": { @@ -24547,29 +23327,32 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", "dev": true, "license": "MIT", "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/socket.io": { - "version": "4.6.1", + "version": "4.7.2", "dev": true, "license": "MIT", "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", + "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.4.1", + "engine.io": "~6.5.2", "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.1" + "socket.io-parser": "~4.2.4" }, "engines": { - "node": ">=10.0.0" + "node": ">=10.2.0" } }, "node_modules/socket.io-adapter": { @@ -24601,7 +23384,7 @@ } }, "node_modules/socket.io-parser": { - "version": "4.2.2", + "version": "4.2.4", "dev": true, "license": "MIT", "dependencies": { @@ -24612,48 +23395,6 @@ "node": ">=10.0.0" } }, - "node_modules/socks": { - "version": "2.7.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.1", - "debug": "^4.3.4", - "socks": "^2.7.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/socks-proxy-agent/node_modules/agent-base": { - "version": "7.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/socks/node_modules/ip": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, "node_modules/source-map": { "version": "0.6.1", "license": "BSD-3-Clause", @@ -24716,7 +23457,7 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.13", + "version": "3.0.15", "license": "CC0-1.0" }, "node_modules/split": { @@ -24734,30 +23475,30 @@ "license": "ISC" }, "node_modules/split2": { - "version": "3.2.2", + "version": "4.2.0", "license": "ISC", - "dependencies": { - "readable-stream": "^3.0.0" + "engines": { + "node": ">= 10.x" } }, "node_modules/sprintf-js": { - "version": "1.1.2", + "version": "1.1.3", "license": "BSD-3-Clause", "optional": true }, "node_modules/ssh2": { - "version": "1.11.0", + "version": "1.14.0", "hasInstallScript": true, "dependencies": { - "asn1": "^0.2.4", + "asn1": "^0.2.6", "bcrypt-pbkdf": "^1.0.2" }, "engines": { "node": ">=10.16.0" }, "optionalDependencies": { - "cpu-features": "~0.0.4", - "nan": "^2.16.0" + "cpu-features": "~0.0.8", + "nan": "^2.17.0" } }, "node_modules/stack-trace": { @@ -24835,6 +23576,10 @@ "readable-stream": "^2.0.2" } }, + "node_modules/stream-combiner2/node_modules/isarray": { + "version": "1.0.0", + "license": "MIT" + }, "node_modules/stream-combiner2/node_modules/readable-stream": { "version": "2.3.8", "license": "MIT", @@ -24878,15 +23623,6 @@ "node": ">=10.0.0" } }, - "node_modules/streamx": { - "version": "2.15.1", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "license": "MIT", @@ -24895,7 +23631,7 @@ } }, "node_modules/string-argv": { - "version": "0.3.1", + "version": "0.3.2", "dev": true, "license": "MIT", "engines": { @@ -24959,13 +23695,13 @@ } }, "node_modules/string.prototype.padend": { - "version": "3.1.4", + "version": "3.1.5", "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -24975,12 +23711,12 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.7", + "version": "1.2.8", "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -24990,24 +23726,24 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", + "version": "1.0.7", "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", + "version": "1.0.7", "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -25045,13 +23781,10 @@ } }, "node_modules/strip-bom": { - "version": "5.0.0", + "version": "3.0.0", "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/strip-eof": { @@ -25101,6 +23834,13 @@ "node": ">=0.10.0" } }, + "node_modules/strip-outer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/sumchecker": { "version": "3.0.1", "license": "Apache-2.0", @@ -25251,12 +23991,12 @@ } }, "node_modules/terser": { - "version": "5.16.6", + "version": "5.20.0", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -25268,7 +24008,7 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.7", + "version": "5.3.9", "dev": true, "license": "MIT", "dependencies": { @@ -25276,7 +24016,7 @@ "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.1", - "terser": "^5.16.5" + "terser": "^5.16.8" }, "engines": { "node": ">= 10.13.0" @@ -25300,6 +24040,15 @@ } } }, + "node_modules/terser-webpack-plugin/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "dev": true, @@ -25317,11 +24066,32 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/text-extensions": { - "version": "1.9.0", + "version": "2.4.0", "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/text-table": { @@ -25340,6 +24110,10 @@ "xtend": "~4.0.1" } }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "license": "MIT" + }, "node_modules/through2/node_modules/readable-stream": { "version": "2.3.8", "license": "MIT", @@ -25447,6 +24221,13 @@ "node": ">=0.10.0" } }, + "node_modules/trim-repeated/node_modules/escape-string-regexp": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/trouter": { "version": "2.0.1", "license": "MIT", @@ -25459,14 +24240,13 @@ }, "node_modules/truncate-utf8-bytes": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "license": "WTFPL", "dependencies": { "utf8-byte-length": "^1.0.1" } }, "node_modules/ts-api-utils": { - "version": "1.0.1", + "version": "1.0.3", "dev": true, "license": "MIT", "engines": { @@ -25477,7 +24257,7 @@ } }, "node_modules/ts-loader": { - "version": "9.4.2", + "version": "9.4.4", "dev": true, "license": "MIT", "dependencies": { @@ -25523,6 +24303,22 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/ts-loader/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ts-loader/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, "node_modules/ts-loader/node_modules/supports-color": { "version": "7.2.0", "dev": true, @@ -25575,20 +24371,6 @@ } } }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/ts-node/node_modules/yn": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/tsconfig": { "version": "7.0.0", "license": "MIT", @@ -25609,30 +24391,6 @@ "strip-bom": "^3.0.0" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/tsconfig/node_modules/strip-bom": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/tsconfig/node_modules/strip-json-comments": { "version": "2.0.1", "license": "MIT", @@ -25641,7 +24399,7 @@ } }, "node_modules/tslib": { - "version": "2.6.1", + "version": "2.6.2", "license": "0BSD" }, "node_modules/tsutils": { @@ -25699,8 +24457,7 @@ } }, "node_modules/type-fest": { - "version": "0.21.3", - "dev": true, + "version": "0.20.2", "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" @@ -25721,6 +24478,51 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-array-length": { "version": "1.0.4", "license": "MIT", @@ -25741,43 +24543,36 @@ } }, "node_modules/typedoc": { - "version": "0.23.28", + "version": "0.25.1", "license": "Apache-2.0", "dependencies": { "lunr": "^2.3.9", - "marked": "^4.2.12", - "minimatch": "^7.1.3", + "marked": "^4.3.0", + "minimatch": "^9.0.3", "shiki": "^0.14.1" }, "bin": { "typedoc": "bin/typedoc" }, "engines": { - "node": ">= 14.14" + "node": ">= 16" }, "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x" + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x" } }, "node_modules/typedoc-plugin-mdn-links": { - "version": "3.0.3", + "version": "3.1.0", "license": "MIT", "peerDependencies": { - "typedoc": ">= 0.23.14 || 0.24.x" + "typedoc": ">= 0.23.14 || 0.24.x || 0.25.x" } }, - "node_modules/typedoc-plugin-resolve-crossmodule-references": { - "version": "0.3.3", - "dev": true, - "license": "Apache-2.0", - "workspaces": [ - "test/packages/*" - ], - "engines": { - "node": ">=14" - }, + "node_modules/typedoc-plugin-missing-exports": { + "version": "2.1.0", + "license": "MIT", "peerDependencies": { - "typedoc": ">=0.22 <=0.23" + "typedoc": "0.24.x || 0.25.x" } }, "node_modules/typedoc/node_modules/brace-expansion": { @@ -25788,27 +24583,27 @@ } }, "node_modules/typedoc/node_modules/minimatch": { - "version": "7.4.6", + "version": "9.0.3", "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/typescript": { - "version": "5.0.4", + "version": "5.2.2", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=12.20" + "node": ">=14.17" } }, "node_modules/typescript-docs-verifier": { @@ -25867,6 +24662,30 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/typescript-docs-verifier/node_modules/cli-cursor": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/typescript-docs-verifier/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/typescript-docs-verifier/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/typescript-docs-verifier/node_modules/fs-extra": { "version": "10.1.0", "license": "MIT", @@ -25920,6 +24739,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typescript-docs-verifier/node_modules/mimic-fn": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/typescript-docs-verifier/node_modules/onetime": { + "version": "5.1.2", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/typescript-docs-verifier/node_modules/ora": { "version": "5.4.1", "license": "MIT", @@ -25951,6 +24790,17 @@ "node": ">=8" } }, + "node_modules/typescript-docs-verifier/node_modules/restore-cursor": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/typescript-docs-verifier/node_modules/supports-color": { "version": "7.2.0", "license": "MIT", @@ -25969,7 +24819,7 @@ } }, "node_modules/ua-parser-js": { - "version": "0.7.34", + "version": "0.7.36", "dev": true, "funding": [ { @@ -25979,6 +24829,10 @@ { "type": "paypal", "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" } ], "license": "MIT", @@ -26003,17 +24857,11 @@ } }, "node_modules/uint8-varint": { - "version": "1.0.6", + "version": "2.0.1", "license": "Apache-2.0 OR MIT", "dependencies": { - "byte-access": "^1.0.0", - "longbits": "^1.1.0", "uint8arraylist": "^2.0.0", "uint8arrays": "^4.0.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" } }, "node_modules/uint8arraylist": { @@ -26034,14 +24882,6 @@ "multiformats": "^12.0.1" } }, - "node_modules/uint8arrays/node_modules/multiformats": { - "version": "12.0.1", - "license": "Apache-2.0 OR MIT", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/unbox-primitive": { "version": "1.0.2", "license": "MIT", @@ -26070,13 +24910,13 @@ "license": "MIT" }, "node_modules/undici": { - "version": "5.20.0", + "version": "5.25.1", "license": "MIT", "dependencies": { "busboy": "^1.6.0" }, "engines": { - "node": ">=12.18" + "node": ">=14.0" } }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -26199,7 +25039,7 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", + "version": "1.0.13", "funding": [ { "type": "opencollective", @@ -26226,6 +25066,24 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/update-check": { + "version": "1.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0" + } + }, + "node_modules/update-check/node_modules/registry-auth-token": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, "node_modules/update-notifier": { "version": "6.0.2", "license": "BSD-2-Clause", @@ -26252,29 +25110,6 @@ "url": "https://github.com/yeoman/update-notifier?sponsor=1" } }, - "node_modules/update-notifier/node_modules/ci-info": { - "version": "3.8.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/is-ci": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, "node_modules/uri-js": { "version": "4.4.1", "license": "BSD-2-Clause", @@ -26291,8 +25126,7 @@ }, "node_modules/utf8-byte-length": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" + "license": "WTFPL" }, "node_modules/utf8-bytes": { "version": "0.0.1", @@ -26334,7 +25168,11 @@ } }, "node_modules/uuid": { - "version": "8.3.2", + "version": "9.0.1", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", "bin": { "uuid": "dist/bin/uuid" @@ -26356,6 +25194,14 @@ "node": ">=10.12.0" } }, + "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "license": "Apache-2.0", @@ -26374,10 +25220,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/varint": { - "version": "6.0.0", - "license": "MIT" - }, "node_modules/vary": { "version": "1.1.2", "license": "MIT", @@ -26395,9 +25237,8 @@ }, "node_modules/vscode-languageserver-textdocument": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", - "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/vscode-oniguruma": { "version": "1.7.0", @@ -26409,9 +25250,8 @@ }, "node_modules/vscode-uri": { "version": "3.0.7", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", - "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/watchpack": { "version": "2.4.0", @@ -26438,21 +25278,21 @@ "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.76.1", + "version": "5.88.2", "dev": true, "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", + "acorn-import-assertions": "^1.9.0", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -26461,9 +25301,9 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, @@ -26499,8 +25339,28 @@ "node": ">=10.13.0" } }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, "node_modules/whatwg-fetch": { - "version": "3.6.2", + "version": "3.6.19", "dev": true, "license": "MIT" }, @@ -26556,15 +25416,14 @@ "license": "ISC" }, "node_modules/which-typed-array": { - "version": "1.1.9", + "version": "1.1.11", "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -26609,7 +25468,7 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", + "version": "1.2.5", "dev": true, "license": "MIT", "engines": { @@ -26625,15 +25484,15 @@ "license": "Apache-2.0" }, "node_modules/wrap-ansi": { - "version": "7.0.0", + "version": "8.1.0", "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -26675,6 +25534,20 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "license": "MIT" @@ -26708,59 +25581,16 @@ "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", + "version": "6.2.1", "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "8.0.0", - "license": "MIT" - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wrappy": { "version": "1.0.2", "license": "ISC" @@ -26805,7 +25635,7 @@ } }, "node_modules/xml2js": { - "version": "0.6.0", + "version": "0.6.2", "license": "MIT", "dependencies": { "sax": ">=0.6.0", @@ -26850,7 +25680,7 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.2.2", + "version": "2.3.1", "dev": true, "license": "ISC", "engines": { @@ -26858,7 +25688,7 @@ } }, "node_modules/yargs": { - "version": "17.7.1", + "version": "17.7.2", "license": "MIT", "dependencies": { "cliui": "^8.0.1", @@ -26952,10 +25782,10 @@ } }, "node_modules/yn": { - "version": "4.0.0", + "version": "3.1.1", "license": "MIT", "engines": { - "node": ">=10" + "node": ">=6" } }, "node_modules/yocto-queue": { @@ -26976,6 +25806,16 @@ "url": "https://github.com/sponsors/wooorm" } }, + "packages/browser-tests": { + "name": "@waku/browser-tests", + "version": "0.1.0", + "devDependencies": { + "@playwright/test": "^1.37.1", + "@waku/create-app": "^0.1.1-7c24ffa", + "dotenv-flow": "^3.3.0", + "serve": "^14.2.1" + } + }, "packages/build-utils": { "name": "@waku/build-utils", "version": "1.0.0", @@ -26994,7 +25834,7 @@ "it-all": "^3.0.3", "it-length-prefixed": "^9.0.1", "it-pipe": "^3.0.1", - "p-event": "^5.0.1", + "p-event": "^6.0.0", "uint8arraylist": "^2.4.3", "uuid": "^9.0.0" }, @@ -27010,24 +25850,16 @@ "@waku/build-utils": "*", "chai": "^4.3.7", "cspell": "^7.3.2", - "fast-check": "^3.12.0", + "fast-check": "^3.13.1", "ignore-loader": "^0.1.2", "isomorphic-fetch": "^3.0.0", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-webpack": "^5.0.0", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", "process": "^0.11.10", - "puppeteer": "^21.1.1", - "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "ts-node": "^10.9.1", - "typescript": "^5.0.4" + "rollup": "^3.29.2" }, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { "@multiformats/multiaddr": "^12.0.0", @@ -27039,13 +25871,6 @@ } } }, - "packages/core/node_modules/uuid": { - "version": "9.0.0", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "packages/dns-discovery": { "name": "@waku/dns-discovery", "version": "0.0.17", @@ -27070,18 +25895,12 @@ "@waku/interfaces": "0.0.18", "chai": "^4.3.7", "cspell": "^7.3.2", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-webpack": "^5.0.0", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", - "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "typescript": "^5.0.4" + "rollup": "^3.29.2" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "packages/enr": { @@ -27096,7 +25915,7 @@ "@noble/secp256k1": "^1.7.1", "@waku/utils": "0.0.11", "debug": "^4.3.4", - "js-sha3": "^0.8.0" + "js-sha3": "^0.9.2" }, "devDependencies": { "@libp2p/peer-id-factory": "^3.0.3", @@ -27109,21 +25928,14 @@ "@waku/interfaces": "0.0.18", "chai": "^4.3.7", "cspell": "^7.3.2", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-webpack": "^5.0.0", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", "process": "^0.11.10", - "puppeteer": "^21.1.1", "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "typescript": "^5.0.4", "uint8arrays": "^4.0.4" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "packages/interfaces": { @@ -27134,12 +25946,11 @@ "@chainsafe/libp2p-gossipsub": "^10.1.0", "@multiformats/multiaddr": "^12.0.0", "cspell": "^7.3.2", - "libp2p": "^0.46.9", - "npm-run-all": "^4.1.5", - "typescript": "^5.0.4" + "libp2p": "^0.46.12", + "npm-run-all": "^4.1.5" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "packages/message-encryption": { @@ -27153,7 +25964,7 @@ "@waku/proto": "0.0.5", "@waku/utils": "0.0.11", "debug": "^4.3.4", - "js-sha3": "^0.8.0" + "js-sha3": "^0.9.2" }, "devDependencies": { "@rollup/plugin-commonjs": "^25.0.4", @@ -27164,21 +25975,14 @@ "@waku/build-utils": "*", "chai": "^4.3.7", "cspell": "^7.3.2", - "fast-check": "^3.12.0", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-webpack": "^5.0.0", + "fast-check": "^3.13.1", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", "process": "^0.11.10", - "puppeteer": "^21.1.1", - "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "typescript": "^5.0.4" + "rollup": "^3.29.2" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "packages/message-hash": { @@ -27200,24 +26004,16 @@ "@waku/interfaces": "0.0.18", "chai": "^4.3.7", "cspell": "^7.3.2", - "fast-check": "^3.12.0", + "fast-check": "^3.13.1", "ignore-loader": "^0.1.2", "isomorphic-fetch": "^3.0.0", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-webpack": "^5.0.0", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", "process": "^0.11.10", - "puppeteer": "^21.1.1", - "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "ts-node": "^10.9.1", - "typescript": "^5.0.4" + "rollup": "^3.29.2" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "packages/peer-exchange": { @@ -27245,12 +26041,10 @@ "cspell": "^7.3.2", "npm-run-all": "^4.1.5", "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "typescript": "^5.0.4", "uint8arraylist": "^2.4.3" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "packages/proto": { @@ -27269,11 +26063,10 @@ "npm-run-all": "^4.1.5", "protons": "^7.0.2", "rollup": "^3.29.2", - "typescript": "^5.0.4", "uint8arraylist": "^2.4.3" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "packages/relay": { @@ -27289,20 +26082,17 @@ "@waku/utils": "0.0.11", "chai": "^4.3.7", "debug": "^4.3.4", - "fast-check": "^3.12.0" + "fast-check": "^3.13.1" }, "devDependencies": { "@rollup/plugin-commonjs": "^25.0.4", "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.1.0", "@waku/build-utils": "*", - "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "ts-node": "^10.9.1", - "typescript": "^5.0.4" + "rollup": "^3.29.2" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "packages/sdk": { @@ -27319,7 +26109,7 @@ "@waku/peer-exchange": "^0.0.16", "@waku/relay": "0.0.6", "@waku/utils": "0.0.11", - "libp2p": "^0.46.9" + "libp2p": "^0.46.12" }, "devDependencies": { "@chainsafe/libp2p-gossipsub": "^10.1.0", @@ -27330,11 +26120,10 @@ "cspell": "^7.3.2", "interface-datastore": "^8.2.5", "npm-run-all": "^4.1.5", - "rollup": "^3.29.2", - "typescript": "^5.0.4" + "rollup": "^3.29.2" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "packages/tests": { @@ -27342,7 +26131,7 @@ "version": "0.0.1", "license": "MIT OR Apache-2.0", "dependencies": { - "@libp2p/interface-compliance-tests": "^4.0.5", + "@libp2p/interface-compliance-tests": "^4.1.0", "@libp2p/peer-id": "^3.0.2", "@waku/core": "*", "@waku/enr": "*", @@ -27352,21 +26141,21 @@ "chai-as-promised": "^7.1.1", "debug": "^4.3.4", "dockerode": "^3.3.5", - "p-retry": "^6.0.0", + "lodash": "^4.17.21", + "p-retry": "^6.1.0", "p-timeout": "^6.1.0", "portfinder": "^1.0.32", - "sinon": "^15.2.0", + "sinon": "^16.0.0", "tail": "^2.2.6" }, "devDependencies": { "@libp2p/bootstrap": "^9.0.2", "@types/chai": "^4.3.5", "@types/dockerode": "^3.3.19", + "@types/lodash": "^4.14.199", "@types/mocha": "^10.0.1", "@types/sinon": "^10.0.16", "@types/tail": "^2.2.1", - "@typescript-eslint/eslint-plugin": "^5.57.0", - "@typescript-eslint/parser": "^5.62.0", "@waku/dns-discovery": "*", "@waku/message-encryption": "*", "@waku/peer-exchange": "*", @@ -27376,240 +26165,12 @@ "datastore-core": "^9.2.3", "debug": "^4.3.4", "interface-datastore": "^8.2.5", - "libp2p": "^0.46.9", + "libp2p": "^0.46.12", "mocha": "^10.2.0", - "npm-run-all": "^4.1.5", - "typescript": "^5.0.4" + "npm-run-all": "^4.1.5" }, "engines": { - "node": ">=16" - } - }, - "packages/tests/node_modules/@types/retry": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", - "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" - }, - "packages/tests/node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "packages/tests/node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "packages/tests/node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "packages/tests/node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "packages/tests/node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "packages/tests/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "packages/tests/node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "packages/tests/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "packages/tests/node_modules/array-union": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "packages/tests/node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "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" - } - }, - "packages/tests/node_modules/p-retry": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.0.0.tgz", - "integrity": "sha512-6NuuXu8Upembd4sNdo4PRbs+M6aHgBTrFE6lkH0YKjVzne3cDW4gkncB98ty/bkMxLxLVNeD5bX9FyWjM7WZ+A==", - "dependencies": { - "@types/retry": "0.12.2", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, "packages/utils": { @@ -27617,7 +26178,7 @@ "version": "0.0.11", "license": "MIT OR Apache-2.0", "dependencies": { - "@waku/interfaces": "0.0.18", + "chai": "^4.3.8", "debug": "^4.3.4", "uint8arrays": "^4.0.4" }, @@ -27626,23 +26187,13 @@ "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.1.0", "@waku/build-utils": "*", - "@waku/interfaces": "0.0.17", + "@waku/interfaces": "0.0.18", "cspell": "^7.3.2", "npm-run-all": "^4.1.5", - "rollup": "^3.29.2", - "typescript": "^5.0.4" + "rollup": "^3.29.2" }, "engines": { - "node": ">=16" - } - }, - "packages/utils/node_modules/@waku/interfaces": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.17.tgz", - "integrity": "sha512-/3HrMhpjMwpArm73L05Q7xLPKFeGjvpDlrFq4lqrXjKa8J2VUmiZh6fD9LdYP1ZvhPdzrCRAL+o7+Lb9kt4fvQ==", - "dev": true, - "engines": { - "node": ">=16" + "node": ">=18" } } }, @@ -27651,11 +26202,11 @@ "version": "1.2.6" }, "@achingbrain/nat-port-mapper": { - "version": "1.0.9", + "version": "1.0.11", "requires": { "@achingbrain/ssdp": "^4.0.1", - "@libp2p/logger": "^2.0.0", - "default-gateway": "^6.0.2", + "@libp2p/logger": "^3.0.0", + "default-gateway": "^7.2.2", "err-code": "^3.0.1", "it-first": "^3.0.1", "p-defer": "^4.0.0", @@ -27692,18 +26243,12 @@ "version": "1.0.1" }, "@babel/code-frame": { - "version": "7.22.10", + "version": "7.22.13", "requires": { - "@babel/highlight": "^7.22.10", + "@babel/highlight": "^7.22.13", "chalk": "^2.4.2" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "requires": { - "color-convert": "^1.9.0" - } - }, "chalk": { "version": "2.4.2", "requires": { @@ -27712,14 +26257,8 @@ "supports-color": "^5.3.0" } }, - "color-convert": { - "version": "1.9.3", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3" + "escape-string-regexp": { + "version": "1.0.5" }, "has-flag": { "version": "3.0.0" @@ -27733,30 +26272,51 @@ } }, "@babel/compat-data": { - "version": "7.22.9" + "version": "7.22.20" }, "@babel/core": { - "version": "7.22.10", + "version": "7.22.20", "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.10", - "@babel/generator": "^7.22.10", - "@babel/helper-compilation-targets": "^7.22.10", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helpers": "^7.22.10", - "@babel/parser": "^7.22.10", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.10", - "@babel/types": "^7.22.10", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.22.20", + "@babel/helpers": "^7.22.15", + "@babel/parser": "^7.22.16", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.22.20", + "@babel/types": "^7.22.19", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", + "json5": "^2.2.3", "semver": "^6.3.1" }, "dependencies": { "@babel/parser": { - "version": "7.22.10" + "version": "7.22.16" + }, + "@babel/traverse": { + "version": "7.22.20", + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.16", + "@babel/types": "^7.22.19", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "globals": { + "version": "11.12.0" + }, + "json5": { + "version": "2.2.3" }, "semver": { "version": "6.3.1" @@ -27764,12 +26324,21 @@ } }, "@babel/generator": { - "version": "7.22.10", + "version": "7.22.15", "requires": { - "@babel/types": "^7.22.10", + "@babel/types": "^7.22.15", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.19", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } } }, "@babel/helper-annotate-as-pure": { @@ -27779,16 +26348,16 @@ } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.10", + "version": "7.22.15", "requires": { - "@babel/types": "^7.22.10" + "@babel/types": "^7.22.15" } }, "@babel/helper-compilation-targets": { - "version": "7.22.10", + "version": "7.22.15", "requires": { "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", "browserslist": "^4.21.9", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -27809,12 +26378,12 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.22.10", + "version": "7.22.15", "requires": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-replace-supers": "^7.22.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -27828,7 +26397,7 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.22.9", + "version": "7.22.15", "requires": { "@babel/helper-annotate-as-pure": "^7.22.5", "regexpu-core": "^5.3.1", @@ -27851,7 +26420,7 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.22.5" + "version": "7.22.20" }, "@babel/helper-function-name": { "version": "7.22.5", @@ -27867,25 +26436,25 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.22.5", + "version": "7.22.15", "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" } }, "@babel/helper-module-imports": { - "version": "7.22.5", + "version": "7.22.15", "requires": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" } }, "@babel/helper-module-transforms": { - "version": "7.22.9", + "version": "7.22.20", "requires": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-simple-access": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-validator-identifier": "^7.22.20" } }, "@babel/helper-optimise-call-expression": { @@ -27898,18 +26467,18 @@ "version": "7.22.5" }, "@babel/helper-remap-async-to-generator": { - "version": "7.22.9", + "version": "7.22.20", "requires": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.9" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" } }, "@babel/helper-replace-supers": { - "version": "7.22.9", + "version": "7.22.20", "requires": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", "@babel/helper-optimise-call-expression": "^7.22.5" } }, @@ -27935,41 +26504,58 @@ "version": "7.22.5" }, "@babel/helper-validator-identifier": { - "version": "7.22.5" + "version": "7.22.20" }, "@babel/helper-validator-option": { - "version": "7.22.5" + "version": "7.22.15" }, "@babel/helper-wrap-function": { - "version": "7.22.10", + "version": "7.22.20", "requires": { "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.10" + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" } }, "@babel/helpers": { - "version": "7.22.10", + "version": "7.22.15", "requires": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.10", - "@babel/types": "^7.22.10" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "dependencies": { + "@babel/parser": { + "version": "7.22.16" + }, + "@babel/traverse": { + "version": "7.22.20", + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.16", + "@babel/types": "^7.22.19", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "globals": { + "version": "11.12.0" + } } }, "@babel/highlight": { - "version": "7.22.10", + "version": "7.22.20", "requires": { - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "requires": { - "color-convert": "^1.9.0" - } - }, "chalk": { "version": "2.4.2", "requires": { @@ -27978,14 +26564,8 @@ "supports-color": "^5.3.0" } }, - "color-convert": { - "version": "1.9.3", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3" + "escape-string-regexp": { + "version": "1.0.5" }, "has-flag": { "version": "3.0.0" @@ -27999,7 +26579,7 @@ } }, "@babel/parser": { - "version": "7.16.4" + "version": "7.22.5" }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.20.7", @@ -28018,7 +26598,7 @@ } }, "@babel/plugin-proposal-export-default-from": { - "version": "7.22.5", + "version": "7.22.17", "requires": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-export-default-from": "^7.22.5" @@ -28123,21 +26703,21 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.22.10", + "version": "7.22.15", "requires": { "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-classes": { - "version": "7.22.6", + "version": "7.22.15", "requires": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, @@ -28155,7 +26735,7 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.22.10", + "version": "7.22.15", "requires": { "@babel/helper-plugin-utils": "^7.22.5" } @@ -28175,7 +26755,7 @@ } }, "@babel/plugin-transform-for-of": { - "version": "7.22.5", + "version": "7.22.15", "requires": { "@babel/helper-plugin-utils": "^7.22.5" } @@ -28195,9 +26775,9 @@ } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.22.5", + "version": "7.22.15", "requires": { - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" } @@ -28209,7 +26789,7 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.22.5", + "version": "7.22.15", "requires": { "@babel/helper-plugin-utils": "^7.22.5" } @@ -28221,13 +26801,13 @@ } }, "@babel/plugin-transform-react-jsx": { - "version": "7.22.5", + "version": "7.22.15", "requires": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" } }, "@babel/plugin-transform-react-jsx-self": { @@ -28250,9 +26830,9 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.22.10", + "version": "7.22.15", "requires": { - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "babel-plugin-polyfill-corejs2": "^0.4.5", "babel-plugin-polyfill-corejs3": "^0.8.3", @@ -28291,10 +26871,10 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.22.10", + "version": "7.22.15", "requires": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.10", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-typescript": "^7.22.5" } @@ -28310,52 +26890,49 @@ "version": "0.8.0" }, "@babel/runtime": { - "version": "7.22.10", + "version": "7.22.15", "requires": { "regenerator-runtime": "^0.14.0" } }, "@babel/template": { - "version": "7.22.5", + "version": "7.22.15", "requires": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "dependencies": { "@babel/parser": { - "version": "7.22.10" + "version": "7.22.16" } } }, "@babel/traverse": { - "version": "7.22.10", + "version": "7.22.5", "requires": { - "@babel/code-frame": "^7.22.10", - "@babel/generator": "^7.22.10", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.10", - "@babel/types": "^7.22.10", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { - "@babel/parser": { - "version": "7.22.10" - }, "globals": { "version": "11.12.0" } } }, "@babel/types": { - "version": "7.22.10", + "version": "7.22.19", "requires": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.19", "to-fast-properties": "^2.0.0" } }, @@ -28390,41 +26967,28 @@ }, "dependencies": { "@libp2p/crypto": { - "version": "2.0.2", + "version": "2.0.4", "requires": { - "@libp2p/interface": "^0.1.1", - "@noble/ed25519": "^1.6.0", - "@noble/secp256k1": "^1.5.4", + "@libp2p/interface": "^0.1.2", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", "multiformats": "^12.0.1", "node-forge": "^1.1.0", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", - "uint8arrays": "^4.0.4" + "uint8arrays": "^4.0.6" } - }, - "@libp2p/logger": { - "version": "3.0.1", - "requires": { - "@libp2p/interface": "^0.1.1", - "@multiformats/multiaddr": "^12.1.3", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "multiformats": { - "version": "12.0.1" } } }, "@chainsafe/libp2p-noise": { - "version": "13.0.0", + "version": "13.0.1", "requires": { "@libp2p/crypto": "^2.0.0", "@libp2p/interface": "^0.1.0", "@libp2p/logger": "^3.0.0", "@libp2p/peer-id": "^3.0.0", - "@noble/ciphers": "^0.1.4", + "@noble/ciphers": "^0.3.0", "@noble/curves": "^1.1.0", "@noble/hashes": "^1.3.1", "it-byte-stream": "^1.0.0", @@ -28439,33 +27003,17 @@ }, "dependencies": { "@libp2p/crypto": { - "version": "2.0.2", + "version": "2.0.4", "requires": { - "@libp2p/interface": "^0.1.1", - "@noble/ed25519": "^1.6.0", - "@noble/secp256k1": "^1.5.4", + "@libp2p/interface": "^0.1.2", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", "multiformats": "^12.0.1", "node-forge": "^1.1.0", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", - "uint8arrays": "^4.0.4" + "uint8arrays": "^4.0.6" } - }, - "@libp2p/logger": { - "version": "3.0.1", - "requires": { - "@libp2p/interface": "^0.1.1", - "@multiformats/multiaddr": "^12.1.3", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "it-stream-types": { - "version": "2.0.1" - }, - "multiformats": { - "version": "12.0.1" } } }, @@ -28479,16 +27027,14 @@ "version": "1.5.0" }, "@cspell/cspell-bundled-dicts": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-7.3.2.tgz", - "integrity": "sha512-mmb9gi2/jTj983ijgVsdsQ4FM5Bv/lKslgJt4jDUm6SOtQYW4geCJNl5/MbMzcMQUWSJouS0w4C55AyrJmq0iw==", + "version": "7.3.6", "dev": true, "requires": { "@cspell/dict-ada": "^4.0.2", "@cspell/dict-aws": "^4.0.0", "@cspell/dict-bash": "^4.1.1", - "@cspell/dict-companies": "^3.0.20", - "@cspell/dict-cpp": "^5.0.4", + "@cspell/dict-companies": "^3.0.22", + "@cspell/dict-cpp": "^5.0.5", "@cspell/dict-cryptocurrencies": "^4.0.0", "@cspell/dict-csharp": "^4.0.2", "@cspell/dict-css": "^4.0.7", @@ -28515,17 +27061,17 @@ "@cspell/dict-latex": "^4.0.0", "@cspell/dict-lorem-ipsum": "^4.0.0", "@cspell/dict-lua": "^4.0.1", - "@cspell/dict-node": "^4.0.2", + "@cspell/dict-node": "^4.0.3", "@cspell/dict-npm": "^5.0.8", "@cspell/dict-php": "^4.0.2", "@cspell/dict-powershell": "^5.0.2", "@cspell/dict-public-licenses": "^2.0.3", - "@cspell/dict-python": "^4.1.7", + "@cspell/dict-python": "^4.1.8", "@cspell/dict-r": "^2.0.1", "@cspell/dict-ruby": "^5.0.0", "@cspell/dict-rust": "^4.0.1", "@cspell/dict-scala": "^5.0.0", - "@cspell/dict-software-terms": "^3.2.2", + "@cspell/dict-software-terms": "^3.2.3", "@cspell/dict-sql": "^2.1.1", "@cspell/dict-svelte": "^1.0.2", "@cspell/dict-swift": "^2.0.1", @@ -28534,267 +27080,181 @@ } }, "@cspell/cspell-json-reporter": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-7.3.2.tgz", - "integrity": "sha512-5j1CX2OXkQGO3ljMBzfHjDzEiixodjfxVGR3VKkQX1vxTUMTIkPgt4BsgOVCQtqTiO21Dd2Bzn+H0/Jf4OL37g==", + "version": "7.3.6", "dev": true, "requires": { - "@cspell/cspell-types": "7.3.2" + "@cspell/cspell-types": "7.3.6" } }, "@cspell/cspell-pipe": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-7.3.2.tgz", - "integrity": "sha512-ZKOkb6IxuEXRXtjVAlZ41+4SXhyiGqrQ3FW16iZlCbM9Mp9WJAw2MOVh6wvpXmfKcM5/3jK1A4rFylB7b0QBHw==", + "version": "7.3.6", "dev": true }, "@cspell/cspell-resolver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-7.3.2.tgz", - "integrity": "sha512-3gvZPlYLkjuPezF2VyCVurEJiJnb3sbr32Jp3MfvpO7x026RXMbetkdH87MKoiSAThxSiyG+qi/jvUeDYY/Wtg==", + "version": "7.3.6", "dev": true, "requires": { "global-dirs": "^3.0.1" } }, "@cspell/cspell-service-bus": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-7.3.2.tgz", - "integrity": "sha512-i2sPnUSsFJXc5afijbUsUtv1YEXyO8EbJbXV0kdE6KVu7I0CSMV8jprJaG3X1m5HE6lGftNcpLKLHjSlFOFvsA==", + "version": "7.3.6", "dev": true }, "@cspell/cspell-types": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-7.3.2.tgz", - "integrity": "sha512-2lvRUfIgH9TvqGEDpuukuD6J84XPP8KFxR/qphtPZAzwg9SEpiagdN79eFlPe4ZI2xHNvwEsPDJUxuvxXu15wQ==", + "version": "7.3.6", "dev": true }, "@cspell/dict-ada": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-ada/-/dict-ada-4.0.2.tgz", - "integrity": "sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA==", "dev": true }, "@cspell/dict-aws": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.0.tgz", - "integrity": "sha512-1YkCMWuna/EGIDN/zKkW+j98/55mxigftrSFgsehXhPld+ZMJM5J9UuBA88YfL7+/ETvBdd7mwW6IwWsC+/ltQ==", "dev": true }, "@cspell/dict-bash": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.1.tgz", - "integrity": "sha512-8czAa/Mh96wu2xr0RXQEGMTBUGkTvYn/Pb0o+gqOO1YW+poXGQc3gx0YPqILDryP/KCERrNvkWUJz3iGbvwC2A==", "dev": true }, "@cspell/dict-companies": { - "version": "3.0.21", - "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.21.tgz", - "integrity": "sha512-u9b7qtCWYS728WqiJeAucJcjRs16Y1yGGwagS/w59SV25R0rXbXbPbQuX8wYDcaeIO8uRHGkbSWngx6O4qFoCQ==", + "version": "3.0.24", "dev": true }, "@cspell/dict-cpp": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.0.4.tgz", - "integrity": "sha512-Vmz/CCb2d91ES5juaO8+CFWeTa2AFsbpR8bkCPJq+P8cRP16+37tY0zNXEBSK/1ur4MakaRf76jeQBijpZxw0Q==", + "version": "5.0.5", "dev": true }, "@cspell/dict-cryptocurrencies": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-4.0.0.tgz", - "integrity": "sha512-EiZp91ATyRxTmauIQfOX9adLYCunKjHEh092rrM7o2eMXP9n7zpXAL9BK7LviL+LbB8VDOm21q+s83cKrrRrsg==", "dev": true }, "@cspell/dict-csharp": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-4.0.2.tgz", - "integrity": "sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g==", "dev": true }, "@cspell/dict-css": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.7.tgz", - "integrity": "sha512-NNlUTx/sYg+74kC0EtRewb7pjkEtPlIsu9JFNWAXa0JMTqqpQXqM3aEO4QJvUZFZF09bObeCAvzzxemAwxej7Q==", + "version": "4.0.8", "dev": true }, "@cspell/dict-dart": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-dart/-/dict-dart-2.0.3.tgz", - "integrity": "sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw==", "dev": true }, "@cspell/dict-data-science": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-1.0.11.tgz", - "integrity": "sha512-TaHAZRVe0Zlcc3C23StZqqbzC0NrodRwoSAc8dis+5qLeLLnOCtagYQeROQvDlcDg3X/VVEO9Whh4W/z4PAmYQ==", "dev": true }, "@cspell/dict-django": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-4.1.0.tgz", - "integrity": "sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w==", "dev": true }, "@cspell/dict-docker": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.7.tgz", - "integrity": "sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A==", "dev": true }, "@cspell/dict-dotnet": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-5.0.0.tgz", - "integrity": "sha512-EOwGd533v47aP5QYV8GlSSKkmM9Eq8P3G/eBzSpH3Nl2+IneDOYOBLEUraHuiCtnOkNsz0xtZHArYhAB2bHWAw==", "dev": true }, "@cspell/dict-elixir": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-elixir/-/dict-elixir-4.0.3.tgz", - "integrity": "sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q==", "dev": true }, "@cspell/dict-en_us": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.7.tgz", - "integrity": "sha512-83V0XXqiXJvXa1pj5cVpviYKeLTN2Dxvouz8ullrwgcfPtY57pYBy+3ACVAMYK0eGByhRPc/xVXlIgv4o0BNZw==", + "version": "4.3.8", "dev": true }, "@cspell/dict-en-common-misspellings": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-1.0.2.tgz", - "integrity": "sha512-jg7ZQZpZH7+aAxNBlcAG4tGhYF6Ksy+QS5Df73Oo+XyckBjC9QS+PrRwLTeYoFIgXy5j3ICParK5r3MSSoL4gw==", "dev": true }, "@cspell/dict-en-gb": { "version": "1.1.33", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb/-/dict-en-gb-1.1.33.tgz", - "integrity": "sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==", "dev": true }, "@cspell/dict-filetypes": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.1.tgz", - "integrity": "sha512-8z8mY1IbrTyTRumx2vvD9yzRhNMk9SajM/GtI5hdMM2pPpNSp25bnuauzjRf300eqlqPY2MNb5MmhBFO014DJw==", "dev": true }, "@cspell/dict-fonts": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-4.0.0.tgz", - "integrity": "sha512-t9V4GeN/m517UZn63kZPUYP3OQg5f0OBLSd3Md5CU3eH1IFogSvTzHHnz4Wqqbv8NNRiBZ3HfdY/pqREZ6br3Q==", "dev": true }, "@cspell/dict-fsharp": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-fsharp/-/dict-fsharp-1.0.0.tgz", - "integrity": "sha512-dHPkMHwW4dWv3Lv9VWxHuVm4IylqvcfRBSnZ7usJTRThraetSVrOPIJwr6UJh7F5un/lGJx2lxWVApf2WQaB/A==", "dev": true }, "@cspell/dict-fullstack": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.1.5.tgz", - "integrity": "sha512-6ppvo1dkXUZ3fbYn/wwzERxCa76RtDDl5Afzv2lijLoijGGUw5yYdLBKJnx8PJBGNLh829X352ftE7BElG4leA==", "dev": true }, "@cspell/dict-gaming-terms": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.0.4.tgz", - "integrity": "sha512-hbDduNXlk4AOY0wFxcDMWBPpm34rpqJBeqaySeoUH70eKxpxm+dvjpoRLJgyu0TmymEICCQSl6lAHTHSDiWKZg==", "dev": true }, "@cspell/dict-git": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-2.0.0.tgz", - "integrity": "sha512-n1AxyX5Kgxij/sZFkxFJlzn3K9y/sCcgVPg/vz4WNJ4K9YeTsUmyGLA2OQI7d10GJeiuAo2AP1iZf2A8j9aj2w==", "dev": true }, "@cspell/dict-golang": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.2.tgz", - "integrity": "sha512-5pyZn4AAiYukAW+gVMIMVmUSkIERFrDX2vtPDjg8PLQUhAHWiVeQSDjuOhq9/C5GCCEZU/zWSONkGiwLBBvV9A==", "dev": true }, "@cspell/dict-haskell": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-haskell/-/dict-haskell-4.0.1.tgz", - "integrity": "sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ==", "dev": true }, "@cspell/dict-html": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.3.tgz", - "integrity": "sha512-Gae8i8rrArT0UyG1I6DHDK62b7Be6QEcBSIeWOm4VIIW1CASkN9B0qFgSVnkmfvnu1Y3H7SSaaEynKjdj3cs8w==", + "version": "4.0.4", "dev": true }, "@cspell/dict-html-symbol-entities": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.0.tgz", - "integrity": "sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==", "dev": true }, "@cspell/dict-java": { "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.5.tgz", - "integrity": "sha512-X19AoJgWIBwJBSWGFqSgHaBR/FEykBHTMjL6EqOnhIGEyE9nvuo32tsSHjXNJ230fQxQptEvRZoaldNLtKxsRg==", "dev": true }, "@cspell/dict-k8s": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.1.tgz", - "integrity": "sha512-gc5y4Nm3hVdMZNBZfU2M1AsAmObZsRWjCUk01NFPfGhFBXyVne41T7E62rpnzu5330FV/6b/TnFcPgRmak9lLw==", "dev": true }, "@cspell/dict-latex": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-4.0.0.tgz", - "integrity": "sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ==", "dev": true }, "@cspell/dict-lorem-ipsum": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-4.0.0.tgz", - "integrity": "sha512-1l3yjfNvMzZPibW8A7mQU4kTozwVZVw0AvFEdy+NcqtbxH+TvbSkNMqROOFWrkD2PjnKG0+Ea0tHI2Pi6Gchnw==", "dev": true }, "@cspell/dict-lua": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.1.tgz", - "integrity": "sha512-j0MFmeCouSoC6EdZTbvGe1sJ9V+ruwKSeF+zRkNNNload7R72Co5kX1haW2xLHGdlq0kqSy1ODRZKdVl0e+7hg==", "dev": true }, "@cspell/dict-node": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-4.0.2.tgz", - "integrity": "sha512-FEQJ4TnMcXEFslqBQkXa5HposMoCGsiBv2ux4IZuIXgadXeHKHUHk60iarWpjhzNzQLyN2GD7NoRMd12bK3Llw==", + "version": "4.0.3", "dev": true }, "@cspell/dict-npm": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.8.tgz", - "integrity": "sha512-KuqH8tEsFD6DPKqKwIfWr9E+admE3yghaC0AKXG8jPaf77N0lkctKaS3dm0oxWUXkYKA/eXj6LCtz3VcTyxFPg==", + "version": "5.0.9", "dev": true }, "@cspell/dict-php": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.2.tgz", - "integrity": "sha512-7yglcmMoFHDPQXHW+9QAl8YjAToMm1qOi+4x/yGY1FSIEjZbCpjeDgyKMGg/NgpooQQceEN38AR59Pn23EDriA==", + "version": "4.0.3", "dev": true }, "@cspell/dict-powershell": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.2.tgz", - "integrity": "sha512-IHfWLme3FXE7vnOmMncSBxOsMTdNWd1Vcyhag03WS8oANSgX8IZ+4lMI00mF0ptlgchf16/OU8WsV4pZfikEFw==", "dev": true }, "@cspell/dict-public-licenses": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.3.tgz", - "integrity": "sha512-JSLEdpEYufQ1H+93UHi+axlqQm1fhgK6kpdLHp6uPHu//CsvETcqNVawjB+qOdI/g38JTMw5fBqSd0aGNxa6Dw==", + "version": "2.0.4", "dev": true }, "@cspell/dict-python": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.1.7.tgz", - "integrity": "sha512-8GkO7/w1QEpu4Y1GTHGYHrwfc/ZdiBRw7D/BGYCIiOoQPLi0YxMke7wzRC3j246yrzLt28ntDBjr4fB3+uFZtQ==", + "version": "4.1.8", "dev": true, "requires": { "@cspell/dict-data-science": "^1.0.11" @@ -28802,96 +27262,63 @@ }, "@cspell/dict-r": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-r/-/dict-r-2.0.1.tgz", - "integrity": "sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA==", "dev": true }, "@cspell/dict-ruby": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.0.0.tgz", - "integrity": "sha512-ssb96QxLZ76yPqFrikWxItnCbUKhYXJ2owkoIYzUGNFl2CHSoHCb5a6Zetum9mQ/oUA3gNeUhd28ZUlXs0la2A==", "dev": true }, "@cspell/dict-rust": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.1.tgz", - "integrity": "sha512-xJSSzHDK2z6lSVaOmMxl3PTOtfoffaxMo7fTcbZUF+SCJzfKbO6vnN9TCGX2sx1RHFDz66Js6goz6SAZQdOwaw==", "dev": true }, "@cspell/dict-scala": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-5.0.0.tgz", - "integrity": "sha512-ph0twaRoV+ylui022clEO1dZ35QbeEQaKTaV2sPOsdwIokABPIiK09oWwGK9qg7jRGQwVaRPEq0Vp+IG1GpqSQ==", "dev": true }, "@cspell/dict-software-terms": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.2.2.tgz", - "integrity": "sha512-DmdS/qAyJVmKKku4ab89HVZhsvRIk84HoPUVIZ/zJhmuCO+LF45Ylzy1/7G32MYLjbG/o1Ze3UvbaE9HY4FKKA==", + "version": "3.3.0", "dev": true }, "@cspell/dict-sql": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.1.1.tgz", - "integrity": "sha512-v1mswi9NF40+UDUMuI148YQPEQvWjac72P6ZsjlRdLjEiQEEMEsTQ+zlkIdnzC9QCNyJaqD5Liq9Mn78/8Zxtw==", "dev": true }, "@cspell/dict-svelte": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-svelte/-/dict-svelte-1.0.2.tgz", - "integrity": "sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q==", "dev": true }, "@cspell/dict-swift": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-swift/-/dict-swift-2.0.1.tgz", - "integrity": "sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==", "dev": true }, "@cspell/dict-typescript": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.1.1.tgz", - "integrity": "sha512-N9vNJZoOXmmrFPR4ir3rGvnqqwmQGgOYoL1+y6D4oIhyr7FhaYiyF/d7QT61RmjZQcATMa6PSL+ZisCeRLx9+A==", "dev": true }, "@cspell/dict-vue": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-vue/-/dict-vue-3.0.0.tgz", - "integrity": "sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==", "dev": true }, "@cspell/dynamic-import": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-7.3.2.tgz", - "integrity": "sha512-G2ZBPC08X3lUQmHRobGdFYxb3oTSuSIfpW1P/oTMovqbuVoQh108W2WXv0Va40LVGkQD9OS31ZafHbcLELANeA==", + "version": "7.3.6", "dev": true, "requires": { "import-meta-resolve": "^3.0.0" } }, "@cspell/strong-weak-map": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-7.3.2.tgz", - "integrity": "sha512-Y2JL8A/CG37NnreVtU3DhvcOuYWNEAKUmOSU9NfBeOoptWwTMBvbNF5UbOpmZrf2BXc8OmdHIogIWHXYIESiyg==", + "version": "7.3.6", "dev": true }, "@cspotcode/source-map-support": { "version": "0.8.1", "requires": { "@jridgewell/trace-mapping": "0.3.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } } }, "@electron/get": { - "version": "2.0.2", + "version": "2.0.3", "requires": { "debug": "^4.1.1", "env-paths": "^2.2.0", @@ -28920,7 +27347,7 @@ } }, "@esbuild/darwin-arm64": { - "version": "0.19.2", + "version": "0.19.3", "optional": true }, "@eslint-community/eslint-utils": { @@ -28930,7 +27357,7 @@ } }, "@eslint-community/regexpp": { - "version": "4.6.2" + "version": "4.8.1" }, "@eslint/eslintrc": { "version": "2.1.2", @@ -28947,7 +27374,7 @@ } }, "@eslint/js": { - "version": "8.47.0" + "version": "8.49.0" }, "@ethersproject/bytes": { "version": "5.7.0", @@ -28966,7 +27393,7 @@ } }, "@humanwhocodes/config-array": { - "version": "0.11.10", + "version": "0.11.11", "requires": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", @@ -28988,16 +27415,6 @@ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "8.1.0", - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - } } }, "@istanbuljs/load-nyc-config": { @@ -29019,6 +27436,13 @@ "camelcase": { "version": "5.3.1" }, + "find-up": { + "version": "4.1.0", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, "js-yaml": { "version": "3.14.1", "requires": { @@ -29026,6 +27450,24 @@ "esprima": "^4.0.0" } }, + "locate-path": { + "version": "5.0.0", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "requires": { + "p-limit": "^2.2.0" + } + }, "sprintf-js": { "version": "1.0.3" } @@ -29035,7 +27477,7 @@ "version": "0.1.3" }, "@jridgewell/gen-mapping": { - "version": "0.3.2", + "version": "0.3.3", "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -29043,13 +27485,13 @@ } }, "@jridgewell/resolve-uri": { - "version": "3.1.0" + "version": "3.1.1" }, "@jridgewell/set-array": { "version": "1.1.2" }, "@jridgewell/source-map": { - "version": "0.3.2", + "version": "0.3.5", "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", @@ -29057,13 +27499,13 @@ } }, "@jridgewell/sourcemap-codec": { - "version": "1.4.14" + "version": "1.4.15" }, "@jridgewell/trace-mapping": { - "version": "0.3.17", + "version": "0.3.9", "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@jsdoc/salty": { @@ -29097,31 +27539,14 @@ "version": "2.0.4" }, "@libp2p/bootstrap": { - "version": "9.0.2", + "version": "9.0.6", "dev": true, "requires": { - "@libp2p/interface": "^0.1.1", - "@libp2p/logger": "^3.0.1", - "@libp2p/peer-id": "^3.0.1", + "@libp2p/interface": "^0.1.2", + "@libp2p/logger": "^3.0.2", + "@libp2p/peer-id": "^3.0.2", "@multiformats/mafmt": "^12.1.2", - "@multiformats/multiaddr": "^12.1.3" - }, - "dependencies": { - "@libp2p/logger": { - "version": "3.0.1", - "dev": true, - "requires": { - "@libp2p/interface": "^0.1.1", - "@multiformats/multiaddr": "^12.1.3", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "multiformats": { - "version": "12.0.1", - "dev": true - } + "@multiformats/multiaddr": "^12.1.5" } }, "@libp2p/crypto": { @@ -29136,6 +27561,11 @@ "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.2" + }, + "dependencies": { + "multiformats": { + "version": "11.0.2" + } } }, "@libp2p/interface": { @@ -29148,28 +27578,20 @@ "multiformats": "^12.0.1", "p-defer": "^4.0.0", "uint8arraylist": "^2.4.3" - }, - "dependencies": { - "it-stream-types": { - "version": "2.0.1" - }, - "multiformats": { - "version": "12.0.1" - } } }, "@libp2p/interface-compliance-tests": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/interface-compliance-tests/-/interface-compliance-tests-4.0.5.tgz", - "integrity": "sha512-KfCwz+vHwdXebWaG/nQLjDR3a1j6fh+fuGvr76RCD0ALjcexG2Sf4dU+tFmduIgkRND/Ir56bOLmKpWEVgGN4Q==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface-compliance-tests/-/interface-compliance-tests-4.1.0.tgz", + "integrity": "sha512-8h2rRws1zz6lF72rXcfa+xe91kjtwcRcJv8xxj8et5tGxq4mJiDUjOzBaEXjS6Vadf8BBMuHzWRGaloe9E6Mcw==", "requires": { "@libp2p/interface": "^0.1.2", - "@libp2p/interface-internal": "^0.1.4", + "@libp2p/interface-internal": "^0.1.5", "@libp2p/logger": "^3.0.2", "@libp2p/multistream-select": "^4.0.2", - "@libp2p/peer-collections": "^4.0.3", + "@libp2p/peer-collections": "^4.0.4", "@libp2p/peer-id": "^3.0.2", - "@libp2p/peer-id-factory": "^3.0.3", + "@libp2p/peer-id-factory": "^3.0.4", "@multiformats/multiaddr": "^12.1.5", "abortable-iterator": "^5.0.1", "aegir": "^40.0.11", @@ -29191,85 +27613,41 @@ "p-limit": "^4.0.0", "p-wait-for": "^5.0.2", "protons-runtime": "^5.0.0", - "sinon": "^15.1.2", + "sinon": "^16.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" }, "dependencies": { - "@libp2p/logger": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.2.tgz", - "integrity": "sha512-2JtRGBXiGfm1t5XneUIXQ2JusW7QwyYmxsW7hSAYS5J73RQJUicpt5le5obVRt7+OM39ei+nWEuC6Xvm1ugHkw==", - "requires": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "it-stream-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", - "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" - }, - "multiformats": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.0.tgz", - "integrity": "sha512-/qTOKKnU8nwcVURjRcS+UN0QYgdS5BPZzY10Aiciu2SqncyCVMGV8KtD83EBFmsuJDsSEmT4sGvzcTkCoMw0sQ==" - }, - "p-event": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.0.tgz", - "integrity": "sha512-Xbfxd0CfZmHLGKXH32k1JKjQYX6Rkv0UtQdaFJ8OyNcf+c0oWCeXHc1C4CX/IESZLmcvfPa5aFIO/vCr5gqtag==", - "requires": { - "p-timeout": "^6.1.2" - } - }, "p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "requires": { "yocto-queue": "^1.0.0" } }, "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==" + "version": "1.0.0" } } }, "@libp2p/interface-internal": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-0.1.4.tgz", - "integrity": "sha512-fRa8AUeCVOqfjgJgpIWupOsc7nAnJuI/VjWL2ZfRqbz7CPLD9c/ZAKXC140THSxlNdNQ9kGpo/C2z/yCGLy4ig==", + "version": "0.1.5", "requires": { "@libp2p/interface": "^0.1.2", - "@libp2p/peer-collections": "^4.0.3", + "@libp2p/peer-collections": "^4.0.4", "@multiformats/multiaddr": "^12.1.5", "uint8arraylist": "^2.4.3" } }, "@libp2p/interface-keys": { - "version": "1.0.7" - }, - "@libp2p/interface-peer-id": { - "version": "2.0.2", - "requires": { - "multiformats": "^11.0.0" - } + "version": "1.0.8" }, "@libp2p/interfaces": { "version": "3.3.2" }, "@libp2p/keychain": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-3.0.3.tgz", - "integrity": "sha512-mt3Pq8pPUDchoYlTXyNFMSIZ2/gbGZUJIr1qDQGphLZKxZ3Ejsqps2Dgo0t6yBxvJQ0581tXfptAXzw75Y2LIA==", + "version": "3.0.4", "requires": { - "@libp2p/crypto": "^2.0.3", + "@libp2p/crypto": "^2.0.4", "@libp2p/interface": "^0.1.2", "@libp2p/logger": "^3.0.2", "@libp2p/peer-id": "^3.0.2", @@ -29280,9 +27658,7 @@ }, "dependencies": { "@libp2p/crypto": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.3.tgz", - "integrity": "sha512-VLhjdkJe8b/vedHp7SosDs62Yxq1i05Ej/YdVaEdWQdJsBRHCwbRlS4hPg3vm21U5hLF0g958r/927Vd/wamZw==", + "version": "2.0.4", "requires": { "@libp2p/interface": "^0.1.2", "@noble/curves": "^1.1.0", @@ -29293,40 +27669,21 @@ "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } - }, - "@libp2p/logger": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.2.tgz", - "integrity": "sha512-2JtRGBXiGfm1t5XneUIXQ2JusW7QwyYmxsW7hSAYS5J73RQJUicpt5le5obVRt7+OM39ei+nWEuC6Xvm1ugHkw==", - "requires": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "multiformats": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.1.tgz", - "integrity": "sha512-GBSToTmri2vJYs8wqcZQ8kB21dCaeTOzHTIAlr8J06C1eL6UbzqURXFZ5Fl0EYm9GAFz1IlYY8SxGOs9G9NJRg==" } } }, "@libp2p/logger": { - "version": "2.1.1", + "version": "3.0.2", "requires": { - "@libp2p/interface-peer-id": "^2.0.2", - "@multiformats/multiaddr": "^12.1.3", + "@libp2p/interface": "^0.1.2", + "@multiformats/multiaddr": "^12.1.5", "debug": "^4.3.4", "interface-datastore": "^8.2.0", - "multiformats": "^11.0.2" + "multiformats": "^12.0.1" } }, "@libp2p/mplex": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/mplex/-/mplex-9.0.5.tgz", - "integrity": "sha512-cwg8ueB7xzwQbWt2da/Q5oPsm/6wk1GwNiGBiUsvy75h3qr6b1RNDuFJYkCSySI4mLvdTrkvthJCXHQMAW4Tvg==", + "version": "9.0.6", "requires": { "@libp2p/interface": "^0.1.2", "@libp2p/logger": "^3.0.2", @@ -29335,47 +27692,14 @@ "it-batched-bytes": "^2.0.2", "it-pushable": "^3.2.0", "it-stream-types": "^2.0.1", - "rate-limiter-flexible": "^2.3.11", + "rate-limiter-flexible": "^3.0.0", "uint8-varint": "^2.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" - }, - "dependencies": { - "@libp2p/logger": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.2.tgz", - "integrity": "sha512-2JtRGBXiGfm1t5XneUIXQ2JusW7QwyYmxsW7hSAYS5J73RQJUicpt5le5obVRt7+OM39ei+nWEuC6Xvm1ugHkw==", - "requires": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "it-stream-types": { - "version": "2.0.1" - }, - "multiformats": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.1.tgz", - "integrity": "sha512-GBSToTmri2vJYs8wqcZQ8kB21dCaeTOzHTIAlr8J06C1eL6UbzqURXFZ5Fl0EYm9GAFz1IlYY8SxGOs9G9NJRg==" - }, - "uint8-varint": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-2.0.1.tgz", - "integrity": "sha512-euvmpuulJstK5+xNuI4S1KfnxJnbI5QP52RXIR3GZ3/ZMkOsEK2AgCtFpNvEQLXMxMx2o0qcyevK1fJwOZJagQ==", - "requires": { - "uint8arraylist": "^2.0.0", - "uint8arrays": "^4.0.2" - } - } } }, "@libp2p/multistream-select": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-4.0.2.tgz", - "integrity": "sha512-Ss3kPD+1Z8RFLUT+oN9I2ynEtp/Yj2+rOngU1XjIxustg1nt5lq0kk9hvWJyBexzmuML0xCknNjUXovpRbFPgQ==", "requires": { "@libp2p/interface": "^0.1.2", "@libp2p/logger": "^3.0.2", @@ -29390,34 +27714,10 @@ "it-stream-types": "^2.0.1", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" - }, - "dependencies": { - "@libp2p/logger": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.2.tgz", - "integrity": "sha512-2JtRGBXiGfm1t5XneUIXQ2JusW7QwyYmxsW7hSAYS5J73RQJUicpt5le5obVRt7+OM39ei+nWEuC6Xvm1ugHkw==", - "requires": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "it-stream-types": { - "version": "2.0.1" - }, - "multiformats": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.0.tgz", - "integrity": "sha512-/qTOKKnU8nwcVURjRcS+UN0QYgdS5BPZzY10Aiciu2SqncyCVMGV8KtD83EBFmsuJDsSEmT4sGvzcTkCoMw0sQ==" - } } }, "@libp2p/peer-collections": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-4.0.3.tgz", - "integrity": "sha512-ahfZFdRhApN4dulnzAvkzQsPVJVX7UID3QMKC/cduK5FYWqm7zbtW6bpwDilhZY3wvjvaQYs4R0KKSysvTPiQQ==", + "version": "4.0.4", "requires": { "@libp2p/interface": "^0.1.2", "@libp2p/peer-id": "^3.0.2" @@ -29429,17 +27729,12 @@ "@libp2p/interface": "^0.1.2", "multiformats": "^12.0.1", "uint8arrays": "^4.0.6" - }, - "dependencies": { - "multiformats": { - "version": "12.1.0" - } } }, "@libp2p/peer-id-factory": { - "version": "3.0.3", + "version": "3.0.4", "requires": { - "@libp2p/crypto": "^2.0.3", + "@libp2p/crypto": "^2.0.4", "@libp2p/interface": "^0.1.2", "@libp2p/peer-id": "^3.0.2", "multiformats": "^12.0.1", @@ -29449,7 +27744,7 @@ }, "dependencies": { "@libp2p/crypto": { - "version": "2.0.3", + "version": "2.0.4", "requires": { "@libp2p/interface": "^0.1.2", "@noble/curves": "^1.1.0", @@ -29460,32 +27755,25 @@ "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } - }, - "multiformats": { - "version": "12.0.1" } } }, "@libp2p/peer-record": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-6.0.3.tgz", - "integrity": "sha512-S5C4Df2uyX1vNsnduZ6RVjB7T+dUEhqnaSNhiv82VCoqMoniHQBf2ftvXlv/UqqssW9or1x4UwgFU+sL7kObkw==", + "version": "6.0.5", "requires": { - "@libp2p/crypto": "^2.0.3", + "@libp2p/crypto": "^2.0.4", "@libp2p/interface": "^0.1.2", "@libp2p/peer-id": "^3.0.2", - "@libp2p/utils": "^4.0.2", + "@libp2p/utils": "^4.0.3", "@multiformats/multiaddr": "^12.1.5", "protons-runtime": "^5.0.0", - "uint8-varint": "^1.0.2", + "uint8-varint": "^2.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" }, "dependencies": { "@libp2p/crypto": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.3.tgz", - "integrity": "sha512-VLhjdkJe8b/vedHp7SosDs62Yxq1i05Ej/YdVaEdWQdJsBRHCwbRlS4hPg3vm21U5hLF0g958r/927Vd/wamZw==", + "version": "2.0.4", "requires": { "@libp2p/interface": "^0.1.2", "@noble/curves": "^1.1.0", @@ -29496,25 +27784,18 @@ "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } - }, - "multiformats": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.1.tgz", - "integrity": "sha512-GBSToTmri2vJYs8wqcZQ8kB21dCaeTOzHTIAlr8J06C1eL6UbzqURXFZ5Fl0EYm9GAFz1IlYY8SxGOs9G9NJRg==" } } }, "@libp2p/peer-store": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-9.0.3.tgz", - "integrity": "sha512-7vSAUvKAzzWRwcMxOUvyGNw8V59t9l9l1Ugxa+VHCKKhvAEn9eXjf8We8BLGT3KnUG6aJ5HpODPK4RbW6BNGfA==", + "version": "9.0.5", "requires": { "@libp2p/interface": "^0.1.2", "@libp2p/logger": "^3.0.2", - "@libp2p/peer-collections": "^4.0.3", + "@libp2p/peer-collections": "^4.0.4", "@libp2p/peer-id": "^3.0.2", - "@libp2p/peer-id-factory": "^3.0.3", - "@libp2p/peer-record": "^6.0.3", + "@libp2p/peer-id-factory": "^3.0.4", + "@libp2p/peer-record": "^6.0.5", "@multiformats/multiaddr": "^12.1.5", "interface-datastore": "^8.2.0", "it-all": "^3.0.2", @@ -29523,36 +27804,17 @@ "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" - }, - "dependencies": { - "@libp2p/logger": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.2.tgz", - "integrity": "sha512-2JtRGBXiGfm1t5XneUIXQ2JusW7QwyYmxsW7hSAYS5J73RQJUicpt5le5obVRt7+OM39ei+nWEuC6Xvm1ugHkw==", - "requires": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "multiformats": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.1.tgz", - "integrity": "sha512-GBSToTmri2vJYs8wqcZQ8kB21dCaeTOzHTIAlr8J06C1eL6UbzqURXFZ5Fl0EYm9GAFz1IlYY8SxGOs9G9NJRg==" - } } }, "@libp2p/pubsub": { - "version": "8.0.3", + "version": "8.0.6", "requires": { - "@libp2p/crypto": "^2.0.2", - "@libp2p/interface": "^0.1.1", - "@libp2p/interface-internal": "^0.1.2", - "@libp2p/logger": "^3.0.1", - "@libp2p/peer-collections": "^4.0.2", - "@libp2p/peer-id": "^3.0.1", + "@libp2p/crypto": "^2.0.4", + "@libp2p/interface": "^0.1.2", + "@libp2p/interface-internal": "^0.1.5", + "@libp2p/logger": "^3.0.2", + "@libp2p/peer-collections": "^4.0.4", + "@libp2p/peer-id": "^3.0.2", "abortable-iterator": "^5.0.1", "it-length-prefixed": "^9.0.1", "it-pipe": "^3.0.1", @@ -29560,76 +27822,44 @@ "multiformats": "^12.0.1", "p-queue": "^7.3.4", "uint8arraylist": "^2.4.3", - "uint8arrays": "^4.0.4" + "uint8arrays": "^4.0.6" }, "dependencies": { "@libp2p/crypto": { - "version": "2.0.2", + "version": "2.0.4", "requires": { - "@libp2p/interface": "^0.1.1", - "@noble/ed25519": "^1.6.0", - "@noble/secp256k1": "^1.5.4", + "@libp2p/interface": "^0.1.2", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", "multiformats": "^12.0.1", "node-forge": "^1.1.0", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", - "uint8arrays": "^4.0.4" + "uint8arrays": "^4.0.6" } - }, - "@libp2p/logger": { - "version": "3.0.1", - "requires": { - "@libp2p/interface": "^0.1.1", - "@multiformats/multiaddr": "^12.1.3", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "multiformats": { - "version": "12.0.1" } } }, "@libp2p/utils": { - "version": "4.0.2", + "version": "4.0.3", "requires": { "@chainsafe/is-ip": "^2.0.2", "@libp2p/interface": "^0.1.2", "@libp2p/logger": "^3.0.2", "@multiformats/multiaddr": "^12.1.5", + "@multiformats/multiaddr-matcher": "^1.0.1", "is-loopback-addr": "^2.0.1", "it-stream-types": "^2.0.1", "private-ip": "^3.0.0", "uint8arraylist": "^2.4.3" - }, - "dependencies": { - "@libp2p/logger": { - "version": "3.0.2", - "requires": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "it-stream-types": { - "version": "2.0.1" - }, - "multiformats": { - "version": "12.0.1" - } } }, "@libp2p/websockets": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-7.0.5.tgz", - "integrity": "sha512-2Dz4ETRk+ecF2nj1S/G5vSBrhXhuBrXIMAzpqzTM6L0TrEraGrJYyoYB15A+u7kA8xMbdRodyguB6ZLVatL5nw==", + "version": "7.0.7", "requires": { "@libp2p/interface": "^0.1.2", "@libp2p/logger": "^3.0.2", - "@libp2p/utils": "^4.0.2", + "@libp2p/utils": "^4.0.3", "@multiformats/mafmt": "^12.1.2", "@multiformats/multiaddr": "^12.1.5", "@multiformats/multiaddr-to-uri": "^9.0.2", @@ -29641,96 +27871,51 @@ "ws": "^8.12.1" }, "dependencies": { - "@libp2p/logger": { - "version": "3.0.2", - "requires": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "multiformats": { - "version": "12.0.1" - }, "ws": { - "version": "8.13.0", + "version": "8.14.2", "requires": {} } } }, "@multiformats/mafmt": { - "version": "12.1.5", + "version": "12.1.6", "requires": { "@multiformats/multiaddr": "^12.0.0" } }, "@multiformats/multiaddr": { - "version": "12.1.6", + "version": "12.1.7", "requires": { "@chainsafe/is-ip": "^2.0.1", "@chainsafe/netmask": "^2.0.0", "@libp2p/interface": "^0.1.1", "dns-over-http-resolver": "^2.1.0", "multiformats": "^12.0.1", - "uint8arrays": "^4.0.2", - "varint": "^6.0.0" - }, - "dependencies": { - "multiformats": { - "version": "12.0.1" - } + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" } }, "@multiformats/multiaddr-matcher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-matcher/-/multiaddr-matcher-1.0.1.tgz", - "integrity": "sha512-ZzqwTH8tP5Py/k8eNKprO0i6tuwgrbp7KWz+ttxvzkPl43BlU9Yd5joq+M5grCt158rpAc2uhPobzfXgPxW5XQ==", + "version": "1.0.2", "requires": { "@chainsafe/is-ip": "^2.0.1", "@multiformats/multiaddr": "^12.0.0", "multiformats": "^12.0.1" - }, - "dependencies": { - "multiformats": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.1.tgz", - "integrity": "sha512-GBSToTmri2vJYs8wqcZQ8kB21dCaeTOzHTIAlr8J06C1eL6UbzqURXFZ5Fl0EYm9GAFz1IlYY8SxGOs9G9NJRg==" - } } }, "@multiformats/multiaddr-to-uri": { - "version": "9.0.2", + "version": "9.0.7", "requires": { - "@multiformats/multiaddr": "^11.0.0" - }, - "dependencies": { - "@multiformats/multiaddr": { - "version": "11.6.1", - "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" - } - } + "@multiformats/multiaddr": "^12.0.0" } }, "@noble/ciphers": { - "version": "0.1.4" + "version": "0.3.0" }, "@noble/curves": { - "version": "1.1.0", + "version": "1.2.0", "requires": { - "@noble/hashes": "1.3.1" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.3.1" - } + "@noble/hashes": "1.3.2" } }, "@noble/ed25519": { @@ -29858,18 +28043,13 @@ "open": "^9.1.0", "picocolors": "^1.0.0", "tslib": "^2.6.0" - }, - "dependencies": { - "open": { - "version": "9.1.0", - "dev": true, - "requires": { - "default-browser": "^4.0.0", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" - } - } + } + }, + "@playwright/test": { + "version": "1.38.1", + "dev": true, + "requires": { + "playwright": "1.38.1" } }, "@pnpm/config.env-replace": { @@ -29879,6 +28059,11 @@ "version": "1.0.2", "requires": { "graceful-fs": "4.2.10" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.10" + } } }, "@pnpm/npm-conf": { @@ -29929,43 +28114,8 @@ "@protobufjs/utf8": { "version": "1.1.0" }, - "@puppeteer/browsers": { - "version": "1.7.0", - "dev": true, - "requires": { - "debug": "4.3.4", - "extract-zip": "2.0.1", - "progress": "2.0.3", - "proxy-agent": "6.3.0", - "tar-fs": "3.0.4", - "unbzip2-stream": "1.4.3", - "yargs": "17.7.1" - }, - "dependencies": { - "tar-fs": { - "version": "3.0.4", - "dev": true, - "requires": { - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - } - }, - "tar-stream": { - "version": "3.1.6", - "dev": true, - "requires": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - } - } - }, "@rollup/plugin-commonjs": { "version": "25.0.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.4.tgz", - "integrity": "sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ==", "dev": true, "requires": { "@rollup/pluginutils": "^5.0.1", @@ -29974,33 +28124,6 @@ "glob": "^8.0.3", "is-reference": "1.2.1", "magic-string": "^0.27.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.1.0", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.6", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } } }, "@rollup/plugin-json": { @@ -30011,7 +28134,7 @@ } }, "@rollup/plugin-node-resolve": { - "version": "15.1.0", + "version": "15.2.1", "dev": true, "requires": { "@rollup/pluginutils": "^5.0.1", @@ -30023,18 +28146,12 @@ } }, "@rollup/pluginutils": { - "version": "5.0.2", + "version": "5.0.4", "dev": true, "requires": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^2.3.1" - }, - "dependencies": { - "@types/estree": { - "version": "1.0.0", - "dev": true - } } }, "@samverschueren/stream-to-observable": { @@ -30073,11 +28190,11 @@ } }, "@semantic-release/commit-analyzer": { - "version": "10.0.1", + "version": "10.0.4", "requires": { "conventional-changelog-angular": "^6.0.0", "conventional-commits-filter": "^3.0.0", - "conventional-commits-parser": "^4.0.0", + "conventional-commits-parser": "^5.0.0", "debug": "^4.0.0", "import-from": "^4.0.0", "lodash-es": "^4.17.21", @@ -30141,14 +28258,14 @@ } }, "@semantic-release/github": { - "version": "9.0.4", + "version": "9.0.6", "requires": { "@octokit/core": "^5.0.0", "@octokit/plugin-paginate-rest": "^8.0.0", "@octokit/plugin-retry": "^6.0.0", "@octokit/plugin-throttling": "^7.0.0", "@semantic-release/error": "^4.0.0", - "aggregate-error": "^4.0.1", + "aggregate-error": "^5.0.0", "debug": "^4.3.4", "dir-glob": "^3.0.1", "globby": "^13.1.4", @@ -30171,14 +28288,14 @@ } }, "aggregate-error": { - "version": "4.0.1", + "version": "5.0.0", "requires": { - "clean-stack": "^4.0.0", + "clean-stack": "^5.2.0", "indent-string": "^5.0.0" } }, "clean-stack": { - "version": "4.2.0", + "version": "5.2.0", "requires": { "escape-string-regexp": "5.0.0" } @@ -30197,7 +28314,7 @@ } }, "https-proxy-agent": { - "version": "7.0.1", + "version": "7.0.2", "requires": { "agent-base": "^7.0.2", "debug": "4" @@ -30212,11 +28329,11 @@ } }, "@semantic-release/npm": { - "version": "10.0.4", + "version": "10.0.6", "requires": { "@semantic-release/error": "^4.0.0", - "aggregate-error": "^4.0.1", - "execa": "^7.0.0", + "aggregate-error": "^5.0.0", + "execa": "^8.0.0", "fs-extra": "^11.0.0", "lodash-es": "^4.17.21", "nerf-dart": "^1.0.0", @@ -30233,14 +28350,14 @@ "version": "4.0.0" }, "aggregate-error": { - "version": "4.0.1", + "version": "5.0.0", "requires": { - "clean-stack": "^4.0.0", + "clean-stack": "^5.2.0", "indent-string": "^5.0.0" } }, "clean-stack": { - "version": "4.2.0", + "version": "5.2.0", "requires": { "escape-string-regexp": "5.0.0" } @@ -30248,6 +28365,20 @@ "escape-string-regexp": { "version": "5.0.0" }, + "execa": { + "version": "8.0.1", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + } + }, "fs-extra": { "version": "11.1.1", "requires": { @@ -30256,9 +28387,24 @@ "universalify": "^2.0.0" } }, + "get-stream": { + "version": "8.0.1" + }, + "hosted-git-info": { + "version": "7.0.1", + "requires": { + "lru-cache": "^10.0.1" + } + }, + "human-signals": { + "version": "5.0.0" + }, "indent-string": { "version": "5.0.0" }, + "json-parse-even-better-errors": { + "version": "3.0.0" + }, "jsonfile": { "version": "6.1.0", "requires": { @@ -30266,18 +28412,63 @@ "universalify": "^2.0.0" } }, + "lines-and-columns": { + "version": "2.0.3" + }, + "lru-cache": { + "version": "10.0.1" + }, + "normalize-package-data": { + "version": "6.0.0", + "requires": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + } + }, + "parse-json": { + "version": "7.1.0", + "requires": { + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" + }, + "dependencies": { + "type-fest": { + "version": "3.13.1" + } + } + }, + "read-pkg": { + "version": "8.1.0", + "requires": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^6.0.0", + "parse-json": "^7.0.0", + "type-fest": "^4.2.0" + } + }, + "signal-exit": { + "version": "4.1.0" + }, + "type-fest": { + "version": "4.3.1" + }, "universalify": { "version": "2.0.0" } } }, "@semantic-release/release-notes-generator": { - "version": "11.0.4", + "version": "11.0.7", "requires": { "conventional-changelog-angular": "^6.0.0", "conventional-changelog-writer": "^6.0.0", - "conventional-commits-filter": "^3.0.0", - "conventional-commits-parser": "^4.0.0", + "conventional-commits-filter": "^4.0.0", + "conventional-commits-parser": "^5.0.0", "debug": "^4.0.0", "get-stream": "^7.0.0", "import-from": "^4.0.0", @@ -30286,50 +28477,11 @@ "read-pkg-up": "^10.0.0" }, "dependencies": { - "find-up": { - "version": "6.3.0", - "requires": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - } + "conventional-commits-filter": { + "version": "4.0.0" }, "get-stream": { "version": "7.0.1" - }, - "locate-path": { - "version": "7.2.0", - "requires": { - "p-locate": "^6.0.0" - } - }, - "p-limit": { - "version": "4.0.0", - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "p-locate": { - "version": "6.0.0", - "requires": { - "p-limit": "^4.0.0" - } - }, - "path-exists": { - "version": "5.0.0" - }, - "read-pkg-up": { - "version": "10.0.0", - "requires": { - "find-up": "^6.3.0", - "read-pkg": "^8.0.0", - "type-fest": "^3.12.0" - } - }, - "type-fest": { - "version": "3.13.1" - }, - "yocto-queue": { - "version": "1.0.0" } } }, @@ -30374,36 +28526,58 @@ "debug": "^4.1.1" } }, - "@size-limit/file": { - "version": "8.2.4", - "dev": true, - "requires": { - "semver": "7.3.8" - } - }, "@size-limit/preset-big-lib": { - "version": "8.2.4", + "version": "8.2.6", "dev": true, "requires": { - "@size-limit/file": "8.2.4", - "@size-limit/time": "8.2.4", - "@size-limit/webpack": "8.2.4" - } - }, - "@size-limit/time": { - "version": "8.2.4", - "dev": true, - "requires": { - "estimo": "^2.3.6", - "react": "^17.0.2" - } - }, - "@size-limit/webpack": { - "version": "8.2.4", - "dev": true, - "requires": { - "nanoid": "^3.3.4", - "webpack": "^5.75.0" + "@size-limit/file": "8.2.6", + "@size-limit/time": "8.2.6", + "@size-limit/webpack": "8.2.6", + "size-limit": "8.2.6" + }, + "dependencies": { + "@size-limit/file": { + "version": "8.2.6", + "dev": true, + "requires": { + "semver": "7.5.3" + } + }, + "@size-limit/time": { + "version": "8.2.6", + "dev": true, + "requires": { + "estimo": "^2.3.6", + "react": "^17.0.2" + } + }, + "@size-limit/webpack": { + "version": "8.2.6", + "dev": true, + "requires": { + "nanoid": "^3.3.6", + "webpack": "^5.88.0" + } + }, + "semver": { + "version": "7.5.3", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "size-limit": { + "version": "8.2.6", + "dev": true, + "requires": { + "bytes-iec": "^3.1.1", + "chokidar": "^3.5.3", + "globby": "^11.1.0", + "lilconfig": "^2.1.0", + "nanospinner": "^1.1.0", + "picocolors": "^1.0.0" + } + } } }, "@socket.io/component-emitter": { @@ -30416,10 +28590,6 @@ "defer-to-connect": "^2.0.0" } }, - "@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "dev": true - }, "@tsconfig/node10": { "version": "1.0.9" }, @@ -30430,7 +28600,7 @@ "version": "1.0.3" }, "@tsconfig/node16": { - "version": "1.0.3" + "version": "1.0.4" }, "@types/cacheable-request": { "version": "6.0.3", @@ -30442,16 +28612,16 @@ } }, "@types/chai": { - "version": "4.3.5" + "version": "4.3.6" }, "@types/chai-as-promised": { - "version": "7.1.5", + "version": "7.1.6", "requires": { "@types/chai": "*" } }, "@types/chai-string": { - "version": "1.4.2", + "version": "1.4.3", "requires": { "@types/chai": "*" } @@ -30467,7 +28637,7 @@ "dev": true }, "@types/cors": { - "version": "2.8.13", + "version": "2.8.14", "dev": true, "requires": { "@types/node": "*" @@ -30475,14 +28645,12 @@ }, "@types/debug": { "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz", - "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==", "requires": { "@types/ms": "*" } }, "@types/docker-modem": { - "version": "3.0.2", + "version": "3.0.3", "dev": true, "requires": { "@types/node": "*", @@ -30498,7 +28666,7 @@ } }, "@types/eslint": { - "version": "8.21.1", + "version": "8.44.2", "dev": true, "requires": { "@types/estree": "*", @@ -30514,17 +28682,17 @@ } }, "@types/estree": { - "version": "0.0.51", + "version": "1.0.1", "dev": true }, "@types/http-cache-semantics": { - "version": "4.0.1" + "version": "4.0.2" }, "@types/istanbul-lib-coverage": { "version": "2.0.4" }, "@types/json-schema": { - "version": "7.0.12" + "version": "7.0.13" }, "@types/json5": { "version": "0.0.29" @@ -30536,7 +28704,13 @@ } }, "@types/linkify-it": { - "version": "3.0.2", + "version": "3.0.3", + "dev": true + }, + "@types/lodash": { + "version": "4.14.199", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", + "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==", "dev": true }, "@types/markdown-it": { @@ -30570,7 +28744,7 @@ "version": "0.7.31" }, "@types/node": { - "version": "18.15.1" + "version": "20.6.3" }, "@types/normalize-package-data": { "version": "2.4.1" @@ -30589,10 +28763,10 @@ } }, "@types/retry": { - "version": "0.12.1" + "version": "0.12.2" }, "@types/semver": { - "version": "7.5.0" + "version": "7.5.2" }, "@types/sinon": { "version": "10.0.16", @@ -30606,10 +28780,16 @@ "dev": true }, "@types/ssh2": { - "version": "1.11.8", + "version": "1.11.13", "dev": true, "requires": { "@types/node": "^18.11.18" + }, + "dependencies": { + "@types/node": { + "version": "18.17.18", + "dev": true + } } }, "@types/strip-bom": { @@ -30629,9 +28809,7 @@ "version": "3.0.0" }, "@types/uuid": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.3.tgz", - "integrity": "sha512-taHQQH/3ZyI3zP8M/puluDEIEvtQHVYcC6y3N8ijFtAd28+Ey/G4sg1u2gB01S8MwybLOKAp9/yCMu/uR5l3Ug==", + "version": "9.0.4", "dev": true }, "@types/ws": { @@ -30657,53 +28835,20 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "6.3.0", + "version": "6.7.2", "dev": true, "requires": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.3.0", - "@typescript-eslint/type-utils": "6.3.0", - "@typescript-eslint/utils": "6.3.0", - "@typescript-eslint/visitor-keys": "6.3.0", + "@typescript-eslint/scope-manager": "6.7.2", + "@typescript-eslint/type-utils": "6.7.2", + "@typescript-eslint/utils": "6.7.2", + "@typescript-eslint/visitor-keys": "6.7.2", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", "natural-compare": "^1.4.0", - "natural-compare-lite": "^1.4.0", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" - }, - "dependencies": { - "@typescript-eslint/type-utils": { - "version": "6.3.0", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "6.3.0", - "@typescript-eslint/utils": "6.3.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/utils": { - "version": "6.3.0", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.3.0", - "@typescript-eslint/types": "6.3.0", - "@typescript-eslint/typescript-estree": "6.3.0", - "semver": "^7.5.4" - } - }, - "semver": { - "version": "7.5.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@typescript-eslint/experimental-utils": { @@ -30754,293 +28899,82 @@ "eslint-visitor-keys": "^3.3.0" } }, - "array-union": { - "version": "2.1.0" - }, - "globby": { - "version": "11.1.0", + "eslint-scope": { + "version": "5.1.1", "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" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } + }, + "estraverse": { + "version": "4.3.0" } } }, "@typescript-eslint/parser": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.6.0.tgz", - "integrity": "sha512-setq5aJgUwtzGrhW177/i+DMLqBaJbdwGj2CPIVFFLE0NCliy5ujIdLHd2D1ysmlmsjdL2GWW+hR85neEfc12w==", + "version": "6.7.2", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "6.6.0", - "@typescript-eslint/types": "6.6.0", - "@typescript-eslint/typescript-estree": "6.6.0", - "@typescript-eslint/visitor-keys": "6.6.0", + "@typescript-eslint/scope-manager": "6.7.2", + "@typescript-eslint/types": "6.7.2", + "@typescript-eslint/typescript-estree": "6.7.2", + "@typescript-eslint/visitor-keys": "6.7.2", "debug": "^4.3.4" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.6.0.tgz", - "integrity": "sha512-pT08u5W/GT4KjPUmEtc2kSYvrH8x89cVzkA0Sy2aaOUIw6YxOIjA8ilwLr/1fLjOedX1QAuBpG9XggWqIIfERw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.6.0", - "@typescript-eslint/visitor-keys": "6.6.0" - } - }, - "@typescript-eslint/types": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.6.0.tgz", - "integrity": "sha512-CB6QpJQ6BAHlJXdwUmiaXDBmTqIE2bzGTDLADgvqtHWuhfNP3rAOK7kAgRMAET5rDRr9Utt+qAzRBdu3AhR3sg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.6.0.tgz", - "integrity": "sha512-hMcTQ6Al8MP2E6JKBAaSxSVw5bDhdmbCEhGW/V8QXkb9oNsFkA4SBuOMYVPxD3jbtQ4R/vSODBsr76R6fP3tbA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.6.0", - "@typescript-eslint/visitor-keys": "6.6.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.6.0.tgz", - "integrity": "sha512-L61uJT26cMOfFQ+lMZKoJNbAEckLe539VhTxiGHrWl5XSKQgA0RTBZJW2HFPy5T0ZvPVSD93QsrTKDkfNwJGyQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.6.0", - "eslint-visitor-keys": "^3.4.1" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "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" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@typescript-eslint/scope-manager": { - "version": "6.3.0", + "version": "6.7.2", "dev": true, "requires": { - "@typescript-eslint/types": "6.3.0", - "@typescript-eslint/visitor-keys": "6.3.0" + "@typescript-eslint/types": "6.7.2", + "@typescript-eslint/visitor-keys": "6.7.2" } }, "@typescript-eslint/type-utils": { - "version": "6.4.0", + "version": "6.7.2", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "6.4.0", - "@typescript-eslint/utils": "6.4.0", + "@typescript-eslint/typescript-estree": "6.7.2", + "@typescript-eslint/utils": "6.7.2", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" - }, - "dependencies": { - "@typescript-eslint/types": { - "version": "6.4.0", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "6.4.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.4.0", - "@typescript-eslint/visitor-keys": "6.4.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "6.4.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.4.0", - "eslint-visitor-keys": "^3.4.1" - } - }, - "array-union": { - "version": "2.1.0", - "dev": true - }, - "globby": { - "version": "11.1.0", - "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" - } - }, - "semver": { - "version": "7.5.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@typescript-eslint/types": { - "version": "6.3.0", + "version": "6.7.2", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "6.3.0", + "version": "6.7.2", "dev": true, "requires": { - "@typescript-eslint/types": "6.3.0", - "@typescript-eslint/visitor-keys": "6.3.0", + "@typescript-eslint/types": "6.7.2", + "@typescript-eslint/visitor-keys": "6.7.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" - }, - "dependencies": { - "array-union": { - "version": "2.1.0", - "dev": true - }, - "globby": { - "version": "11.1.0", - "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" - } - }, - "semver": { - "version": "7.5.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@typescript-eslint/utils": { - "version": "6.4.0", + "version": "6.7.2", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.4.0", - "@typescript-eslint/types": "6.4.0", - "@typescript-eslint/typescript-estree": "6.4.0", + "@typescript-eslint/scope-manager": "6.7.2", + "@typescript-eslint/types": "6.7.2", + "@typescript-eslint/typescript-estree": "6.7.2", "semver": "^7.5.4" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "6.4.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.4.0", - "@typescript-eslint/visitor-keys": "6.4.0" - } - }, - "@typescript-eslint/types": { - "version": "6.4.0", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "6.4.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.4.0", - "@typescript-eslint/visitor-keys": "6.4.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "6.4.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.4.0", - "eslint-visitor-keys": "^3.4.1" - } - }, - "array-union": { - "version": "2.1.0", - "dev": true - }, - "globby": { - "version": "11.1.0", - "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" - } - }, - "semver": { - "version": "7.5.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@typescript-eslint/visitor-keys": { - "version": "6.3.0", + "version": "6.7.2", "dev": true, "requires": { - "@typescript-eslint/types": "6.3.0", + "@typescript-eslint/types": "6.7.2", "eslint-visitor-keys": "^3.4.1" } }, @@ -31057,11 +28991,6 @@ "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" - }, - "dependencies": { - "@babel/parser": { - "version": "7.22.10" - } } }, "@vue/compiler-dom": { @@ -31086,14 +29015,8 @@ "source-map-js": "^1.0.2" }, "dependencies": { - "@babel/parser": { - "version": "7.22.10" - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15" - }, "magic-string": { - "version": "0.30.2", + "version": "0.30.3", "requires": { "@jridgewell/sourcemap-codec": "^1.4.15" } @@ -31117,14 +29040,8 @@ "magic-string": "^0.30.0" }, "dependencies": { - "@babel/parser": { - "version": "7.22.10" - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15" - }, "magic-string": { - "version": "0.30.2", + "version": "0.30.3", "requires": { "@jridgewell/sourcemap-codec": "^1.4.15" } @@ -31134,6 +29051,15 @@ "@vue/shared": { "version": "3.3.4" }, + "@waku/browser-tests": { + "version": "file:packages/browser-tests", + "requires": { + "@playwright/test": "^1.37.1", + "@waku/create-app": "^0.1.1-7c24ffa", + "dotenv-flow": "^3.3.0", + "serve": "^14.2.1" + } + }, "@waku/build-utils": { "version": "file:packages/build-utils" }, @@ -31156,31 +29082,56 @@ "chai": "^4.3.7", "cspell": "^7.3.2", "debug": "^4.3.4", - "fast-check": "^3.12.0", + "fast-check": "^3.13.1", "ignore-loader": "^0.1.2", "isomorphic-fetch": "^3.0.0", "it-all": "^3.0.3", "it-length-prefixed": "^9.0.1", "it-pipe": "^3.0.1", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-webpack": "^5.0.0", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", - "p-event": "^5.0.1", + "p-event": "^6.0.0", "process": "^0.11.10", - "puppeteer": "^21.1.1", "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "ts-node": "^10.9.1", - "typescript": "^5.0.4", "uint8arraylist": "^2.4.3", "uuid": "^9.0.0" + } + }, + "@waku/create-app": { + "version": "0.1.1-7c24ffa", + "dev": true, + "requires": { + "commander": "^9.4.1", + "enquirer": "^2.3.6", + "fs-extra": "^11.1.0", + "semver": "^7.3.8", + "validate-npm-package-name": "^5.0.0" }, "dependencies": { - "uuid": { - "version": "9.0.0" + "commander": { + "version": "9.5.0", + "dev": true + }, + "fs-extra": { + "version": "11.1.1", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "dev": true } } }, @@ -31203,15 +29154,9 @@ "debug": "^4.3.4", "dns-query": "^0.11.2", "hi-base32": "^0.5.1", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-webpack": "^5.0.0", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "typescript": "^5.0.4", "uint8arrays": "^4.0.4" } }, @@ -31235,18 +29180,11 @@ "chai": "^4.3.7", "cspell": "^7.3.2", "debug": "^4.3.4", - "js-sha3": "^0.8.0", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-webpack": "^5.0.0", + "js-sha3": "^0.9.2", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", "process": "^0.11.10", - "puppeteer": "^21.1.1", "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "typescript": "^5.0.4", "uint8arrays": "^4.0.4" } }, @@ -31256,9 +29194,8 @@ "@chainsafe/libp2p-gossipsub": "^10.1.0", "@multiformats/multiaddr": "^12.0.0", "cspell": "^7.3.2", - "libp2p": "^0.46.9", - "npm-run-all": "^4.1.5", - "typescript": "^5.0.4" + "libp2p": "^0.46.12", + "npm-run-all": "^4.1.5" } }, "@waku/message-encryption": { @@ -31278,19 +29215,12 @@ "chai": "^4.3.7", "cspell": "^7.3.2", "debug": "^4.3.4", - "fast-check": "^3.12.0", - "js-sha3": "^0.8.0", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-webpack": "^5.0.0", + "fast-check": "^3.13.1", + "js-sha3": "^0.9.2", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", "process": "^0.11.10", - "puppeteer": "^21.1.1", - "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "typescript": "^5.0.4" + "rollup": "^3.29.2" } }, "@waku/message-hash": { @@ -31308,21 +29238,13 @@ "@waku/utils": "0.0.11", "chai": "^4.3.7", "cspell": "^7.3.2", - "fast-check": "^3.12.0", + "fast-check": "^3.13.1", "ignore-loader": "^0.1.2", "isomorphic-fetch": "^3.0.0", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-webpack": "^5.0.0", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", "process": "^0.11.10", - "puppeteer": "^21.1.1", - "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "ts-node": "^10.9.1", - "typescript": "^5.0.4" + "rollup": "^3.29.2" } }, "@waku/peer-exchange": { @@ -31346,8 +29268,6 @@ "it-pipe": "^3.0.1", "npm-run-all": "^4.1.5", "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "typescript": "^5.0.4", "uint8arraylist": "^2.4.3" } }, @@ -31363,7 +29283,6 @@ "protons": "^7.0.2", "protons-runtime": "^5.0.2", "rollup": "^3.29.2", - "typescript": "^5.0.4", "uint8arraylist": "^2.4.3" } }, @@ -31382,11 +29301,8 @@ "@waku/utils": "0.0.11", "chai": "^4.3.7", "debug": "^4.3.4", - "fast-check": "^3.12.0", - "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "ts-node": "^10.9.1", - "typescript": "^5.0.4" + "fast-check": "^3.13.1", + "rollup": "^3.29.2" } }, "@waku/sdk": { @@ -31408,25 +29324,23 @@ "@waku/utils": "0.0.11", "cspell": "^7.3.2", "interface-datastore": "^8.2.5", - "libp2p": "^0.46.9", + "libp2p": "^0.46.12", "npm-run-all": "^4.1.5", - "rollup": "^3.29.2", - "typescript": "^5.0.4" + "rollup": "^3.29.2" } }, "@waku/tests": { "version": "file:packages/tests", "requires": { "@libp2p/bootstrap": "^9.0.2", - "@libp2p/interface-compliance-tests": "^4.0.5", + "@libp2p/interface-compliance-tests": "^4.1.0", "@libp2p/peer-id": "^3.0.2", "@types/chai": "^4.3.5", "@types/dockerode": "^3.3.19", + "@types/lodash": "^4.14.199", "@types/mocha": "^10.0.1", "@types/sinon": "^10.0.16", "@types/tail": "^2.2.1", - "@typescript-eslint/eslint-plugin": "^5.57.0", - "@typescript-eslint/parser": "^5.62.0", "@waku/core": "*", "@waku/dns-discovery": "*", "@waku/enr": "*", @@ -31443,130 +29357,15 @@ "debug": "^4.3.4", "dockerode": "^3.3.5", "interface-datastore": "^8.2.5", - "libp2p": "^0.46.9", + "libp2p": "^0.46.12", + "lodash": "^4.17.21", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", - "p-retry": "^6.0.0", + "p-retry": "^6.1.0", "p-timeout": "^6.1.0", "portfinder": "^1.0.32", - "sinon": "^15.2.0", - "tail": "^2.2.6", - "typescript": "^5.0.4" - }, - "dependencies": { - "@types/retry": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", - "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.62.0", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.62.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.62.0", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.62.0", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.62.0", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "array-union": { - "version": "2.1.0", - "dev": true - }, - "globby": { - "version": "11.1.0", - "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" - } - }, - "p-retry": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.0.0.tgz", - "integrity": "sha512-6NuuXu8Upembd4sNdo4PRbs+M6aHgBTrFE6lkH0YKjVzne3cDW4gkncB98ty/bkMxLxLVNeD5bX9FyWjM7WZ+A==", - "requires": { - "@types/retry": "0.12.2", - "retry": "^0.13.1" - } - } + "sinon": "^16.0.0", + "tail": "^2.2.6" } }, "@waku/utils": { @@ -31576,136 +29375,128 @@ "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.1.0", "@waku/build-utils": "*", - "@waku/interfaces": "0.0.17", + "@waku/interfaces": "0.0.18", + "chai": "^4.3.8", "cspell": "^7.3.2", "debug": "^4.3.4", "npm-run-all": "^4.1.5", "rollup": "^3.29.2", - "typescript": "^5.0.4", "uint8arrays": "^4.0.4" - }, - "dependencies": { - "@waku/interfaces": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.17.tgz", - "integrity": "sha512-/3HrMhpjMwpArm73L05Q7xLPKFeGjvpDlrFq4lqrXjKa8J2VUmiZh6fD9LdYP1ZvhPdzrCRAL+o7+Lb9kt4fvQ==", - "dev": true - } } }, "@webassemblyjs/ast": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", + "version": "1.11.6", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.11.1", + "version": "1.11.6", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.11.1", + "version": "1.11.6", "dev": true }, "@webassemblyjs/helper-numbers": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", + "version": "1.11.6", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" } }, "@webassemblyjs/ieee754": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.11.1", + "version": "1.11.6", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" } }, "@webassemblyjs/wasm-gen": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "@webassemblyjs/wasm-opt": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" } }, "@webassemblyjs/wasm-parser": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "@webassemblyjs/wast-printer": { - "version": "1.11.1", + "version": "1.11.6", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" } }, @@ -31720,16 +29511,15 @@ "@yarnpkg/lockfile": { "version": "1.1.0" }, + "@zeit/schemas": { + "version": "2.29.0", + "dev": true + }, "abortable-iterator": { "version": "5.0.1", "requires": { "get-iterator": "^2.0.0", "it-stream-types": "^2.0.1" - }, - "dependencies": { - "it-stream-types": { - "version": "2.0.1" - } } }, "accepts": { @@ -31744,7 +29534,7 @@ "version": "8.10.0" }, "acorn-import-assertions": { - "version": "1.8.0", + "version": "1.9.0", "dev": true, "requires": {} }, @@ -31762,7 +29552,7 @@ "version": "8.2.0" }, "aegir": { - "version": "40.0.11", + "version": "40.0.13", "requires": { "@electron/get": "^2.0.0", "@polka/send-type": "^0.5.2", @@ -31802,7 +29592,7 @@ "eslint-plugin-jsdoc": "^46.4.3", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.1.1", - "execa": "^7.0.0", + "execa": "^8.0.1", "extract-zip": "^2.0.1", "fs-extra": "^11.1.0", "gh-pages": "^6.0.0", @@ -31829,7 +29619,7 @@ "npm-package-json-lint": "^7.0.0", "nyc": "^15.1.0", "p-map": "^6.0.0", - "p-retry": "^5.1.2", + "p-retry": "^6.0.0", "pascalcase": "^2.0.0", "path": "^0.12.7", "playwright-test": "^12.1.1", @@ -31847,7 +29637,7 @@ "strip-bom": "^5.0.0", "strip-json-comments": "^5.0.0", "tempy": "^3.0.0", - "typedoc": "^0.24.8", + "typedoc": "^0.25.0", "typedoc-plugin-mdn-links": "^3.0.3", "typedoc-plugin-missing-exports": "^2.0.0", "typescript": "^5.1.6", @@ -31860,9 +29650,6 @@ "yargs-parser": "^21.1.1" }, "dependencies": { - "@types/node": { - "version": "20.5.0" - }, "@typescript-eslint/eslint-plugin": { "version": "5.62.0", "requires": { @@ -31919,9 +29706,6 @@ "tsutils": "^3.21.0" }, "dependencies": { - "array-union": { - "version": "2.1.0" - }, "globby": { "version": "11.1.0", "requires": { @@ -31968,14 +29752,31 @@ "ieee754": "^1.2.1" } }, - "commander": { - "version": "11.0.0" + "diff": { + "version": "5.1.0" }, - "find-up": { - "version": "6.3.0", + "eslint-scope": { + "version": "5.1.1", "requires": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0" + }, + "execa": { + "version": "8.0.1", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" } }, "foreground-child": { @@ -31993,6 +29794,9 @@ "universalify": "^2.0.0" } }, + "get-stream": { + "version": "8.0.1" + }, "gh-pages": { "version": "6.0.0", "requires": { @@ -32005,6 +29809,30 @@ "globby": "^6.1.0" }, "dependencies": { + "array-union": { + "version": "1.0.2", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "brace-expansion": { + "version": "1.1.11", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "globby": { "version": "6.1.0", "requires": { @@ -32014,9 +29842,25 @@ "pify": "^2.0.0", "pinkie-promise": "^2.0.0" } + }, + "minimatch": { + "version": "3.1.2", + "requires": { + "brace-expansion": "^1.1.7" + } } } }, + "glob": { + "version": "10.3.5", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + } + }, "globby": { "version": "13.2.2", "requires": { @@ -32032,6 +29876,9 @@ } } }, + "human-signals": { + "version": "5.0.0" + }, "jsonfile": { "version": "6.1.0", "requires": { @@ -32039,12 +29886,6 @@ "universalify": "^2.0.0" } }, - "locate-path": { - "version": "7.2.0", - "requires": { - "p-locate": "^6.0.0" - } - }, "minimatch": { "version": "9.0.3", "requires": { @@ -32054,80 +29895,26 @@ "minipass": { "version": "7.0.3" }, - "p-limit": { - "version": "4.0.0", - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "p-locate": { - "version": "6.0.0", - "requires": { - "p-limit": "^4.0.0" - } - }, - "p-map": { - "version": "6.0.0" - }, - "path-exists": { - "version": "5.0.0" - }, - "read-pkg-up": { - "version": "10.0.0", - "requires": { - "find-up": "^6.3.0", - "read-pkg": "^8.0.0", - "type-fest": "^3.12.0" - } + "pify": { + "version": "2.3.0" }, "rimraf": { "version": "5.0.1", "requires": { "glob": "^10.2.5" - }, - "dependencies": { - "glob": { - "version": "10.3.3", - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - } - } } }, "signal-exit": { "version": "4.1.0" }, + "strip-bom": { + "version": "5.0.0" + }, "strip-json-comments": { "version": "5.0.1" }, - "type-fest": { - "version": "3.13.1" - }, - "typedoc": { - "version": "0.24.8", - "requires": { - "lunr": "^2.3.9", - "marked": "^4.3.0", - "minimatch": "^9.0.0", - "shiki": "^0.14.1" - } - }, - "typedoc-plugin-missing-exports": { - "version": "2.0.1", - "requires": {} - }, - "typescript": { - "version": "5.1.6" - }, "universalify": { "version": "2.0.0" - }, - "yocto-queue": { - "version": "1.0.0" } } }, @@ -32194,21 +29981,34 @@ } } }, + "ansi-colors": { + "version": "4.1.3", + "dev": true + }, "ansi-escapes": { - "version": "4.3.2", + "version": "5.0.0", "dev": true, "requires": { - "type-fest": "^0.21.3" + "type-fest": "^1.0.2" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "dev": true + } } }, "ansi-regex": { "version": "6.0.1" }, "ansi-sequence-parser": { - "version": "1.1.0" + "version": "1.1.1" }, "ansi-styles": { - "version": "6.2.1" + "version": "3.2.1", + "requires": { + "color-convert": "^1.9.0" + } }, "ansicolors": { "version": "0.3.2" @@ -32235,6 +30035,10 @@ "default-require-extensions": "^3.0.0" } }, + "arch": { + "version": "2.2.0", + "dev": true + }, "archy": { "version": "1.0.0" }, @@ -32264,48 +30068,65 @@ "version": "1.0.0" }, "array-includes": { - "version": "3.1.6", + "version": "3.1.7", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" } }, "array-timsort": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", - "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", "dev": true }, "array-union": { - "version": "1.0.2", - "requires": { - "array-uniq": "^1.0.1" - } + "version": "2.1.0" }, "array-uniq": { "version": "1.0.3" }, - "array.prototype.flat": { - "version": "1.3.1", + "array.prototype.findlastindex": { + "version": "1.2.3", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "array.prototype.flat": { + "version": "1.3.2", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" } }, "array.prototype.flatmap": { - "version": "1.3.1", + "version": "1.3.2", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" } }, + "arraybuffer.prototype.slice": { + "version": "1.0.2", + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + } + }, "arrify": { "version": "1.0.1" }, @@ -32316,12 +30137,13 @@ } }, "assert": { - "version": "2.0.0", + "version": "2.1.0", "requires": { - "es6-object-assign": "^1.1.0", - "is-nan": "^1.2.1", - "object-is": "^1.0.1", - "util": "^0.12.0" + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" }, "dependencies": { "util": { @@ -32339,17 +30161,6 @@ "assertion-error": { "version": "1.1.0" }, - "ast-types": { - "version": "0.13.4", - "dev": true, - "requires": { - "tslib": "^2.0.1" - } - }, - "astral-regex": { - "version": "2.0.0", - "dev": true - }, "async": { "version": "3.2.4" }, @@ -32359,10 +30170,6 @@ "available-typed-arrays": { "version": "1.0.5" }, - "b4a": { - "version": "1.6.4", - "dev": true - }, "babel-plugin-polyfill-corejs2": { "version": "0.4.5", "requires": { @@ -32402,10 +30209,6 @@ "version": "2.0.0", "dev": true }, - "basic-ftp": { - "version": "5.0.3", - "dev": true - }, "bcrypt-pbkdf": { "version": "1.0.2", "requires": { @@ -32480,16 +30283,16 @@ "version": "2.19.5" }, "boxen": { - "version": "7.1.1", + "version": "7.0.0", "requires": { "ansi-align": "^3.0.1", - "camelcase": "^7.0.1", - "chalk": "^5.2.0", + "camelcase": "^7.0.0", + "chalk": "^5.0.1", "cli-boxes": "^3.0.0", "string-width": "^5.1.2", "type-fest": "^2.13.0", "widest-line": "^4.0.1", - "wrap-ansi": "^8.1.0" + "wrap-ansi": "^8.0.1" }, "dependencies": { "camelcase": { @@ -32497,14 +30300,6 @@ }, "type-fest": { "version": "2.19.0" - }, - "wrap-ansi": { - "version": "8.1.0", - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } } } }, @@ -32532,12 +30327,12 @@ "version": "1.3.1" }, "browserslist": { - "version": "4.21.10", + "version": "4.21.11", "requires": { - "caniuse-lite": "^1.0.30001517", - "electron-to-chromium": "^1.4.477", + "caniuse-lite": "^1.0.30001538", + "electron-to-chromium": "^1.4.526", "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.11" + "update-browserslist-db": "^1.0.13" } }, "buffer": { @@ -32554,7 +30349,7 @@ "version": "1.1.2" }, "buildcheck": { - "version": "0.0.3", + "version": "0.0.6", "optional": true }, "builtin-modules": { @@ -32579,12 +30374,6 @@ "streamsearch": "^1.1.0" } }, - "byte-access": { - "version": "1.0.1", - "requires": { - "uint8arraylist": "^2.0.0" - } - }, "bytes": { "version": "3.1.2" }, @@ -32610,68 +30399,6 @@ "v8-to-istanbul": "^9.0.0", "yargs": "^17.7.2", "yargs-parser": "^21.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1" - }, - "emoji-regex": { - "version": "8.0.0" - }, - "find-up": { - "version": "5.0.0", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0" - }, - "locate-path": { - "version": "6.0.0", - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "requires": { - "p-limit": "^3.0.2" - } - }, - "string-width": { - "version": "4.2.3", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "yargs": { - "version": "17.7.2", - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - } } }, "cacheable-lookup": { @@ -32716,6 +30443,9 @@ "get-intrinsic": "^1.0.2" } }, + "callsite": { + "version": "1.0.0" + }, "callsites": { "version": "3.1.0" }, @@ -32739,7 +30469,7 @@ } }, "caniuse-lite": { - "version": "1.0.30001521" + "version": "1.0.30001538" }, "cardinal": { "version": "2.1.1", @@ -32759,7 +30489,9 @@ "version": "2.0.1" }, "chai": { - "version": "4.3.7", + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.8.tgz", + "integrity": "sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==", "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", @@ -32772,8 +30504,6 @@ }, "chai-as-promised": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "requires": { "check-error": "^1.0.2" } @@ -32793,7 +30523,7 @@ "version": "1.6.0" }, "chalk": { - "version": "5.2.0" + "version": "5.3.0" }, "chalk-template": { "version": "1.1.0", @@ -32819,6 +30549,14 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "requires": { + "is-glob": "^4.0.1" + } + } } }, "chownr": { @@ -32828,23 +30566,14 @@ "version": "1.0.3", "dev": true }, - "chromium-bidi": { - "version": "0.4.22", - "dev": true, - "requires": { - "mitt": "3.0.1" - } - }, "ci-info": { - "version": "2.0.0" + "version": "3.8.0" }, "clean-stack": { "version": "2.2.0" }, "clear-module": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/clear-module/-/clear-module-4.1.2.tgz", - "integrity": "sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==", "dev": true, "requires": { "parent-module": "^2.0.0", @@ -32855,13 +30584,13 @@ "version": "3.0.0" }, "cli-cursor": { - "version": "3.1.0", + "version": "4.0.0", "requires": { - "restore-cursor": "^3.1.0" + "restore-cursor": "^4.0.0" } }, "cli-spinners": { - "version": "2.9.0" + "version": "2.9.1" }, "cli-table3": { "version": "0.6.3", @@ -32903,6 +30632,62 @@ "string-width": "^5.0.0" } }, + "clipboardy": { + "version": "3.0.0", + "dev": true, + "requires": { + "arch": "^2.2.0", + "execa": "^5.1.1", + "is-wsl": "^2.2.0" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "human-signals": { + "version": "2.1.0", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "dev": true + } + } + }, "cliui": { "version": "8.0.1", "requires": { @@ -32914,6 +30699,21 @@ "ansi-regex": { "version": "5.0.1" }, + "ansi-styles": { + "version": "4.3.0", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, "emoji-regex": { "version": "8.0.0" }, @@ -32933,6 +30733,14 @@ "requires": { "ansi-regex": "^5.0.1" } + }, + "wrap-ansi": { + "version": "7.0.0", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } } } }, @@ -32949,29 +30757,26 @@ "version": "1.1.0" }, "color-convert": { - "version": "2.0.1", + "version": "1.9.3", "requires": { - "color-name": "~1.1.4" + "color-name": "1.1.3" } }, "color-name": { - "version": "1.1.4" + "version": "1.1.3" }, "colorette": { - "version": "2.0.19", + "version": "2.0.20", "dev": true }, "colors": { "version": "1.0.3" }, "commander": { - "version": "9.5.0", - "dev": true + "version": "11.0.0" }, "comment-json": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", "dev": true, "requires": { "array-timsort": "^1.0.3", @@ -32992,6 +30797,55 @@ "requires": { "array-ify": "^1.0.0", "dot-prop": "^5.1.0" + }, + "dependencies": { + "dot-prop": { + "version": "5.3.0", + "requires": { + "is-obj": "^2.0.0" + } + } + } + }, + "compressible": { + "version": "2.0.18", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "dev": true + }, + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + } } }, "concat-map": { @@ -33002,6 +30856,11 @@ "requires": { "ini": "^1.3.4", "proto-list": "~1.2.1" + }, + "dependencies": { + "ini": { + "version": "1.3.8" + } } }, "configstore": { @@ -33012,14 +30871,6 @@ "unique-string": "^3.0.0", "write-file-atomic": "^3.0.3", "xdg-basedir": "^5.0.1" - }, - "dependencies": { - "dot-prop": { - "version": "6.0.1", - "requires": { - "is-obj": "^2.0.0" - } - } } }, "connect": { @@ -33045,6 +30896,10 @@ } } }, + "content-disposition": { + "version": "0.5.2", + "dev": true + }, "content-type": { "version": "1.0.5", "dev": true @@ -33081,12 +30936,17 @@ } }, "conventional-commits-parser": { - "version": "4.0.0", + "version": "5.0.0", "requires": { - "is-text-path": "^1.0.1", + "is-text-path": "^2.0.0", "JSONStream": "^1.3.5", - "meow": "^8.1.2", - "split2": "^3.2.2" + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "dependencies": { + "meow": { + "version": "12.1.1" + } } }, "convert-source-map": { @@ -33097,9 +30957,9 @@ "dev": true }, "core-js-compat": { - "version": "3.32.0", + "version": "3.32.2", "requires": { - "browserslist": "^4.21.9" + "browserslist": "^4.21.10" } }, "core-util-is": { @@ -33113,7 +30973,7 @@ } }, "cosmiconfig": { - "version": "8.2.0", + "version": "8.0.0", "requires": { "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -33127,14 +30987,29 @@ "graceful-fs": "^4.2.10", "nested-error-stacks": "^2.1.1", "p-event": "^5.0.1" + }, + "dependencies": { + "p-event": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", + "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", + "requires": { + "p-timeout": "^5.0.2" + } + }, + "p-timeout": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==" + } } }, "cpu-features": { - "version": "0.0.4", + "version": "0.0.9", "optional": true, "requires": { - "buildcheck": "0.0.3", - "nan": "^2.15.0" + "buildcheck": "~0.0.6", + "nan": "^2.17.0" } }, "cpy": { @@ -33163,9 +31038,6 @@ "slash": "^4.0.0" } }, - "p-map": { - "version": "6.0.0" - }, "slash": { "version": "4.0.0" } @@ -33179,6 +31051,15 @@ "dev": true, "requires": { "node-fetch": "2.6.7" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.7", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + } } }, "cross-spawn": { @@ -33201,204 +31082,107 @@ } }, "cspell": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-7.3.2.tgz", - "integrity": "sha512-/YY1C0CYBP+GueFon1BUgcDGc1YXDCyAIjuebvRygjt1cXwCklQVF5bZIGCrimgjzTrY+wx0ePgzuVQ9RyJnOQ==", + "version": "7.3.6", "dev": true, "requires": { - "@cspell/cspell-json-reporter": "7.3.2", - "@cspell/cspell-pipe": "7.3.2", - "@cspell/cspell-types": "7.3.2", - "@cspell/dynamic-import": "7.3.2", + "@cspell/cspell-json-reporter": "7.3.6", + "@cspell/cspell-pipe": "7.3.6", + "@cspell/cspell-types": "7.3.6", + "@cspell/dynamic-import": "7.3.6", "chalk": "^5.3.0", "chalk-template": "^1.1.0", "commander": "^11.0.0", - "cspell-gitignore": "7.3.2", - "cspell-glob": "7.3.2", - "cspell-io": "7.3.2", - "cspell-lib": "7.3.2", + "cspell-gitignore": "7.3.6", + "cspell-glob": "7.3.6", + "cspell-io": "7.3.6", + "cspell-lib": "7.3.6", "fast-glob": "^3.3.1", "fast-json-stable-stringify": "^2.1.0", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^7.0.0", "get-stdin": "^9.0.0", "semver": "^7.5.4", "strip-ansi": "^7.1.0", "vscode-uri": "^3.0.7" - }, - "dependencies": { - "chalk": { - "version": "5.3.0", - "dev": true - }, - "commander": { - "version": "11.0.0", - "dev": true - }, - "semver": { - "version": "7.5.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "cspell-dictionary": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-7.3.2.tgz", - "integrity": "sha512-hL8fOZ7zTkUuE6jq2CUObxUp0fSLsNQyMo+HAkpg0w6ssHvbgnP6HP8kyEN641L/F0X/Ow2vo3CaRBadvyyzCA==", + "version": "7.3.6", "dev": true, "requires": { - "@cspell/cspell-pipe": "7.3.2", - "@cspell/cspell-types": "7.3.2", - "cspell-trie-lib": "7.3.2", + "@cspell/cspell-pipe": "7.3.6", + "@cspell/cspell-types": "7.3.6", + "cspell-trie-lib": "7.3.6", "fast-equals": "^4.0.3", - "gensequence": "^5.0.2" + "gensequence": "^6.0.0" }, "dependencies": { "fast-equals": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", - "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", "dev": true } } }, "cspell-gitignore": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-7.3.2.tgz", - "integrity": "sha512-NWxxFcf4wwKbRInkZK/p/BrPR2ElCpcB8DLcrBxRkiI4uX7yCX8v5QjI8ZpTyuaUTl9aFqJFYtj9Q7GqkBnPzA==", + "version": "7.3.6", "dev": true, "requires": { - "cspell-glob": "7.3.2", + "cspell-glob": "7.3.6", "find-up": "^5.0.0" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - } } }, "cspell-glob": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-7.3.2.tgz", - "integrity": "sha512-R/YwtBN5ApOTONkBoTOSCKDMmnRRA1fF9prkaFMfE0aT5oC2VF0N7hLCSYjpQM+kYsXeqLDc13vxFBOnHRuc3g==", + "version": "7.3.6", "dev": true, "requires": { "micromatch": "^4.0.5" } }, "cspell-grammar": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-7.3.2.tgz", - "integrity": "sha512-ale40T4M0jHmwQsPjIbpZKzaRxMVy5dnpyvplwj7ExX4sp2Grt1wcqxk2ELS4r4bsaIap+iIfeYYhoXqYq1dQg==", + "version": "7.3.6", "dev": true, "requires": { - "@cspell/cspell-pipe": "7.3.2", - "@cspell/cspell-types": "7.3.2" + "@cspell/cspell-pipe": "7.3.6", + "@cspell/cspell-types": "7.3.6" } }, "cspell-io": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-7.3.2.tgz", - "integrity": "sha512-nul6K4YUMe1VdxuJDDOMvWUw/hIS2UZkvJLDo5GkAus7YmGSR0knfDueU+hebYszRa0LxjrduuPNcNJE/ZWUFg==", + "version": "7.3.6", "dev": true, "requires": { - "@cspell/cspell-service-bus": "7.3.2", + "@cspell/cspell-service-bus": "7.3.6", "node-fetch": "^2.7.0" - }, - "dependencies": { - "node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - } } }, "cspell-lib": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-7.3.2.tgz", - "integrity": "sha512-cbo0TSL2JnM/GdiutH193aynxdxSnxBR1DYJ1/8ycIWDU0p4AHO0EZ+5L5MkBFwpM20OicuXvLrAem9WjYVDBQ==", + "version": "7.3.6", "dev": true, "requires": { - "@cspell/cspell-bundled-dicts": "7.3.2", - "@cspell/cspell-pipe": "7.3.2", - "@cspell/cspell-resolver": "7.3.2", - "@cspell/cspell-types": "7.3.2", - "@cspell/dynamic-import": "7.3.2", - "@cspell/strong-weak-map": "7.3.2", + "@cspell/cspell-bundled-dicts": "7.3.6", + "@cspell/cspell-pipe": "7.3.6", + "@cspell/cspell-resolver": "7.3.6", + "@cspell/cspell-types": "7.3.6", + "@cspell/dynamic-import": "7.3.6", + "@cspell/strong-weak-map": "7.3.6", "clear-module": "^4.1.2", "comment-json": "^4.2.3", "configstore": "^6.0.0", "cosmiconfig": "8.0.0", - "cspell-dictionary": "7.3.2", - "cspell-glob": "7.3.2", - "cspell-grammar": "7.3.2", - "cspell-io": "7.3.2", - "cspell-trie-lib": "7.3.2", + "cspell-dictionary": "7.3.6", + "cspell-glob": "7.3.6", + "cspell-grammar": "7.3.6", + "cspell-io": "7.3.6", + "cspell-trie-lib": "7.3.6", "fast-equals": "^5.0.1", "find-up": "^6.3.0", - "gensequence": "^5.0.2", + "gensequence": "^6.0.0", "import-fresh": "^3.3.0", "resolve-from": "^5.0.0", "vscode-languageserver-textdocument": "^1.0.8", "vscode-uri": "^3.0.7" }, "dependencies": { - "cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "requires": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - } - }, "find-up": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, "requires": { "locate-path": "^7.1.0", @@ -33407,8 +31191,6 @@ }, "locate-path": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, "requires": { "p-locate": "^6.0.0" @@ -33416,8 +31198,6 @@ }, "p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, "requires": { "yocto-queue": "^1.0.0" @@ -33425,8 +31205,6 @@ }, "p-locate": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, "requires": { "p-limit": "^4.0.0" @@ -33434,27 +31212,21 @@ }, "path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true }, "yocto-queue": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true } } }, "cspell-trie-lib": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-7.3.2.tgz", - "integrity": "sha512-IXNCWBw4UDZuY6MB+j7YNdcDpTdcfElsLkwTV8fEmNfUeClJacn2mQicQ/LKZJLvOc1TNbcSPWSCe3kQA+uxNw==", + "version": "7.3.6", "dev": true, "requires": { - "@cspell/cspell-pipe": "7.3.2", - "@cspell/cspell-types": "7.3.2", - "gensequence": "^5.0.2" + "@cspell/cspell-pipe": "7.3.6", + "@cspell/cspell-types": "7.3.6", + "gensequence": "^6.0.0" } }, "custom-event": { @@ -33464,14 +31236,8 @@ "cycle": { "version": "1.0.3" }, - "data-uri-to-buffer": { - "version": "5.0.1", - "dev": true - }, "datastore-core": { "version": "9.2.3", - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-9.2.3.tgz", - "integrity": "sha512-jcvrVDt+jp7lUp2WhMXXgX/hoi3VcJebN+z/ZXbIRKOVfNOF4bl8cvr7sQ1y9qITikgC2coXFYd79Wzt/n13ZQ==", "requires": { "@libp2p/logger": "^3.0.0", "err-code": "^3.0.1", @@ -33486,27 +31252,6 @@ "it-sort": "^3.0.1", "it-take": "^3.0.1", "uint8arrays": "^4.0.2" - }, - "dependencies": { - "@libp2p/logger": { - "version": "3.0.2", - "requires": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "it-filter": { - "version": "3.0.2", - "requires": { - "it-peekable": "^3.0.0" - } - }, - "multiformats": { - "version": "12.0.1" - } } }, "date-fns": { @@ -33570,7 +31315,7 @@ "version": "0.1.4" }, "deepmerge": { - "version": "4.3.0", + "version": "4.3.1", "dev": true }, "deepmerge-ts": { @@ -33596,49 +31341,9 @@ } }, "default-gateway": { - "version": "6.0.3", + "version": "7.2.2", "requires": { - "execa": "^5.0.0" - }, - "dependencies": { - "execa": { - "version": "5.1.1", - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "human-signals": { - "version": "2.1.0" - }, - "is-stream": { - "version": "2.0.1" - }, - "mimic-fn": { - "version": "2.1.0" - }, - "npm-run-path": { - "version": "4.0.1", - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.2", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "strip-final-newline": { - "version": "2.0.0" - } + "execa": "^7.1.1" } }, "default-require-extensions": { @@ -33661,42 +31366,26 @@ "defer-to-connect": { "version": "2.0.1" }, + "define-data-property": { + "version": "1.1.0", + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, "define-lazy-prop": { "version": "3.0.0", "dev": true }, "define-properties": { - "version": "1.2.0", + "version": "1.2.1", "requires": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, - "degenerator": { - "version": "5.0.1", - "dev": true, - "requires": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "dependencies": { - "escodegen": { - "version": "2.1.0", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "source-map": "~0.6.1" - } - }, - "estraverse": { - "version": "5.3.0", - "dev": true - } - } - }, "del": { "version": "6.1.1", "requires": { @@ -33710,40 +31399,32 @@ "slash": "^3.0.0" }, "dependencies": { - "array-union": { - "version": "2.1.0" - }, - "globby": { - "version": "11.1.0", + "p-map": { + "version": "4.0.0", "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" + "aggregate-error": "^3.0.0" } } } }, "delay": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-6.0.0.tgz", - "integrity": "sha512-2NJozoOHQ4NuZuVIr5CWd0iiLVIRSDepakaovIN+9eIDHEhdCAEvSy2cuf1DCrPPQLvHmbqTHODlhHg8UCy4zw==" + "version": "6.0.0" }, "denque": { "version": "2.1.0" }, "depcheck": { - "version": "1.4.3", + "version": "1.4.6", "requires": { - "@babel/parser": "7.16.4", - "@babel/traverse": "^7.12.5", + "@babel/parser": "7.22.5", + "@babel/traverse": "7.22.5", "@vue/compiler-sfc": "^3.0.5", + "callsite": "^1.0.0", "camelcase": "^6.2.0", "cosmiconfig": "^7.0.0", "debug": "^4.2.0", "deps-regex": "^0.1.4", + "findup-sync": "^5.0.0", "ignore": "^5.1.8", "is-core-module": "^2.4.0", "js-yaml": "^3.14.0", @@ -33752,12 +31433,10 @@ "minimatch": "^3.0.4", "multimatch": "^5.0.0", "please-upgrade-node": "^3.2.0", - "query-ast": "^1.0.3", "readdirp": "^3.5.0", "require-package-name": "^2.0.1", "resolve": "^1.18.1", - "sass": "^1.29.0", - "scss-parser": "^1.0.4", + "resolve-from": "^5.0.0", "semver": "^7.3.2", "yargs": "^16.1.0" }, @@ -33765,6 +31444,12 @@ "ansi-regex": { "version": "5.0.1" }, + "ansi-styles": { + "version": "4.3.0", + "requires": { + "color-convert": "^2.0.1" + } + }, "argparse": { "version": "1.0.10", "requires": { @@ -33779,6 +31464,15 @@ "wrap-ansi": "^7.0.0" } }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, "cosmiconfig": { "version": "7.1.0", "requires": { @@ -33802,6 +31496,9 @@ "esprima": "^4.0.0" } }, + "json5": { + "version": "2.2.3" + }, "sprintf-js": { "version": "1.0.3" }, @@ -33819,6 +31516,14 @@ "ansi-regex": "^5.0.1" } }, + "wrap-ansi": { + "version": "7.0.0", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, "yaml": { "version": "1.10.2" }, @@ -33856,6 +31561,9 @@ "version": "1.2.0", "dev": true }, + "detect-file": { + "version": "1.0.0" + }, "detect-node": { "version": "2.1.0", "optional": true @@ -33875,7 +31583,7 @@ "dev": true }, "diff": { - "version": "5.1.0" + "version": "4.0.2" }, "dir-glob": { "version": "3.0.1", @@ -33884,7 +31592,7 @@ } }, "dns-over-http-resolver": { - "version": "2.1.1", + "version": "2.1.2", "requires": { "debug": "^4.3.1", "native-fetch": "^4.0.2", @@ -33947,17 +31655,31 @@ } }, "dot-prop": { - "version": "5.3.0", + "version": "6.0.1", "requires": { "is-obj": "^2.0.0" } }, + "dotenv": { + "version": "8.6.0", + "dev": true + }, + "dotenv-flow": { + "version": "3.3.0", + "dev": true, + "requires": { + "dotenv": "^8.6.0" + } + }, "duplexer2": { "version": "0.1.4", "requires": { "readable-stream": "^2.0.2" }, "dependencies": { + "isarray": { + "version": "1.0.0" + }, "readable-stream": { "version": "2.3.8", "requires": { @@ -34035,6 +31757,15 @@ "wrap-ansi": "^7.0.0" } }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, "debug": { "version": "4.3.3", "requires": { @@ -34047,16 +31778,6 @@ "emoji-regex": { "version": "8.0.0" }, - "escape-string-regexp": { - "version": "4.0.0" - }, - "find-up": { - "version": "5.0.0", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, "fs-extra": { "version": "10.1.0", "requires": { @@ -34089,12 +31810,6 @@ "universalify": "^2.0.0" } }, - "locate-path": { - "version": "6.0.0", - "requires": { - "p-locate": "^5.0.0" - } - }, "log-symbols": { "version": "4.1.0", "requires": { @@ -34145,18 +31860,6 @@ "nanoid": { "version": "3.3.1" }, - "p-limit": { - "version": "3.1.0", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "requires": { - "p-limit": "^3.0.2" - } - }, "serialize-javascript": { "version": "6.0.0", "requires": { @@ -34189,6 +31892,14 @@ "workerpool": { "version": "6.2.0" }, + "wrap-ansi": { + "version": "7.0.0", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, "yargs": { "version": "16.2.0", "requires": { @@ -34207,7 +31918,7 @@ } }, "electron-to-chromium": { - "version": "1.4.492" + "version": "1.4.527" }, "electron-window": { "version": "0.8.1", @@ -34235,7 +31946,7 @@ } }, "engine.io": { - "version": "6.4.1", + "version": "6.5.2", "dev": true, "requires": { "@types/cookie": "^0.4.1", @@ -34246,7 +31957,7 @@ "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", + "engine.io-parser": "~5.2.1", "ws": "~8.11.0" }, "dependencies": { @@ -34258,17 +31969,38 @@ } }, "engine.io-parser": { - "version": "5.0.6", + "version": "5.2.1", "dev": true }, "enhanced-resolve": { - "version": "5.12.0", + "version": "5.15.0", "dev": true, "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, + "enquirer": { + "version": "2.4.1", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "ent": { "version": "2.2.0", "dev": true @@ -34297,15 +32029,16 @@ } }, "es-abstract": { - "version": "1.21.2", + "version": "1.22.2", "requires": { "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", @@ -34320,23 +32053,27 @@ "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", "object-inspect": "^1.12.3", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.11" } }, "es-module-lexer": { - "version": "0.9.3", + "version": "1.3.1", "dev": true }, "es-set-tostringtag": { @@ -34364,34 +32101,31 @@ "es6-error": { "version": "4.1.1" }, - "es6-object-assign": { - "version": "1.1.0" - }, "esbuild": { - "version": "0.19.2", + "version": "0.19.3", "requires": { - "@esbuild/android-arm": "0.19.2", - "@esbuild/android-arm64": "0.19.2", - "@esbuild/android-x64": "0.19.2", - "@esbuild/darwin-arm64": "0.19.2", - "@esbuild/darwin-x64": "0.19.2", - "@esbuild/freebsd-arm64": "0.19.2", - "@esbuild/freebsd-x64": "0.19.2", - "@esbuild/linux-arm": "0.19.2", - "@esbuild/linux-arm64": "0.19.2", - "@esbuild/linux-ia32": "0.19.2", - "@esbuild/linux-loong64": "0.19.2", - "@esbuild/linux-mips64el": "0.19.2", - "@esbuild/linux-ppc64": "0.19.2", - "@esbuild/linux-riscv64": "0.19.2", - "@esbuild/linux-s390x": "0.19.2", - "@esbuild/linux-x64": "0.19.2", - "@esbuild/netbsd-x64": "0.19.2", - "@esbuild/openbsd-x64": "0.19.2", - "@esbuild/sunos-x64": "0.19.2", - "@esbuild/win32-arm64": "0.19.2", - "@esbuild/win32-ia32": "0.19.2", - "@esbuild/win32-x64": "0.19.2" + "@esbuild/android-arm": "0.19.3", + "@esbuild/android-arm64": "0.19.3", + "@esbuild/android-x64": "0.19.3", + "@esbuild/darwin-arm64": "0.19.3", + "@esbuild/darwin-x64": "0.19.3", + "@esbuild/freebsd-arm64": "0.19.3", + "@esbuild/freebsd-x64": "0.19.3", + "@esbuild/linux-arm": "0.19.3", + "@esbuild/linux-arm64": "0.19.3", + "@esbuild/linux-ia32": "0.19.3", + "@esbuild/linux-loong64": "0.19.3", + "@esbuild/linux-mips64el": "0.19.3", + "@esbuild/linux-ppc64": "0.19.3", + "@esbuild/linux-riscv64": "0.19.3", + "@esbuild/linux-s390x": "0.19.3", + "@esbuild/linux-x64": "0.19.3", + "@esbuild/netbsd-x64": "0.19.3", + "@esbuild/openbsd-x64": "0.19.3", + "@esbuild/sunos-x64": "0.19.3", + "@esbuild/win32-arm64": "0.19.3", + "@esbuild/win32-ia32": "0.19.3", + "@esbuild/win32-x64": "0.19.3" } }, "esbuild-plugin-wasm": { @@ -34408,7 +32142,7 @@ "dev": true }, "escape-string-regexp": { - "version": "1.0.5" + "version": "4.0.0" }, "escodegen": { "version": "1.14.3", @@ -34421,6 +32155,10 @@ "source-map": "~0.6.1" }, "dependencies": { + "estraverse": { + "version": "4.3.0", + "dev": true + }, "levn": { "version": "0.3.0", "dev": true, @@ -34455,13 +32193,13 @@ } }, "eslint": { - "version": "8.47.0", + "version": "8.49.0", "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "^8.47.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint/js": "8.49.0", + "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.12.4", @@ -34512,48 +32250,19 @@ "supports-color": "^7.1.0" } }, - "escape-string-regexp": { - "version": "4.0.0" - }, - "eslint-scope": { - "version": "7.2.2", + "color-convert": { + "version": "2.0.1", "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "color-name": "~1.1.4" } }, - "estraverse": { - "version": "5.3.0" + "color-name": { + "version": "1.1.4" }, - "find-up": { - "version": "5.0.0", + "file-entry-cache": { + "version": "6.0.1", "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "requires": { - "is-glob": "^4.0.3" - } - }, - "locate-path": { - "version": "6.0.0", - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "requires": { - "p-limit": "^3.0.2" + "flat-cache": "^3.0.4" } }, "strip-ansi": { @@ -34660,9 +32369,6 @@ "eslint-visitor-keys": "^3.3.0" } }, - "array-union": { - "version": "2.1.0" - }, "eslint-config-standard-with-typescript": { "version": "37.0.0", "requires": { @@ -34670,16 +32376,15 @@ "eslint-config-standard": "17.1.0" } }, - "globby": { - "version": "11.1.0", + "eslint-scope": { + "version": "5.1.1", "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" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } + }, + "estraverse": { + "version": "4.3.0" } } }, @@ -34701,11 +32406,11 @@ } }, "eslint-import-resolver-node": { - "version": "0.3.7", + "version": "0.3.9", "requires": { "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" }, "dependencies": { "debug": { @@ -34717,7 +32422,7 @@ } }, "eslint-module-utils": { - "version": "2.7.4", + "version": "2.8.0", "requires": { "debug": "^3.2.7" }, @@ -34751,6 +32456,12 @@ "requires": { "escape-string-regexp": "^1.0.5", "ignore": "^5.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + } } }, "eslint-plugin-etc": { @@ -34774,39 +32485,28 @@ "is-immutable-type": "^2.0.1", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" - }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "dev": true - }, - "semver": { - "version": "7.5.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "eslint-plugin-import": { - "version": "2.27.5", + "version": "2.28.1", "requires": { "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", "array.prototype.flat": "^1.3.1", "array.prototype.flatmap": "^1.3.1", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", + "eslint-module-utils": "^2.8.0", "has": "^1.0.3", - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "dependencies": { "debug": { @@ -34822,12 +32522,12 @@ } }, "semver": { - "version": "6.3.0" + "version": "6.3.1" } } }, "eslint-plugin-jsdoc": { - "version": "46.4.6", + "version": "46.8.2", "requires": { "@es-joy/jsdoccomment": "~0.40.1", "are-docs-informative": "^0.0.2", @@ -34838,40 +32538,21 @@ "is-builtin-module": "^3.2.1", "semver": "^7.5.4", "spdx-expression-parse": "^3.0.1" - }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0" - }, - "semver": { - "version": "7.5.4", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "eslint-plugin-n": { - "version": "16.0.1", + "version": "16.1.0", "peer": true, "requires": { "@eslint-community/eslint-utils": "^4.4.0", "builtins": "^5.0.1", "eslint-plugin-es-x": "^7.1.0", + "get-tsconfig": "^4.7.0", "ignore": "^5.2.4", "is-core-module": "^2.12.1", "minimatch": "^3.1.2", "resolve": "^1.22.2", "semver": "^7.5.3" - }, - "dependencies": { - "semver": { - "version": "7.5.4", - "peer": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "eslint-plugin-no-only-tests": { @@ -34906,10 +32587,10 @@ "requires": {} }, "eslint-scope": { - "version": "5.1.1", + "version": "7.2.2", "requires": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" } }, "eslint-utils": { @@ -34941,22 +32622,12 @@ "version": "1.5.0", "requires": { "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0" - } } }, "esrecurse": { "version": "4.3.0", "requires": { "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0" - } } }, "estimo": { @@ -34968,10 +32639,16 @@ "find-chrome-bin": "0.1.0", "nanoid": "^3.3.2", "puppeteer-core": "^13.5.1" + }, + "dependencies": { + "commander": { + "version": "9.5.0", + "dev": true + } } }, "estraverse": { - "version": "4.3.0" + "version": "5.3.0" }, "estree-walker": { "version": "2.0.2" @@ -34983,7 +32660,7 @@ "version": "2.0.0" }, "eventemitter3": { - "version": "4.0.7" + "version": "5.0.1" }, "events": { "version": "3.3.0" @@ -35002,6 +32679,12 @@ "strip-final-newline": "^3.0.0" } }, + "expand-tilde": { + "version": "2.0.2", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, "extend": { "version": "3.0.2", "dev": true @@ -35027,7 +32710,9 @@ "version": "0.1.8" }, "fast-check": { - "version": "3.12.0", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.13.1.tgz", + "integrity": "sha512-Xp00tFuWd83i8rbG/4wU54qU+yINjQha7bXH2N4ARNTkyOimzHtUBJ5+htpdXk7RMaCOD/j2jxSjEt9u9ZPNeQ==", "requires": { "pure-rand": "^6.0.0" } @@ -35036,17 +32721,11 @@ "version": "3.1.3" }, "fast-diff": { - "version": "1.2.0", + "version": "1.3.0", "dev": true }, "fast-equals": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz", - "integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==", - "dev": true - }, - "fast-fifo": { - "version": "1.3.2", "dev": true }, "fast-glob": { @@ -35057,6 +32736,14 @@ "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "requires": { + "is-glob": "^4.0.1" + } + } } }, "fast-json-stable-stringify": { @@ -35065,6 +32752,19 @@ "fast-levenshtein": { "version": "2.0.6" }, + "fast-url-parser": { + "version": "1.1.3", + "dev": true, + "requires": { + "punycode": "^1.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "dev": true + } + } + }, "fastq": { "version": "1.15.0", "requires": { @@ -35082,12 +32782,18 @@ "requires": { "escape-string-regexp": "^1.0.5", "object-assign": "^4.1.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5" + } } }, "file-entry-cache": { - "version": "6.0.1", + "version": "7.0.0", + "dev": true, "requires": { - "flat-cache": "^3.0.4" + "flat-cache": "^3.1.0" } }, "file-url": { @@ -35156,9 +32862,9 @@ "dev": true }, "find-up": { - "version": "4.1.0", + "version": "5.0.0", "requires": { - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, @@ -35174,21 +32880,31 @@ "micromatch": "^4.0.2" } }, + "findup-sync": { + "version": "5.0.0", + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" + } + }, "flat": { "version": "5.0.2" }, "flat-cache": { - "version": "3.0.4", + "version": "3.1.0", "requires": { - "flatted": "^3.1.0", + "flatted": "^3.2.7", + "keyv": "^4.5.3", "rimraf": "^3.0.2" } }, "flatted": { - "version": "3.2.7" + "version": "3.2.9" }, "follow-redirects": { - "version": "1.15.2", + "version": "1.15.3", "dev": true }, "for-each": { @@ -35217,6 +32933,9 @@ "readable-stream": "^2.0.0" }, "dependencies": { + "isarray": { + "version": "1.0.0" + }, "readable-stream": { "version": "2.3.8", "requires": { @@ -35258,28 +32977,26 @@ "version": "1.0.0" }, "fsevents": { - "version": "2.3.2", + "version": "2.3.3", "optional": true }, "function-bind": { "version": "1.1.1" }, "function.prototype.name": { - "version": "1.1.5", + "version": "1.1.6", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" } }, "functions-have-names": { "version": "1.2.3" }, "gensequence": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-5.0.2.tgz", - "integrity": "sha512-JlKEZnFc6neaeSVlkzBGGgkIoIaSxMgvdamRoPN8r3ozm2r9dusqxeKqYQ7lhzmj2UhFQP8nkyfCaiLQxiLrDA==", + "version": "6.0.0", "dev": true }, "gensync": { @@ -35292,15 +33009,16 @@ "version": "2.0.0" }, "get-intrinsic": { - "version": "1.2.0", + "version": "1.2.1", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" } }, "get-iterator": { - "version": "2.0.0" + "version": "2.0.1" }, "get-package-type": { "version": "0.1.0" @@ -35319,14 +33037,11 @@ "get-intrinsic": "^1.1.1" } }, - "get-uri": { - "version": "6.0.1", - "dev": true, + "get-tsconfig": { + "version": "4.7.2", + "peer": true, "requires": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^5.0.1", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" + "resolve-pkg-maps": "^1.0.0" } }, "gh-pages": { @@ -35342,9 +33057,43 @@ "globby": "^6.1.0" }, "dependencies": { + "array-union": { + "version": "1.0.2", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, "commander": { "version": "2.20.3", "dev": true + }, + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globby": { + "version": "6.1.0", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "dev": true } } }, @@ -35371,20 +33120,36 @@ "version": "2.0.0" }, "glob": { - "version": "7.2.3", + "version": "8.1.0", + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, "glob-parent": { - "version": "5.1.2", + "version": "6.0.2", "requires": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" } }, "glob-to-regexp": { @@ -35407,22 +33172,41 @@ "version": "3.0.1", "requires": { "ini": "2.0.0" + } + }, + "global-modules": { + "version": "1.0.0", + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" }, "dependencies": { "ini": { - "version": "2.0.0" + "version": "1.3.8" + }, + "which": { + "version": "1.3.1", + "requires": { + "isexe": "^2.0.0" + } } } }, "globals": { - "version": "13.21.0", + "version": "13.22.0", "requires": { "type-fest": "^0.20.2" - }, - "dependencies": { - "type-fest": { - "version": "0.20.2" - } } }, "globalthis": { @@ -35432,14 +33216,14 @@ } }, "globby": { - "version": "6.1.0", - "dev": true, + "version": "11.1.0", "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "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" } }, "gopd": { @@ -35465,7 +33249,7 @@ } }, "graceful-fs": { - "version": "4.2.10" + "version": "4.2.11" }, "graphemer": { "version": "1.4.0" @@ -35511,8 +33295,6 @@ }, "has-own-prop": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", - "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", "dev": true }, "has-property-descriptors": { @@ -35557,14 +33339,17 @@ "hi-base32": { "version": "0.5.1" }, + "homedir-polyfill": { + "version": "1.0.3", + "requires": { + "parse-passwd": "^1.0.0" + } + }, "hook-std": { "version": "3.0.0" }, "hosted-git-info": { - "version": "4.1.0", - "requires": { - "lru-cache": "^6.0.0" - } + "version": "2.8.9" }, "html-escaper": { "version": "2.0.2" @@ -35596,6 +33381,12 @@ "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "dev": true + } } }, "http-proxy-agent": { @@ -35629,7 +33420,7 @@ } }, "human-signals": { - "version": "4.3.0" + "version": "4.3.1" }, "husky": { "version": "8.0.3", @@ -35652,9 +33443,6 @@ "version": "0.1.2", "dev": true }, - "immutable": { - "version": "4.3.2" - }, "import-fresh": { "version": "3.3.0", "requires": { @@ -35681,8 +33469,6 @@ }, "import-meta-resolve": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-3.0.0.tgz", - "integrity": "sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==", "dev": true }, "imurmurhash": { @@ -35702,12 +33488,10 @@ "version": "2.0.4" }, "ini": { - "version": "1.3.8" + "version": "2.0.0" }, "interface-datastore": { "version": "8.2.5", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", - "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", "requires": { "interface-store": "^5.0.0", "nanoid": "^4.0.0", @@ -35715,12 +33499,12 @@ }, "dependencies": { "nanoid": { - "version": "4.0.1" + "version": "4.0.2" } } }, "interface-store": { - "version": "5.1.3" + "version": "5.1.4" }, "internal-slot": { "version": "1.0.5", @@ -35737,21 +33521,11 @@ "p-is-promise": "^3.0.0" } }, - "invariant": { - "version": "2.2.4", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "ip": { - "version": "1.1.8", - "dev": true - }, "ip-regex": { "version": "5.0.0" }, "ipaddr.js": { - "version": "2.0.1" + "version": "2.1.0" }, "irregular-plurals": { "version": "3.5.0" @@ -35803,9 +33577,9 @@ "version": "1.2.7" }, "is-ci": { - "version": "2.0.0", + "version": "3.0.1", "requires": { - "ci-info": "^2.0.0" + "ci-info": "^3.2.0" } }, "is-core-module": { @@ -35821,7 +33595,8 @@ } }, "is-docker": { - "version": "2.2.1" + "version": "3.0.0", + "dev": true }, "is-electron": { "version": "2.2.2" @@ -35861,12 +33636,6 @@ "dev": true, "requires": { "is-docker": "^3.0.0" - }, - "dependencies": { - "is-docker": { - "version": "3.0.0", - "dev": true - } } }, "is-installed-globally": { @@ -35880,7 +33649,7 @@ "version": "2.0.0" }, "is-loopback-addr": { - "version": "2.0.1" + "version": "2.0.2" }, "is-module": { "version": "1.0.0", @@ -35896,6 +33665,11 @@ "is-negative-zero": { "version": "2.0.2" }, + "is-network-error": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.0.0.tgz", + "integrity": "sha512-P3fxi10Aji2FZmHTrMPSNFbNC6nnp4U5juPAIjXPHkUNubi4+qK7vvdsaNpAUwXslhYm9oyjEYTxs1xd/+Ph0w==" + }, "is-npm": { "version": "6.0.0" }, @@ -35929,6 +33703,10 @@ "is-plain-object": { "version": "5.0.0" }, + "is-port-reachable": { + "version": "4.0.0", + "dev": true + }, "is-promise": { "version": "2.2.2" }, @@ -35968,19 +33746,15 @@ } }, "is-text-path": { - "version": "1.0.1", + "version": "2.0.0", "requires": { - "text-extensions": "^1.0.0" + "text-extensions": "^2.0.0" } }, "is-typed-array": { - "version": "1.1.10", + "version": "1.1.12", "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.11" } }, "is-typedarray": { @@ -36005,13 +33779,18 @@ "version": "2.2.0", "requires": { "is-docker": "^2.0.0" + }, + "dependencies": { + "is-docker": { + "version": "2.2.1" + } } }, "is-yarn-global": { "version": "0.4.1" }, "isarray": { - "version": "1.0.0" + "version": "2.0.5" }, "isbinaryfile": { "version": "4.0.10", @@ -36083,6 +33862,9 @@ "requires": { "aggregate-error": "^3.0.0" } + }, + "uuid": { + "version": "8.3.2" } } }, @@ -36100,12 +33882,6 @@ "semver": "^7.5.3" } }, - "semver": { - "version": "7.5.4", - "requires": { - "lru-cache": "^6.0.0" - } - }, "supports-color": { "version": "7.2.0", "requires": { @@ -36133,30 +33909,31 @@ "version": "3.0.3" }, "it-batched-bytes": { - "version": "2.0.3", + "version": "2.0.4", "requires": { "p-defer": "^4.0.0", "uint8arraylist": "^2.4.1" } }, "it-byte-stream": { - "version": "1.0.0", + "version": "1.0.1", "requires": { "it-pushable": "^3.2.0", "it-stream-types": "^2.0.1", "uint8arraylist": "^2.4.1" - }, - "dependencies": { - "it-stream-types": { - "version": "2.0.1" - } } }, "it-drain": { - "version": "3.0.2" + "version": "3.0.3" + }, + "it-filter": { + "version": "3.0.3", + "requires": { + "it-peekable": "^3.0.0" + } }, "it-first": { - "version": "3.0.2" + "version": "3.0.3" }, "it-handshake": { "version": "4.1.3", @@ -36166,78 +33943,59 @@ "it-stream-types": "^2.0.1", "p-defer": "^4.0.0", "uint8arraylist": "^2.0.0" - }, - "dependencies": { - "it-stream-types": { - "version": "2.0.1" - } } }, "it-length-prefixed": { - "version": "9.0.1", + "version": "9.0.3", "requires": { "err-code": "^3.0.1", + "it-reader": "^6.0.1", "it-stream-types": "^2.0.1", - "uint8-varint": "^1.0.1", + "uint8-varint": "^2.0.1", "uint8arraylist": "^2.0.0", "uint8arrays": "^4.0.2" - }, - "dependencies": { - "it-stream-types": { - "version": "2.0.1" - } } }, "it-length-prefixed-stream": { - "version": "1.0.0", + "version": "1.0.2", "requires": { "it-byte-stream": "^1.0.0", "it-length-prefixed": "^9.0.1", "it-stream-types": "^2.0.1", - "uint8-varint": "^1.0.6", + "uint8-varint": "^2.0.1", "uint8arraylist": "^2.4.1" - }, - "dependencies": { - "it-stream-types": { - "version": "2.0.1" - } } }, "it-map": { - "version": "3.0.3", + "version": "3.0.4", "requires": { "it-peekable": "^3.0.0" } }, "it-merge": { - "version": "3.0.1", + "version": "3.0.2", "requires": { - "it-pushable": "^3.1.0" + "it-pushable": "^3.2.0" } }, "it-ndjson": { - "version": "1.0.3" + "version": "1.0.4" }, "it-pair": { "version": "2.0.6", "requires": { "it-stream-types": "^2.0.1", "p-defer": "^4.0.0" - }, - "dependencies": { - "it-stream-types": { - "version": "2.0.1" - } } }, "it-parallel": { - "version": "3.0.3", + "version": "3.0.4", "requires": { "p-defer": "^4.0.0" } }, "it-peekable": { - "version": "3.0.1" + "version": "3.0.2" }, "it-pipe": { "version": "3.0.1", @@ -36245,26 +34003,15 @@ "it-merge": "^3.0.0", "it-pushable": "^3.1.2", "it-stream-types": "^2.0.1" - }, - "dependencies": { - "it-stream-types": { - "version": "2.0.1" - } } }, "it-protobuf-stream": { - "version": "1.0.0", + "version": "1.0.2", "requires": { "it-length-prefixed-stream": "^1.0.0", "it-stream-types": "^2.0.1", "protons-runtime": "^5.0.0", - "uint8-varint": "^1.0.6", "uint8arraylist": "^2.4.1" - }, - "dependencies": { - "it-stream-types": { - "version": "2.0.1" - } } }, "it-pushable": { @@ -36274,26 +34021,26 @@ } }, "it-reader": { - "version": "6.0.2", + "version": "6.0.4", "requires": { - "it-stream-types": "^1.0.4", + "it-stream-types": "^2.0.1", "uint8arraylist": "^2.0.0" } }, "it-sort": { - "version": "3.0.2", + "version": "3.0.3", "requires": { "it-all": "^3.0.0" } }, "it-stream-types": { - "version": "1.0.5" + "version": "2.0.1" }, "it-take": { - "version": "3.0.2" + "version": "3.0.3" }, "it-to-buffer": { - "version": "4.0.2", + "version": "4.0.3", "requires": { "uint8arrays": "^4.0.2" } @@ -36307,15 +34054,10 @@ "it-stream-types": "^2.0.1", "uint8arrays": "^4.0.2", "ws": "^8.4.0" - }, - "dependencies": { - "it-stream-types": { - "version": "2.0.1" - } } }, "jackspeak": { - "version": "2.3.0", + "version": "2.3.3", "requires": { "@isaacs/cliui": "^8.0.2", "@pkgjs/parseargs": "^0.11.0" @@ -36334,7 +34076,9 @@ } }, "js-sha3": { - "version": "0.8.0" + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.9.2.tgz", + "integrity": "sha512-8kgvwd03wNGQG1GRvl3yy1Yt40sICAcIMsDU2ZLgoL0Z6z9rkRmf9Vd+bi/gYSzgAqMUGl/jiDKu0J8AWFd+BQ==" }, "js-tokens": { "version": "4.0.0" @@ -36373,10 +34117,6 @@ "underscore": "~1.13.2" }, "dependencies": { - "@babel/parser": { - "version": "7.21.2", - "dev": true - }, "escape-string-regexp": { "version": "2.0.0", "dev": true @@ -36412,7 +34152,10 @@ "version": "5.0.1" }, "json5": { - "version": "2.2.3" + "version": "1.0.2", + "requires": { + "minimist": "^1.2.0" + } }, "jsonc-parser": { "version": "3.2.0" @@ -36441,8 +34184,6 @@ }, "karma": { "version": "6.4.2", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", - "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", "dev": true, "requires": { "@colors/colors": "1.5.0", @@ -36475,6 +34216,13 @@ "version": "5.0.1", "dev": true }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "cliui": { "version": "7.0.4", "dev": true, @@ -36484,10 +34232,33 @@ "wrap-ansi": "^7.0.0" } }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, "emoji-regex": { "version": "8.0.0", "dev": true }, + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "is-fullwidth-code-point": { "version": "3.0.0", "dev": true @@ -36512,6 +34283,15 @@ "ansi-regex": "^5.0.1" } }, + "wrap-ansi": { + "version": "7.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, "yargs": { "version": "16.2.0", "dev": true, @@ -36547,6 +34327,14 @@ } } }, + "karma-firefox-launcher": { + "version": "2.1.2", + "dev": true, + "requires": { + "is-wsl": "^2.2.0", + "which": "^2.0.1" + } + }, "karma-mocha": { "version": "2.0.1", "dev": true, @@ -36554,6 +34342,14 @@ "minimist": "^1.2.3" } }, + "karma-webkit-launcher": { + "version": "2.1.0", + "dev": true, + "requires": { + "is-ci": "^3.0.1", + "uuid": "^9.0.0" + } + }, "karma-webpack": { "version": "5.0.0", "dev": true, @@ -36561,6 +34357,20 @@ "glob": "^7.1.3", "minimatch": "^3.0.4", "webpack-merge": "^4.1.5" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } } }, "keyv": { @@ -36602,23 +34412,23 @@ } }, "libp2p": { - "version": "0.46.9", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.46.9.tgz", - "integrity": "sha512-voJaMxTaf/LONFdUuSn0rE9SC+VeTwFfIkqSzZGD043CtrUsftToR2+zyIyl2eXS75vTkXyKqzL8Q9IIoqTaFQ==", + "version": "0.46.12", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.46.12.tgz", + "integrity": "sha512-LPEfSVW/tsFNaUplNo/QqDsg9C7wed+lBGPUUhUsRcnPnKQTqZnKBpA9pSv2+A0ST9B++uiyCOk+JK7nIlpjeA==", "requires": { "@achingbrain/nat-port-mapper": "^1.0.9", - "@libp2p/crypto": "^2.0.3", + "@libp2p/crypto": "^2.0.4", "@libp2p/interface": "^0.1.2", - "@libp2p/interface-internal": "^0.1.4", - "@libp2p/keychain": "^3.0.3", + "@libp2p/interface-internal": "^0.1.5", + "@libp2p/keychain": "^3.0.4", "@libp2p/logger": "^3.0.2", "@libp2p/multistream-select": "^4.0.2", - "@libp2p/peer-collections": "^4.0.3", + "@libp2p/peer-collections": "^4.0.4", "@libp2p/peer-id": "^3.0.2", - "@libp2p/peer-id-factory": "^3.0.3", - "@libp2p/peer-record": "^6.0.3", - "@libp2p/peer-store": "^9.0.3", - "@libp2p/utils": "^4.0.2", + "@libp2p/peer-id-factory": "^3.0.4", + "@libp2p/peer-record": "^6.0.5", + "@libp2p/peer-store": "^9.0.5", + "@libp2p/utils": "^4.0.3", "@multiformats/mafmt": "^12.1.2", "@multiformats/multiaddr": "^12.1.5", "@multiformats/multiaddr-matcher": "^1.0.0", @@ -36654,9 +34464,7 @@ }, "dependencies": { "@libp2p/crypto": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.3.tgz", - "integrity": "sha512-VLhjdkJe8b/vedHp7SosDs62Yxq1i05Ej/YdVaEdWQdJsBRHCwbRlS4hPg3vm21U5hLF0g958r/927Vd/wamZw==", + "version": "2.0.4", "requires": { "@libp2p/interface": "^0.1.2", "@noble/curves": "^1.1.0", @@ -36667,51 +34475,6 @@ "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } - }, - "@libp2p/logger": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.2.tgz", - "integrity": "sha512-2JtRGBXiGfm1t5XneUIXQ2JusW7QwyYmxsW7hSAYS5J73RQJUicpt5le5obVRt7+OM39ei+nWEuC6Xvm1ugHkw==", - "requires": { - "@libp2p/interface": "^0.1.2", - "@multiformats/multiaddr": "^12.1.5", - "debug": "^4.3.4", - "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" - } - }, - "@types/retry": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", - "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" - }, - "it-filter": { - "version": "3.0.2", - "requires": { - "it-peekable": "^3.0.0" - } - }, - "it-stream-types": { - "version": "2.0.1" - }, - "multiformats": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.1.tgz", - "integrity": "sha512-GBSToTmri2vJYs8wqcZQ8kB21dCaeTOzHTIAlr8J06C1eL6UbzqURXFZ5Fl0EYm9GAFz1IlYY8SxGOs9G9NJRg==" - }, - "p-retry": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.0.0.tgz", - "integrity": "sha512-6NuuXu8Upembd4sNdo4PRbs+M6aHgBTrFE6lkH0YKjVzne3cDW4gkncB98ty/bkMxLxLVNeD5bX9FyWjM7WZ+A==", - "requires": { - "@types/retry": "0.12.2", - "retry": "^0.13.1" - } - }, - "rate-limiter-flexible": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rate-limiter-flexible/-/rate-limiter-flexible-3.0.0.tgz", - "integrity": "sha512-janAJkWxWxmLka0hV+XvCTo0M8keeSeOuz8ZL33cTXrkS4ek9mQ2VJm9ri7fm03oTVth19Sfqb1ijCmo7K/vAg==" } } }, @@ -36729,28 +34492,19 @@ } }, "lint-staged": { - "version": "13.2.2", + "version": "14.0.1", "dev": true, "requires": { - "chalk": "5.2.0", - "cli-truncate": "^3.1.0", - "commander": "^10.0.0", - "debug": "^4.3.4", - "execa": "^7.0.0", + "chalk": "5.3.0", + "commander": "11.0.0", + "debug": "4.3.4", + "execa": "7.2.0", "lilconfig": "2.1.0", - "listr2": "^5.0.7", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.3", - "pidtree": "^0.6.0", - "string-argv": "^0.3.1", - "yaml": "^2.2.2" - }, - "dependencies": { - "commander": { - "version": "10.0.0", - "dev": true - } + "listr2": "6.6.1", + "micromatch": "4.0.5", + "pidtree": "0.6.0", + "string-argv": "0.3.2", + "yaml": "2.3.1" } }, "listr": { @@ -36772,15 +34526,6 @@ }, "p-map": { "version": "2.1.0" - }, - "rxjs": { - "version": "6.6.7", - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1" } } }, @@ -36832,6 +34577,9 @@ "string-width": "^1.0.1" } }, + "escape-string-regexp": { + "version": "1.0.5" + }, "indent-string": { "version": "3.2.0" }, @@ -36924,12 +34672,6 @@ "figures": "^2.0.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "requires": { - "color-convert": "^1.9.0" - } - }, "chalk": { "version": "2.4.2", "requires": { @@ -36944,14 +34686,8 @@ "restore-cursor": "^2.0.0" } }, - "color-convert": { - "version": "1.9.3", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3" + "escape-string-regexp": { + "version": "1.0.5" }, "figures": { "version": "2.0.0", @@ -36987,71 +34723,15 @@ } }, "listr2": { - "version": "5.0.8", + "version": "6.6.1", "dev": true, "requires": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.19", - "log-update": "^4.0.0", - "p-map": "^4.0.0", + "cli-truncate": "^3.1.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^5.0.1", "rfdc": "^1.3.0", - "rxjs": "^7.8.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "cli-truncate": { - "version": "2.1.0", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - } - }, - "emoji-regex": { - "version": "8.0.0", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true - }, - "slice-ansi": { - "version": "3.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } + "wrap-ansi": "^8.1.0" } }, "load-json-file": { @@ -37069,12 +34749,6 @@ "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" } - }, - "pify": { - "version": "3.0.0" - }, - "strip-bom": { - "version": "3.0.0" } } }, @@ -37083,13 +34757,15 @@ "dev": true }, "locate-path": { - "version": "5.0.0", + "version": "6.0.0", "requires": { - "p-locate": "^4.1.0" + "p-locate": "^5.0.0" } }, "lodash": { - "version": "4.17.21" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash-es": { "version": "4.17.21" @@ -37146,6 +34822,9 @@ "supports-color": "^2.0.0" } }, + "escape-string-regexp": { + "version": "1.0.5" + }, "strip-ansi": { "version": "3.0.1", "requires": { @@ -37158,68 +34837,14 @@ } }, "log-update": { - "version": "4.0.0", + "version": "5.0.1", "dev": true, "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "emoji-regex": { - "version": "8.0.0", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } + "ansi-escapes": "^5.0.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^5.0.0", + "strip-ansi": "^7.0.1", + "wrap-ansi": "^8.0.1" } }, "log4js": { @@ -37236,18 +34861,12 @@ "long": { "version": "5.2.3" }, - "longbits": { - "version": "1.1.0", - "requires": { - "byte-access": "^1.0.1", - "uint8arraylist": "^2.0.0" - } - }, "longest-streak": { "version": "3.1.0" }, "loose-envify": { "version": "1.4.0", + "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -37284,7 +34903,7 @@ }, "dependencies": { "semver": { - "version": "6.3.0" + "version": "6.3.1" } } }, @@ -37343,12 +34962,6 @@ "optional": true, "requires": { "escape-string-regexp": "^4.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "optional": true - } } }, "matchit": { @@ -37358,7 +34971,7 @@ } }, "mdast-util-find-and-replace": { - "version": "3.0.0", + "version": "3.0.1", "requires": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", @@ -37513,8 +35126,45 @@ "yargs-parser": "^20.2.3" }, "dependencies": { + "find-up": { + "version": "4.1.0", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, "hosted-git-info": { - "version": "2.8.9" + "version": "4.1.0", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "requires": { + "p-locate": "^4.1.0" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "p-limit": { + "version": "2.3.0", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "requires": { + "p-limit": "^2.2.0" + } }, "read-pkg": { "version": "5.2.0", @@ -37525,6 +35175,9 @@ "type-fest": "^0.6.0" }, "dependencies": { + "hosted-git-info": { + "version": "2.8.9" + }, "normalize-package-data": { "version": "2.5.0", "requires": { @@ -37534,6 +35187,9 @@ "validate-npm-package-license": "^3.0.1" } }, + "semver": { + "version": "5.7.2" + }, "type-fest": { "version": "0.6.0" } @@ -37552,9 +35208,6 @@ } } }, - "semver": { - "version": "5.7.2" - }, "type-fest": { "version": "0.18.1" }, @@ -37918,10 +35571,6 @@ "yallist": "^4.0.0" } }, - "mitt": { - "version": "3.0.1", - "dev": true - }, "mkdirp": { "version": "0.5.6", "requires": { @@ -37992,22 +35641,21 @@ "wrap-ansi": "^7.0.0" } }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, "diff": { "version": "5.0.0" }, "emoji-regex": { "version": "8.0.0" }, - "escape-string-regexp": { - "version": "4.0.0" - }, - "find-up": { - "version": "5.0.0", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, "glob": { "version": "7.2.0", "requires": { @@ -38033,12 +35681,6 @@ "is-unicode-supported": { "version": "0.1.0" }, - "locate-path": { - "version": "6.0.0", - "requires": { - "p-locate": "^5.0.0" - } - }, "log-symbols": { "version": "4.1.0", "requires": { @@ -38066,18 +35708,6 @@ "nanoid": { "version": "3.3.3" }, - "p-limit": { - "version": "3.1.0", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "requires": { - "p-limit": "^3.0.2" - } - }, "serialize-javascript": { "version": "6.0.0", "requires": { @@ -38098,6 +35728,14 @@ "ansi-regex": "^5.0.1" } }, + "wrap-ansi": { + "version": "7.0.0", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, "yargs": { "version": "16.2.0", "requires": { @@ -38120,8 +35758,6 @@ }, "mortice": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.0.1.tgz", - "integrity": "sha512-eyDUsl1nCR9+JtNksKnaESLP9MgAXCA4w1LTtsmOSQNsThnv++f36rrBu5fC/fdGIwTJZmbiaR/QewptH93pYA==", "requires": { "nanoid": "^4.0.0", "observable-webworkers": "^2.0.1", @@ -38130,9 +35766,7 @@ }, "dependencies": { "nanoid": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", - "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + "version": "4.0.2" } } }, @@ -38146,7 +35780,7 @@ "version": "2.1.2" }, "multiformats": { - "version": "11.0.2" + "version": "12.1.1" }, "multimatch": { "version": "5.0.0", @@ -38158,9 +35792,6 @@ "minimatch": "^3.0.4" }, "dependencies": { - "array-union": { - "version": "2.1.0" - }, "arrify": { "version": "2.0.1" } @@ -38170,12 +35801,11 @@ "version": "0.0.8" }, "nan": { - "version": "2.17.0", + "version": "2.18.0", "optional": true }, "nanoid": { - "version": "3.3.4", - "dev": true + "version": "3.3.6" }, "nanospinner": { "version": "1.1.0", @@ -38228,6 +35858,15 @@ "requires": { "type-detect": "4.0.8" } + }, + "isarray": { + "version": "0.0.1" + }, + "path-to-regexp": { + "version": "1.8.0", + "requires": { + "isarray": "0.0.1" + } } } }, @@ -38238,7 +35877,7 @@ } }, "node-fetch": { - "version": "2.6.7", + "version": "2.7.0", "dev": true, "requires": { "whatwg-url": "^5.0.0" @@ -38257,12 +35896,17 @@ "version": "2.0.13" }, "normalize-package-data": { - "version": "3.0.3", + "version": "2.5.0", "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2" + } } }, "normalize-path": { @@ -40124,9 +37768,6 @@ "color-convert": "^2.0.1" } }, - "array-union": { - "version": "2.1.0" - }, "chalk": { "version": "4.1.2", "requires": { @@ -40134,19 +37775,36 @@ "supports-color": "^7.1.0" } }, - "globby": { - "version": "11.1.0", + "color-convert": { + "version": "2.0.1", "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" + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, + "cosmiconfig": { + "version": "8.3.6", + "requires": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + } + }, + "find-up": { + "version": "4.1.0", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "hosted-git-info": { - "version": "2.8.9" + "version": "4.1.0", + "requires": { + "lru-cache": "^6.0.0" + } }, "is-plain-obj": { "version": "3.0.0" @@ -40154,6 +37812,12 @@ "is-unicode-supported": { "version": "0.1.0" }, + "locate-path": { + "version": "5.0.0", + "requires": { + "p-locate": "^4.1.0" + } + }, "log-symbols": { "version": "4.1.0", "requires": { @@ -40183,6 +37847,27 @@ } } }, + "normalize-package-data": { + "version": "3.0.3", + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "p-limit": { + "version": "2.3.0", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "requires": { + "p-limit": "^2.2.0" + } + }, "read-pkg": { "version": "5.2.0", "requires": { @@ -40192,6 +37877,9 @@ "type-fest": "^0.6.0" }, "dependencies": { + "hosted-git-info": { + "version": "2.8.9" + }, "normalize-package-data": { "version": "2.5.0", "requires": { @@ -40222,12 +37910,6 @@ } } }, - "semver": { - "version": "7.5.4", - "requires": { - "lru-cache": "^6.0.0" - } - }, "supports-color": { "version": "7.2.0", "requires": { @@ -40257,13 +37939,6 @@ "string.prototype.padend": "^3.0.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, "chalk": { "version": "2.4.2", "dev": true, @@ -40273,17 +37948,6 @@ "supports-color": "^5.3.0" } }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, "cross-spawn": { "version": "6.0.5", "dev": true, @@ -40295,54 +37959,24 @@ "which": "^1.2.9" } }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, "has-flag": { "version": "3.0.0", "dev": true }, - "hosted-git-info": { - "version": "2.8.9", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, "path-key": { "version": "2.0.1", "dev": true }, - "path-type": { - "version": "3.0.0", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, "pidtree": { "version": "0.3.1", "dev": true }, - "pify": { - "version": "3.0.0", - "dev": true - }, - "read-pkg": { - "version": "3.0.0", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, "semver": { - "version": "5.7.1", + "version": "5.7.2", "dev": true }, "shebang-command": { @@ -40438,12 +38072,57 @@ "wrap-ansi": "^6.2.0" } }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, "emoji-regex": { "version": "8.0.0" }, + "find-up": { + "version": "4.1.0", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "glob": { + "version": "7.2.3", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "is-fullwidth-code-point": { "version": "3.0.0" }, + "locate-path": { + "version": "5.0.0", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "requires": { + "p-limit": "^2.2.0" + } + }, "p-map": { "version": "3.0.0", "requires": { @@ -40525,18 +38204,33 @@ "object-keys": "^1.1.1" } }, - "object.values": { - "version": "1.1.6", + "object.fromentries": { + "version": "2.0.7", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "object.groupby": { + "version": "1.0.1", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "object.values": { + "version": "1.1.7", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "observable-webworkers": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-2.0.1.tgz", - "integrity": "sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw==" + "version": "2.0.1" }, "on-finished": { "version": "2.4.1", @@ -40545,6 +38239,10 @@ "ee-first": "1.1.1" } }, + "on-headers": { + "version": "1.0.2", + "dev": true + }, "once": { "version": "1.4.0", "requires": { @@ -40558,10 +38256,13 @@ } }, "open": { - "version": "7.4.2", + "version": "9.1.0", + "dev": true, "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" } }, "optionator": { @@ -40576,24 +38277,21 @@ } }, "ora": { - "version": "6.3.1", + "version": "7.0.1", "requires": { - "chalk": "^5.0.0", + "chalk": "^5.3.0", "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", + "cli-spinners": "^2.9.0", "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", + "is-unicode-supported": "^1.3.0", "log-symbols": "^5.1.0", "stdin-discarder": "^0.1.0", - "strip-ansi": "^7.0.1", - "wcwidth": "^1.0.1" + "string-width": "^6.1.0", + "strip-ansi": "^7.1.0" }, "dependencies": { - "cli-cursor": { - "version": "4.0.0", - "requires": { - "restore-cursor": "^4.0.0" - } + "emoji-regex": { + "version": "10.2.1" }, "log-symbols": { "version": "5.1.0", @@ -40602,20 +38300,12 @@ "is-unicode-supported": "^1.1.0" } }, - "mimic-fn": { - "version": "2.1.0" - }, - "onetime": { - "version": "5.1.2", + "string-width": { + "version": "6.1.0", "requires": { - "mimic-fn": "^2.1.0" - } - }, - "restore-cursor": { - "version": "4.0.0", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^10.2.1", + "strip-ansi": "^7.0.1" } } } @@ -40633,14 +38323,11 @@ "version": "3.0.0" }, "p-event": { - "version": "5.0.1", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.0.tgz", + "integrity": "sha512-Xbfxd0CfZmHLGKXH32k1JKjQYX6Rkv0UtQdaFJ8OyNcf+c0oWCeXHc1C4CX/IESZLmcvfPa5aFIO/vCr5gqtag==", "requires": { - "p-timeout": "^5.0.2" - }, - "dependencies": { - "p-timeout": { - "version": "5.1.0" - } + "p-timeout": "^6.1.2" } }, "p-filter": { @@ -40683,27 +38370,24 @@ "version": "3.0.0" }, "p-limit": { - "version": "2.3.0", + "version": "3.1.0", "requires": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" } }, "p-locate": { - "version": "4.1.0", + "version": "5.0.0", "requires": { - "p-limit": "^2.2.0" + "p-limit": "^3.0.2" } }, "p-map": { - "version": "4.0.0", - "requires": { - "aggregate-error": "^3.0.0" - } + "version": "6.0.0" }, "p-queue": { - "version": "7.3.4", + "version": "7.4.1", "requires": { - "eventemitter3": "^4.0.7", + "eventemitter3": "^5.0.1", "p-timeout": "^5.0.2" }, "dependencies": { @@ -40716,9 +38400,12 @@ "version": "2.1.0" }, "p-retry": { - "version": "5.1.2", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.1.0.tgz", + "integrity": "sha512-fJLEQ2KqYBJRuaA/8cKMnqhulqNM+bpcjYtXNex2t3mOXKRYPitAJt9NacSf8XAFzcYahSAbKpobiWDSqHSh2g==", "requires": { - "@types/retry": "0.12.1", + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", "retry": "^0.13.1" } }, @@ -40737,46 +38424,6 @@ "p-timeout": "^6.0.0" } }, - "pac-proxy-agent": { - "version": "7.0.0", - "dev": true, - "requires": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "pac-resolver": "^7.0.0", - "socks-proxy-agent": "^8.0.1" - }, - "dependencies": { - "agent-base": { - "version": "7.1.0", - "dev": true, - "requires": { - "debug": "^4.3.4" - } - }, - "https-proxy-agent": { - "version": "7.0.1", - "dev": true, - "requires": { - "agent-base": "^7.0.2", - "debug": "4" - } - } - } - }, - "pac-resolver": { - "version": "7.0.0", - "dev": true, - "requires": { - "degenerator": "^5.0.0", - "ip": "^1.1.8", - "netmask": "^2.0.2" - } - }, "package-hash": { "version": "4.0.0", "requires": { @@ -40851,6 +38498,12 @@ "p-cancelable": { "version": "3.0.0" }, + "registry-url": { + "version": "6.0.1", + "requires": { + "rc": "1.2.8" + } + }, "responselike": { "version": "3.0.0", "requires": { @@ -40861,8 +38514,6 @@ }, "parent-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", - "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", "dev": true, "requires": { "callsites": "^3.1.0" @@ -40877,6 +38528,9 @@ "lines-and-columns": "^1.1.6" } }, + "parse-passwd": { + "version": "1.0.0" + }, "parseurl": { "version": "1.3.3", "dev": true @@ -40919,6 +38573,18 @@ "supports-color": "^7.1.0" } }, + "ci-info": { + "version": "2.0.0" + }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, "cross-spawn": { "version": "6.0.5", "requires": { @@ -40938,6 +38604,26 @@ "universalify": "^2.0.0" } }, + "glob": { + "version": "7.2.3", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "is-ci": { + "version": "2.0.0", + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-docker": { + "version": "2.2.1" + }, "jsonfile": { "version": "6.1.0", "requires": { @@ -40945,6 +38631,13 @@ "universalify": "^2.0.0" } }, + "open": { + "version": "7.4.2", + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, "path-key": { "version": "2.0.1" }, @@ -41011,6 +38704,10 @@ "path-is-absolute": { "version": "1.0.1" }, + "path-is-inside": { + "version": "1.0.2", + "dev": true + }, "path-key": { "version": "3.1.1" }, @@ -41033,15 +38730,8 @@ } }, "path-to-regexp": { - "version": "1.8.0", - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1" - } - } + "version": "2.2.1", + "dev": true }, "path-type": { "version": "4.0.0" @@ -41066,7 +38756,7 @@ "dev": true }, "pify": { - "version": "2.3.0" + "version": "3.0.0" }, "pinkie": { "version": "2.0.4" @@ -41121,6 +38811,33 @@ "version": "4.2.0", "requires": { "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "requires": { + "p-limit": "^2.2.0" + } + } } }, "pkg-up": { @@ -41165,33 +38882,49 @@ "platform": { "version": "1.3.6" }, + "playwright": { + "version": "1.38.1", + "dev": true, + "requires": { + "fsevents": "2.3.2", + "playwright-core": "1.38.1" + }, + "dependencies": { + "fsevents": { + "version": "2.3.2", + "dev": true, + "optional": true + } + } + }, "playwright-core": { - "version": "1.36.0" + "version": "1.38.1", + "dev": true }, "playwright-test": { - "version": "12.1.1", + "version": "12.3.4", "requires": { "acorn-loose": "^8.3.0", - "assert": "^2.0.0", + "assert": "^2.1.0", "buffer": "^6.0.3", - "c8": "^8.0.0", - "camelcase": "^7.0.1", + "c8": "^8.0.1", + "camelcase": "^8.0.0", "chokidar": "^3.5.3", "cpy": "^10.1.0", - "esbuild": "0.18.12", + "esbuild": "0.19.3", "esbuild-plugin-wasm": "^1.1.0", "events": "^3.3.0", - "execa": "^7.1.1", + "execa": "^8.0.1", "globby": "^13.2.2", "kleur": "^4.1.5", "lilconfig": "^2.1.0", "lodash": "^4.17.21", "merge-options": "^3.0.4", - "nanoid": "^4.0.2", - "ora": "^6.3.1", - "p-wait-for": "5.0.2", + "nanoid": "^5.0.1", + "ora": "^7.0.1", + "p-timeout": "^6.1.2", "path-browserify": "^1.0.1", - "playwright-core": "1.36.0", + "playwright-core": "1.38.0", "polka": "^0.5.2", "premove": "^4.0.0", "process": "^0.11.10", @@ -41200,17 +38933,12 @@ "source-map": "0.6.1", "source-map-support": "^0.5.21", "stream-browserify": "^3.0.0", - "strip-ansi": "^7.1.0", "tempy": "^3.1.0", "test-exclude": "^6.0.0", "util": "^0.12.5", "v8-to-istanbul": "^9.1.0" }, "dependencies": { - "@esbuild/darwin-arm64": { - "version": "0.18.12", - "optional": true - }, "buffer": { "version": "6.0.3", "requires": { @@ -41219,35 +38947,25 @@ } }, "camelcase": { - "version": "7.0.1" + "version": "8.0.0" }, - "esbuild": { - "version": "0.18.12", + "execa": { + "version": "8.0.1", "requires": { - "@esbuild/android-arm": "0.18.12", - "@esbuild/android-arm64": "0.18.12", - "@esbuild/android-x64": "0.18.12", - "@esbuild/darwin-arm64": "0.18.12", - "@esbuild/darwin-x64": "0.18.12", - "@esbuild/freebsd-arm64": "0.18.12", - "@esbuild/freebsd-x64": "0.18.12", - "@esbuild/linux-arm": "0.18.12", - "@esbuild/linux-arm64": "0.18.12", - "@esbuild/linux-ia32": "0.18.12", - "@esbuild/linux-loong64": "0.18.12", - "@esbuild/linux-mips64el": "0.18.12", - "@esbuild/linux-ppc64": "0.18.12", - "@esbuild/linux-riscv64": "0.18.12", - "@esbuild/linux-s390x": "0.18.12", - "@esbuild/linux-x64": "0.18.12", - "@esbuild/netbsd-x64": "0.18.12", - "@esbuild/openbsd-x64": "0.18.12", - "@esbuild/sunos-x64": "0.18.12", - "@esbuild/win32-arm64": "0.18.12", - "@esbuild/win32-ia32": "0.18.12", - "@esbuild/win32-x64": "0.18.12" + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" } }, + "get-stream": { + "version": "8.0.1" + }, "globby": { "version": "13.2.2", "requires": { @@ -41258,8 +38976,17 @@ "slash": "^4.0.0" } }, + "human-signals": { + "version": "5.0.0" + }, "nanoid": { - "version": "4.0.2" + "version": "5.0.1" + }, + "playwright-core": { + "version": "1.38.0" + }, + "signal-exit": { + "version": "4.1.0" }, "slash": { "version": "4.0.0" @@ -41318,16 +39045,11 @@ } }, "postcss": { - "version": "8.4.28", + "version": "8.4.30", "requires": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" - }, - "dependencies": { - "nanoid": { - "version": "3.3.6" - } } }, "prelude-ls": { @@ -41337,7 +39059,7 @@ "version": "4.0.0" }, "prettier": { - "version": "3.0.1", + "version": "3.0.3", "dev": true, "peer": true }, @@ -41349,11 +39071,11 @@ } }, "private-ip": { - "version": "3.0.0", + "version": "3.0.1", "requires": { "@chainsafe/is-ip": "^2.0.1", "ip-regex": "^5.0.0", - "ipaddr.js": "^2.0.1", + "ipaddr.js": "^2.1.0", "netmask": "^2.0.2" } }, @@ -41404,7 +39126,7 @@ "version": "1.2.4" }, "protobufjs": { - "version": "7.2.4", + "version": "7.2.5", "requires": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -41420,12 +39142,20 @@ "long": "^5.0.0" } }, - "protons": { - "version": "7.0.2", + "protobufjs-cli": { + "version": "1.1.2", "dev": true, "requires": { - "meow": "^11.0.0", - "protobufjs-cli": "^1.0.0" + "chalk": "^4.0.0", + "escodegen": "^1.13.0", + "espree": "^9.0.0", + "estraverse": "^5.1.0", + "glob": "^8.0.0", + "jsdoc": "^4.0.0", + "minimist": "^1.2.0", + "semver": "^7.1.2", + "tmp": "^0.2.1", + "uglify-js": "^3.7.7" }, "dependencies": { "ansi-styles": { @@ -41435,33 +39165,6 @@ "color-convert": "^2.0.1" } }, - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "camelcase": { - "version": "7.0.1", - "dev": true - }, - "camelcase-keys": { - "version": "8.0.2", - "dev": true, - "requires": { - "camelcase": "^7.0.0", - "map-obj": "^4.3.0", - "quick-lru": "^6.1.1", - "type-fest": "^2.13.0" - }, - "dependencies": { - "type-fest": { - "version": "2.19.0", - "dev": true - } - } - }, "chalk": { "version": "4.1.2", "dev": true, @@ -41470,171 +39173,47 @@ "supports-color": "^7.1.0" } }, - "decamelize": { - "version": "6.0.0", + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", "dev": true }, - "estraverse": { - "version": "5.3.0", - "dev": true - }, - "glob": { - "version": "8.1.0", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "hosted-git-info": { - "version": "5.2.1", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - } - }, - "indent-string": { - "version": "5.0.0", - "dev": true - }, - "lru-cache": { - "version": "7.18.3", - "dev": true - }, - "meow": { - "version": "11.0.0", - "dev": true, - "requires": { - "@types/minimist": "^1.2.2", - "camelcase-keys": "^8.0.2", - "decamelize": "^6.0.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^4.0.1", - "read-pkg-up": "^9.1.0", - "redent": "^4.0.0", - "trim-newlines": "^4.0.2", - "type-fest": "^3.1.0", - "yargs-parser": "^21.1.1" - } - }, - "minimatch": { - "version": "5.1.6", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "normalize-package-data": { - "version": "4.0.1", - "dev": true, - "requires": { - "hosted-git-info": "^5.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - } - }, - "protobufjs-cli": { - "version": "1.1.1", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "escodegen": "^1.13.0", - "espree": "^9.0.0", - "estraverse": "^5.1.0", - "glob": "^8.0.0", - "jsdoc": "^4.0.0", - "minimist": "^1.2.0", - "semver": "^7.1.2", - "tmp": "^0.2.1", - "uglify-js": "^3.7.7" - } - }, - "quick-lru": { - "version": "6.1.1", - "dev": true - }, - "redent": { - "version": "4.0.0", - "dev": true, - "requires": { - "indent-string": "^5.0.0", - "strip-indent": "^4.0.0" - } - }, - "strip-indent": { - "version": "4.0.0", - "dev": true, - "requires": { - "min-indent": "^1.0.1" - } - }, "supports-color": { "version": "7.2.0", "dev": true, "requires": { "has-flag": "^4.0.0" } - }, - "trim-newlines": { - "version": "4.0.2", - "dev": true - }, - "type-fest": { - "version": "3.6.1", + } + } + }, + "protons": { + "version": "7.0.5", + "dev": true, + "requires": { + "meow": "^12.0.1", + "protobufjs-cli": "^1.0.0" + }, + "dependencies": { + "meow": { + "version": "12.1.1", "dev": true } } }, "protons-runtime": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-5.0.2.tgz", - "integrity": "sha512-eKppVrIS5dDh+Y61Yj4bDEOs2sQLQbQGIhr7EBiybPQhIMGBynzVXlYILPWl3Td1GDadobc8qevh5D+JwfG9bw==", "requires": { "protobufjs": "^7.0.0", "uint8arraylist": "^2.4.3" } }, - "proxy-agent": { - "version": "6.3.0", - "dev": true, - "requires": { - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.0.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.1" - }, - "dependencies": { - "agent-base": { - "version": "7.1.0", - "dev": true, - "requires": { - "debug": "^4.3.4" - } - }, - "https-proxy-agent": { - "version": "7.0.1", - "dev": true, - "requires": { - "agent-base": "^7.0.2", - "debug": "4" - } - }, - "lru-cache": { - "version": "7.18.3", - "dev": true - } - } - }, "proxy-from-env": { "version": "1.1.0", "dev": true @@ -41658,52 +39237,6 @@ "escape-goat": "^4.0.0" } }, - "puppeteer": { - "version": "21.1.1", - "dev": true, - "requires": { - "@puppeteer/browsers": "1.7.0", - "cosmiconfig": "8.2.0", - "puppeteer-core": "21.1.1" - }, - "dependencies": { - "cross-fetch": { - "version": "4.0.0", - "dev": true, - "requires": { - "node-fetch": "^2.6.12" - } - }, - "devtools-protocol": { - "version": "0.0.1159816", - "dev": true - }, - "node-fetch": { - "version": "2.7.0", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "puppeteer-core": { - "version": "21.1.1", - "dev": true, - "requires": { - "@puppeteer/browsers": "1.7.0", - "chromium-bidi": "0.4.22", - "cross-fetch": "4.0.0", - "debug": "4.3.4", - "devtools-protocol": "0.0.1159816", - "ws": "8.13.0" - } - }, - "ws": { - "version": "8.13.0", - "dev": true, - "requires": {} - } - } - }, "puppeteer-core": { "version": "13.7.0", "dev": true, @@ -41723,7 +39256,7 @@ } }, "pure-rand": { - "version": "6.0.1" + "version": "6.0.3" }, "qjobs": { "version": "1.2.0", @@ -41736,20 +39269,9 @@ "side-channel": "^1.0.4" } }, - "query-ast": { - "version": "1.0.5", - "requires": { - "invariant": "2.2.4", - "lodash": "^4.17.21" - } - }, "queue-microtask": { "version": "1.2.3" }, - "queue-tick": { - "version": "1.0.1", - "dev": true - }, "quick-lru": { "version": "5.1.1" }, @@ -41767,7 +39289,7 @@ "dev": true }, "rate-limiter-flexible": { - "version": "2.4.1" + "version": "3.0.0" }, "raw-body": { "version": "2.5.2", @@ -41788,6 +39310,9 @@ "strip-json-comments": "~2.0.1" }, "dependencies": { + "ini": { + "version": "1.3.8" + }, "strip-json-comments": { "version": "2.0.1" } @@ -41840,9 +39365,6 @@ "color-convert": "^2.0.1" } }, - "array-union": { - "version": "2.1.0" - }, "chalk": { "version": "4.1.2", "requires": { @@ -41850,6 +39372,24 @@ "supports-color": "^7.1.0" } }, + "ci-info": { + "version": "2.0.0" + }, + "cli-cursor": { + "version": "3.1.0", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, "crypto-random-string": { "version": "2.0.0" }, @@ -41867,13 +39407,6 @@ "strip-final-newline": "^2.0.0" } }, - "find-up": { - "version": "5.0.0", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, "fs-extra": { "version": "9.1.0", "requires": { @@ -41889,23 +39422,15 @@ "pump": "^3.0.0" } }, - "globby": { - "version": "11.1.0", - "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" - } - }, - "hosted-git-info": { - "version": "2.8.9" - }, "human-signals": { "version": "1.1.1" }, + "is-ci": { + "version": "2.0.0", + "requires": { + "ci-info": "^2.0.0" + } + }, "is-interactive": { "version": "1.0.0" }, @@ -41922,12 +39447,6 @@ "universalify": "^2.0.0" } }, - "locate-path": { - "version": "6.0.0", - "requires": { - "p-locate": "^5.0.0" - } - }, "log-symbols": { "version": "4.1.0", "requires": { @@ -41938,20 +39457,6 @@ "mimic-fn": { "version": "2.1.0" }, - "normalize-package-data": { - "version": "2.5.0", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.2" - } - } - }, "npm-run-path": { "version": "4.0.1", "requires": { @@ -41978,18 +39483,6 @@ "wcwidth": "^1.0.1" } }, - "p-limit": { - "version": "3.1.0", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "requires": { - "p-limit": "^3.0.2" - } - }, "p-retry": { "version": "4.6.2", "requires": { @@ -42006,6 +39499,13 @@ "type-fest": "^0.6.0" } }, + "restore-cursor": { + "version": "3.1.0", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, "strip-ansi": { "version": "6.0.1", "requires": { @@ -42050,6 +39550,9 @@ }, "universalify": { "version": "2.0.0" + }, + "yn": { + "version": "4.0.0" } } }, @@ -42063,18 +39566,42 @@ } }, "read-pkg": { - "version": "8.0.0", + "version": "3.0.0", + "dev": true, "requires": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^5.0.0", - "parse-json": "^7.0.0", - "type-fest": "^3.8.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" }, "dependencies": { - "hosted-git-info": { - "version": "6.1.1", + "path-type": { + "version": "3.0.0", + "dev": true, "requires": { - "lru-cache": "^7.5.1" + "pify": "^3.0.0" + } + } + } + }, + "read-pkg-up": { + "version": "10.1.0", + "requires": { + "find-up": "^6.3.0", + "read-pkg": "^8.1.0", + "type-fest": "^4.2.0" + }, + "dependencies": { + "find-up": { + "version": "6.3.0", + "requires": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + } + }, + "hosted-git-info": { + "version": "7.0.1", + "requires": { + "lru-cache": "^10.0.1" } }, "json-parse-even-better-errors": { @@ -42083,92 +39610,68 @@ "lines-and-columns": { "version": "2.0.3" }, + "locate-path": { + "version": "7.2.0", + "requires": { + "p-locate": "^6.0.0" + } + }, "lru-cache": { - "version": "7.18.3" + "version": "10.0.1" }, "normalize-package-data": { - "version": "5.0.0", + "version": "6.0.0", "requires": { - "hosted-git-info": "^6.0.0", + "hosted-git-info": "^7.0.0", "is-core-module": "^2.8.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" } }, - "parse-json": { - "version": "7.0.0", - "requires": { - "@babel/code-frame": "^7.21.4", - "error-ex": "^1.3.2", - "json-parse-even-better-errors": "^3.0.0", - "lines-and-columns": "^2.0.3", - "type-fest": "^3.8.0" - } - }, - "type-fest": { - "version": "3.13.1" - } - } - }, - "read-pkg-up": { - "version": "9.1.0", - "dev": true, - "requires": { - "find-up": "^6.3.0", - "read-pkg": "^7.1.0", - "type-fest": "^2.5.0" - }, - "dependencies": { - "find-up": { - "version": "6.3.0", - "dev": true, - "requires": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - } - }, - "locate-path": { - "version": "7.2.0", - "dev": true, - "requires": { - "p-locate": "^6.0.0" - } - }, "p-limit": { "version": "4.0.0", - "dev": true, "requires": { "yocto-queue": "^1.0.0" } }, "p-locate": { "version": "6.0.0", - "dev": true, "requires": { "p-limit": "^4.0.0" } }, + "parse-json": { + "version": "7.1.0", + "requires": { + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" + }, + "dependencies": { + "type-fest": { + "version": "3.13.1" + } + } + }, "path-exists": { - "version": "5.0.0", - "dev": true + "version": "5.0.0" }, "read-pkg": { - "version": "7.1.0", - "dev": true, + "version": "8.1.0", "requires": { "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^2.0.0" + "normalize-package-data": "^6.0.0", + "parse-json": "^7.0.0", + "type-fest": "^4.2.0" } }, "type-fest": { - "version": "2.19.0", - "dev": true + "version": "4.3.1" }, "yocto-queue": { - "version": "1.0.0", - "dev": true + "version": "1.0.0" } } }, @@ -42209,7 +39712,7 @@ "version": "1.4.2" }, "regenerate-unicode-properties": { - "version": "10.1.0", + "version": "10.1.1", "requires": { "regenerate": "^1.4.2" } @@ -42224,11 +39727,11 @@ } }, "regexp.prototype.flags": { - "version": "1.4.3", + "version": "1.5.1", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" } }, "regexpp": { @@ -42252,9 +39755,10 @@ } }, "registry-url": { - "version": "6.0.1", + "version": "3.1.0", + "dev": true, "requires": { - "rc": "1.2.8" + "rc": "^1.0.1" } }, "regjsparser": { @@ -42276,13 +39780,15 @@ }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true }, "require-directory": { "version": "2.1.1" }, + "require-from-string": { + "version": "2.0.2", + "dev": true + }, "require-main-filename": { "version": "2.0.0" }, @@ -42304,7 +39810,7 @@ } }, "resolve": { - "version": "1.22.4", + "version": "1.22.6", "requires": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -42314,9 +39820,20 @@ "resolve-alpn": { "version": "1.2.1" }, + "resolve-dir": { + "version": "1.0.1", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, "resolve-from": { "version": "5.0.0" }, + "resolve-pkg-maps": { + "version": "1.0.0", + "peer": true + }, "responselike": { "version": "2.0.1", "requires": { @@ -42324,7 +39841,7 @@ } }, "restore-cursor": { - "version": "3.1.0", + "version": "4.0.0", "requires": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -42358,6 +39875,19 @@ "version": "3.0.2", "requires": { "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } } }, "roarr": { @@ -42374,8 +39904,6 @@ }, "rollup": { "version": "3.29.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.2.tgz", - "integrity": "sha512-CJouHoZ27v6siztc21eEQGo0kIcE5D1gVPA571ez0mMYb25LGYGKnVNXpEj5MGlepmDWGXNjDB5q7uNiPHC11A==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -42442,10 +39970,14 @@ } }, "rxjs": { - "version": "7.8.0", - "dev": true, + "version": "6.6.7", "requires": { - "tslib": "^2.1.0" + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1" + } } }, "sade": { @@ -42454,6 +39986,15 @@ "mri": "^1.1.0" } }, + "safe-array-concat": { + "version": "1.0.1", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + } + }, "safe-buffer": { "version": "5.2.1" }, @@ -42470,25 +40011,15 @@ }, "sanitize-filename": { "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", "requires": { "truncate-utf8-bytes": "^1.0.0" } }, - "sass": { - "version": "1.65.1", - "requires": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - } - }, "sax": { "version": "1.2.4" }, "schema-utils": { - "version": "3.1.1", + "version": "3.3.0", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -42496,13 +40027,6 @@ "ajv-keywords": "^3.5.2" } }, - "scss-parser": { - "version": "1.0.6", - "requires": { - "invariant": "2.2.4", - "lodash": "4.17.21" - } - }, "semantic-release": { "version": "npm:@achingbrain/semantic-release@21.0.9", "requires": { @@ -42562,13 +40086,6 @@ "is-unicode-supported": "^1.2.0" } }, - "find-up": { - "version": "6.3.0", - "requires": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - } - }, "hosted-git-info": { "version": "6.1.1", "requires": { @@ -42578,49 +40095,14 @@ "indent-string": { "version": "5.0.0" }, - "locate-path": { - "version": "7.2.0", - "requires": { - "p-locate": "^6.0.0" - } - }, "lru-cache": { "version": "7.18.3" }, "marked": { "version": "5.1.2" }, - "p-limit": { - "version": "4.0.0", - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "p-locate": { - "version": "6.0.0", - "requires": { - "p-limit": "^4.0.0" - } - }, "p-reduce": { "version": "3.0.0" - }, - "path-exists": { - "version": "5.0.0" - }, - "read-pkg-up": { - "version": "10.0.0", - "requires": { - "find-up": "^6.3.0", - "read-pkg": "^8.0.0", - "type-fest": "^3.12.0" - } - }, - "type-fest": { - "version": "3.13.1" - }, - "yocto-queue": { - "version": "1.0.0" } } }, @@ -42685,9 +40167,6 @@ "universalify": "^2.0.0" } }, - "hosted-git-info": { - "version": "2.8.9" - }, "is-stream": { "version": "1.1.0" }, @@ -42705,15 +40184,6 @@ "yallist": "^2.1.2" } }, - "normalize-package-data": { - "version": "2.5.0", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, "npm-run-path": { "version": "2.0.2", "requires": { @@ -42744,9 +40214,6 @@ "type-fest": "^0.6.0" } }, - "semver": { - "version": "5.7.2" - }, "shebang-command": { "version": "1.2.0", "requires": { @@ -42805,7 +40272,7 @@ "requires": {} }, "semver": { - "version": "7.3.8", + "version": "7.5.4", "requires": { "lru-cache": "^6.0.0" } @@ -42842,9 +40309,135 @@ "randombytes": "^2.1.0" } }, + "serve": { + "version": "14.2.1", + "dev": true, + "requires": { + "@zeit/schemas": "2.29.0", + "ajv": "8.11.0", + "arg": "5.0.2", + "boxen": "7.0.0", + "chalk": "5.0.1", + "chalk-template": "0.4.0", + "clipboardy": "3.0.0", + "compression": "1.7.4", + "is-port-reachable": "4.0.0", + "serve-handler": "6.1.5", + "update-check": "1.5.4" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "arg": { + "version": "5.0.2", + "dev": true + }, + "chalk": { + "version": "5.0.1", + "dev": true + }, + "chalk-template": { + "version": "0.4.0", + "dev": true, + "requires": { + "chalk": "^4.1.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "serve-handler": { + "version": "6.1.5", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "dev": true + }, + "mime-db": { + "version": "1.33.0", + "dev": true + }, + "mime-types": { + "version": "2.1.18", + "dev": true, + "requires": { + "mime-db": "~1.33.0" + } + }, + "range-parser": { + "version": "1.2.0", + "dev": true + } + } + }, "set-blocking": { "version": "2.0.0" }, + "set-function-name": { + "version": "2.0.1", + "requires": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + } + }, "setprototypeof": { "version": "1.2.0", "dev": true @@ -42859,11 +40452,11 @@ "version": "3.0.0" }, "shell-quote": { - "version": "1.8.0", + "version": "1.8.1", "dev": true }, "shiki": { - "version": "0.14.2", + "version": "0.14.4", "requires": { "ansi-sequence-parser": "^1.1.0", "jsonc-parser": "^3.2.0", @@ -42890,12 +40483,6 @@ "pkg-conf": "^2.1.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "requires": { - "color-convert": "^1.9.0" - } - }, "chalk": { "version": "2.4.2", "requires": { @@ -42904,14 +40491,8 @@ "supports-color": "^5.3.0" } }, - "color-convert": { - "version": "1.9.3", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3" + "escape-string-regexp": { + "version": "1.0.5" }, "figures": { "version": "2.0.0", @@ -42931,7 +40512,9 @@ } }, "sinon": { - "version": "15.2.0", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-16.0.0.tgz", + "integrity": "sha512-B8AaZZm9CT5pqe4l4uWJztfD/mOTa7dL8Qo0W4+s+t74xECOgSZDDQCBjNgIK3+n4kyxQrSTv2V5ul8K25qkiQ==", "requires": { "@sinonjs/commons": "^3.0.0", "@sinonjs/fake-timers": "^10.3.0", @@ -42941,6 +40524,9 @@ "supports-color": "^7.2.0" }, "dependencies": { + "diff": { + "version": "5.1.0" + }, "supports-color": { "version": "7.2.0", "requires": { @@ -42958,38 +40544,20 @@ }, "dependencies": { "@polka/url": { - "version": "1.0.0-next.21" + "version": "1.0.0-next.23" } } }, "size-limit": { - "version": "8.2.4", + "version": "9.0.0", "dev": true, "requires": { "bytes-iec": "^3.1.1", "chokidar": "^3.5.3", "globby": "^11.1.0", - "lilconfig": "^2.0.6", + "lilconfig": "^2.1.0", "nanospinner": "^1.1.0", "picocolors": "^1.0.0" - }, - "dependencies": { - "array-union": { - "version": "2.1.0", - "dev": true - }, - "globby": { - "version": "11.1.0", - "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" - } - } } }, "slash": { @@ -43001,22 +40569,25 @@ "requires": { "ansi-styles": "^6.0.0", "is-fullwidth-code-point": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "6.2.1", + "dev": true + } } }, - "smart-buffer": { - "version": "4.2.0", - "dev": true - }, "socket.io": { - "version": "4.6.1", + "version": "4.7.2", "dev": true, "requires": { "accepts": "~1.3.4", "base64id": "~2.0.0", + "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.4.1", + "engine.io": "~6.5.2", "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.1" + "socket.io-parser": "~4.2.4" } }, "socket.io-adapter": { @@ -43034,45 +40605,13 @@ } }, "socket.io-parser": { - "version": "4.2.2", + "version": "4.2.4", "dev": true, "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" } }, - "socks": { - "version": "2.7.1", - "dev": true, - "requires": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "dependencies": { - "ip": { - "version": "2.0.0", - "dev": true - } - } - }, - "socks-proxy-agent": { - "version": "8.0.1", - "dev": true, - "requires": { - "agent-base": "^7.0.1", - "debug": "^4.3.4", - "socks": "^2.7.1" - }, - "dependencies": { - "agent-base": { - "version": "7.1.0", - "dev": true, - "requires": { - "debug": "^4.3.4" - } - } - } - }, "source-map": { "version": "0.6.1" }, @@ -43118,7 +40657,7 @@ } }, "spdx-license-ids": { - "version": "3.0.13" + "version": "3.0.15" }, "split": { "version": "1.0.1", @@ -43130,22 +40669,19 @@ "version": "1.0.1" }, "split2": { - "version": "3.2.2", - "requires": { - "readable-stream": "^3.0.0" - } + "version": "4.2.0" }, "sprintf-js": { - "version": "1.1.2", + "version": "1.1.3", "optional": true }, "ssh2": { - "version": "1.11.0", + "version": "1.14.0", "requires": { - "asn1": "^0.2.4", + "asn1": "^0.2.6", "bcrypt-pbkdf": "^1.0.2", - "cpu-features": "~0.0.4", - "nan": "^2.16.0" + "cpu-features": "~0.0.8", + "nan": "^2.17.0" } }, "stack-trace": { @@ -43192,6 +40728,9 @@ "readable-stream": "^2.0.2" }, "dependencies": { + "isarray": { + "version": "1.0.0" + }, "readable-stream": { "version": "2.3.8", "requires": { @@ -43227,14 +40766,6 @@ "streamsearch": { "version": "1.1.0" }, - "streamx": { - "version": "2.15.1", - "dev": true, - "requires": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" - } - }, "string_decoder": { "version": "1.3.0", "requires": { @@ -43242,7 +40773,7 @@ } }, "string-argv": { - "version": "0.3.1", + "version": "0.3.2", "dev": true }, "string-width": { @@ -43279,36 +40810,36 @@ } }, "string.prototype.padend": { - "version": "3.1.4", + "version": "3.1.5", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "string.prototype.trim": { - "version": "1.2.7", + "version": "1.2.8", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "string.prototype.trimend": { - "version": "1.0.6", + "version": "1.0.7", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "string.prototype.trimstart": { - "version": "1.0.6", + "version": "1.0.7", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "strip-ansi": { @@ -43329,7 +40860,7 @@ } }, "strip-bom": { - "version": "5.0.0" + "version": "3.0.0" }, "strip-eof": { "version": "1.0.0" @@ -43350,6 +40881,11 @@ "version": "1.0.1", "requires": { "escape-string-regexp": "^1.0.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5" + } } }, "sumchecker": { @@ -43438,11 +40974,11 @@ } }, "terser": { - "version": "5.16.6", + "version": "5.20.0", "dev": true, "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -43454,14 +40990,24 @@ } }, "terser-webpack-plugin": { - "version": "5.3.7", + "version": "5.3.9", "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.1", - "terser": "^5.16.5" + "terser": "^5.16.8" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.19", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } } }, "test-exclude": { @@ -43470,10 +41016,23 @@ "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } } }, "text-extensions": { - "version": "1.9.0" + "version": "2.4.0" }, "text-table": { "version": "0.2.0" @@ -43488,6 +41047,9 @@ "xtend": "~4.0.1" }, "dependencies": { + "isarray": { + "version": "1.0.0" + }, "readable-stream": { "version": "2.3.8", "requires": { @@ -43552,6 +41114,11 @@ "version": "1.0.0", "requires": { "escape-string-regexp": "^1.0.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5" + } } }, "trouter": { @@ -43562,19 +41129,17 @@ }, "truncate-utf8-bytes": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", "requires": { "utf8-byte-length": "^1.0.1" } }, "ts-api-utils": { - "version": "1.0.1", + "version": "1.0.3", "dev": true, "requires": {} }, "ts-loader": { - "version": "9.4.2", + "version": "9.4.4", "dev": true, "requires": { "chalk": "^4.1.0", @@ -43598,6 +41163,17 @@ "supports-color": "^7.1.0" } }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, "supports-color": { "version": "7.2.0", "dev": true, @@ -43623,14 +41199,6 @@ "make-error": "^1.1.1", "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" - }, - "dependencies": { - "diff": { - "version": "4.0.2" - }, - "yn": { - "version": "3.1.1" - } } }, "tsconfig": { @@ -43642,9 +41210,6 @@ "strip-json-comments": "^2.0.0" }, "dependencies": { - "strip-bom": { - "version": "3.0.0" - }, "strip-json-comments": { "version": "2.0.1" } @@ -43657,21 +41222,10 @@ "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0" - } } }, "tslib": { - "version": "2.6.1" + "version": "2.6.2" }, "tsutils": { "version": "3.21.0", @@ -43704,8 +41258,7 @@ "version": "4.0.8" }, "type-fest": { - "version": "0.21.3", - "dev": true + "version": "0.20.2" }, "type-is": { "version": "1.6.18", @@ -43715,6 +41268,33 @@ "mime-types": "~2.1.24" } }, + "typed-array-buffer": { + "version": "1.0.0", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-length": { + "version": "1.0.0", + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-offset": { + "version": "1.0.0", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, "typed-array-length": { "version": "1.0.4", "requires": { @@ -43730,11 +41310,11 @@ } }, "typedoc": { - "version": "0.23.28", + "version": "0.25.1", "requires": { "lunr": "^2.3.9", - "marked": "^4.2.12", - "minimatch": "^7.1.3", + "marked": "^4.3.0", + "minimatch": "^9.0.3", "shiki": "^0.14.1" }, "dependencies": { @@ -43745,7 +41325,7 @@ } }, "minimatch": { - "version": "7.4.6", + "version": "9.0.3", "requires": { "brace-expansion": "^2.0.1" } @@ -43753,16 +41333,15 @@ } }, "typedoc-plugin-mdn-links": { - "version": "3.0.3", + "version": "3.1.0", "requires": {} }, - "typedoc-plugin-resolve-crossmodule-references": { - "version": "0.3.3", - "dev": true, + "typedoc-plugin-missing-exports": { + "version": "2.1.0", "requires": {} }, "typescript": { - "version": "5.0.4" + "version": "5.2.2" }, "typescript-docs-verifier": { "version": "2.5.0", @@ -43792,6 +41371,21 @@ "supports-color": "^7.1.0" } }, + "cli-cursor": { + "version": "3.1.0", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, "fs-extra": { "version": "10.1.0", "requires": { @@ -43820,6 +41414,15 @@ "is-unicode-supported": "^0.1.0" } }, + "mimic-fn": { + "version": "2.1.0" + }, + "onetime": { + "version": "5.1.2", + "requires": { + "mimic-fn": "^2.1.0" + } + }, "ora": { "version": "5.4.1", "requires": { @@ -43842,6 +41445,13 @@ } } }, + "restore-cursor": { + "version": "3.1.0", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, "supports-color": { "version": "7.2.0", "requires": { @@ -43854,7 +41464,7 @@ } }, "ua-parser-js": { - "version": "0.7.34", + "version": "0.7.36", "dev": true }, "uc.micro": { @@ -43866,10 +41476,8 @@ "devOptional": true }, "uint8-varint": { - "version": "1.0.6", + "version": "2.0.1", "requires": { - "byte-access": "^1.0.0", - "longbits": "^1.1.0", "uint8arraylist": "^2.0.0", "uint8arrays": "^4.0.2" } @@ -43884,11 +41492,6 @@ "version": "4.0.6", "requires": { "multiformats": "^12.0.1" - }, - "dependencies": { - "multiformats": { - "version": "12.0.1" - } } }, "unbox-primitive": { @@ -43913,7 +41516,7 @@ "dev": true }, "undici": { - "version": "5.20.0", + "version": "5.25.1", "requires": { "busboy": "^1.6.0" } @@ -43982,12 +41585,30 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.11", + "version": "1.0.13", "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" } }, + "update-check": { + "version": "1.5.4", + "dev": true, + "requires": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0" + }, + "dependencies": { + "registry-auth-token": { + "version": "3.3.2", + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + } + } + }, "update-notifier": { "version": "6.0.2", "requires": { @@ -44005,17 +41626,6 @@ "semver": "^7.3.7", "semver-diff": "^4.0.0", "xdg-basedir": "^5.1.0" - }, - "dependencies": { - "ci-info": { - "version": "3.8.0" - }, - "is-ci": { - "version": "3.0.1", - "requires": { - "ci-info": "^3.2.0" - } - } } }, "uri-js": { @@ -44028,9 +41638,7 @@ "version": "5.0.0" }, "utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" + "version": "1.0.4" }, "utf8-bytes": { "version": "0.0.1" @@ -44063,7 +41671,7 @@ "dev": true }, "uuid": { - "version": "8.3.2" + "version": "9.0.1" }, "v8-compile-cache-lib": { "version": "3.0.1" @@ -44074,6 +41682,15 @@ "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^1.6.0" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.19", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } } }, "validate-npm-package-license": { @@ -44089,9 +41706,6 @@ "builtins": "^5.0.0" } }, - "varint": { - "version": "6.0.0" - }, "vary": { "version": "1.1.2" }, @@ -44101,8 +41715,6 @@ }, "vscode-languageserver-textdocument": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", - "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==", "dev": true }, "vscode-oniguruma": { @@ -44113,8 +41725,6 @@ }, "vscode-uri": { "version": "3.0.7", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", - "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==", "dev": true }, "watchpack": { @@ -44136,20 +41746,20 @@ "dev": true }, "webpack": { - "version": "5.76.1", + "version": "5.88.2", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", + "acorn-import-assertions": "^1.9.0", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -44158,11 +41768,25 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "dev": true + } } }, "webpack-merge": { @@ -44177,7 +41801,7 @@ "dev": true }, "whatwg-fetch": { - "version": "3.6.2", + "version": "3.6.19", "dev": true }, "whatwg-url": { @@ -44214,14 +41838,13 @@ "version": "2.0.1" }, "which-typed-array": { - "version": "1.1.9", + "version": "1.1.11", "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.0" } }, "widest-line": { @@ -44250,7 +41873,7 @@ } }, "word-wrap": { - "version": "1.2.3", + "version": "1.2.5", "dev": true }, "wordwrap": { @@ -44260,41 +41883,15 @@ "version": "6.2.1" }, "wrap-ansi": { - "version": "7.0.0", + "version": "8.1.0", "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1" - }, "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "emoji-regex": { - "version": "8.0.0" - }, - "is-fullwidth-code-point": { - "version": "3.0.0" - }, - "string-width": { - "version": "4.2.3", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "requires": { - "ansi-regex": "^5.0.1" - } + "version": "6.2.1" } } }, @@ -44315,6 +41912,15 @@ "color-convert": "^2.0.1" } }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, "emoji-regex": { "version": "8.0.0" }, @@ -44357,7 +41963,7 @@ "version": "5.1.0" }, "xml2js": { - "version": "0.6.0", + "version": "0.6.2", "requires": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -44383,11 +41989,11 @@ "version": "4.0.0" }, "yaml": { - "version": "2.2.2", + "version": "2.3.1", "dev": true }, "yargs": { - "version": "17.7.1", + "version": "17.7.2", "requires": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -44448,7 +42054,7 @@ } }, "yn": { - "version": "4.0.0" + "version": "3.1.1" }, "yocto-queue": { "version": "0.1.0" diff --git a/package.json b/package.json index e6d9b1750d..ec1389c73b 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "packages/message-encryption", "packages/sdk", "packages/tests", + "packages/browser-tests", "packages/build-utils" ], "scripts": { @@ -39,8 +40,8 @@ }, "devDependencies": { "@size-limit/preset-big-lib": "^8.2.4", - "@typescript-eslint/eslint-plugin": "^6.2.1", - "@typescript-eslint/parser": "^6.0.0", + "@typescript-eslint/eslint-plugin": "^6.6.0", + "@typescript-eslint/parser": "^6.6.0", "eslint": "^8.47.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-eslint-comments": "^3.2.0", @@ -49,10 +50,19 @@ "eslint-plugin-prettier": "^5.0.0", "gh-pages": "^5.0.0", "husky": "^8.0.3", - "lint-staged": "^13.2.2", - "size-limit": "^8.1.2", - "typedoc": "^0.23.26", - "typedoc-plugin-resolve-crossmodule-references": "^0.3.3" + "lint-staged": "^14.0.1", + "size-limit": "^9.0.0", + "ts-loader": "^9.4.2", + "ts-node": "^10.9.1", + "typedoc": "^0.25.1", + "typescript": "^5.2.2", + "karma": "^6.4.2", + "karma-chrome-launcher": "^3.2.0", + "karma-firefox-launcher": "^2.1.2", + "karma-mocha": "^2.0.1", + "karma-webkit-launcher": "^2.1.0", + "karma-webpack": "^5.0.0", + "playwright": "^1.38.1" }, "lint-staged": { "*.{ts,js}": [ diff --git a/packages/browser-tests/.env.local b/packages/browser-tests/.env.local new file mode 100644 index 0000000000..ee4cdd5c35 --- /dev/null +++ b/packages/browser-tests/.env.local @@ -0,0 +1,3 @@ +EXAMPLE_TEMPLATE="web-chat" +EXAMPLE_NAME="example" +EXAMPLE_PORT="8080" diff --git a/packages/browser-tests/.eslintrc.cjs b/packages/browser-tests/.eslintrc.cjs new file mode 100644 index 0000000000..3c2ee09b85 --- /dev/null +++ b/packages/browser-tests/.eslintrc.cjs @@ -0,0 +1,14 @@ +module.exports = { + parserOptions: { + tsconfigRootDir: __dirname, + project: "./tsconfig.dev.json" + }, + env: { + node: true, + }, + rules: {}, + globals: { + process: true + } +}; + \ No newline at end of file diff --git a/packages/browser-tests/package.json b/packages/browser-tests/package.json new file mode 100644 index 0000000000..ae58d24b85 --- /dev/null +++ b/packages/browser-tests/package.json @@ -0,0 +1,19 @@ +{ + "name": "@waku/browser-tests", + "version": "0.1.0", + "private": true, + "type": "module", + "scripts": { + "start": "run-s start:*", + "start:setup": "node ./src/setup-example.js", + "start:build": "node ./src/build-example.js", + "start:serve": "npx serve -p 8080 --no-port-switching ./example", + "test": "npx playwright test" + }, + "devDependencies": { + "@playwright/test": "^1.37.1", + "@waku/create-app": "^0.1.1-7c24ffa", + "dotenv-flow": "^3.3.0", + "serve": "^14.2.1" + } +} diff --git a/packages/browser-tests/playwright.config.ts b/packages/browser-tests/playwright.config.ts new file mode 100644 index 0000000000..fdf80154ec --- /dev/null +++ b/packages/browser-tests/playwright.config.ts @@ -0,0 +1,80 @@ +import "dotenv-flow/config"; +import { defineConfig, devices } from "@playwright/test"; + +const EXAMPLE_PORT = process.env.EXAMPLE_PORT; +// web-chat specific thingy +const EXAMPLE_TEMPLATE = process.env.EXAMPLE_TEMPLATE; +const BASE_URL = `http://127.0.0.1:${EXAMPLE_PORT}/${EXAMPLE_TEMPLATE}`; + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: "./tests", + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 2 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: "html", + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Base URL to use in actions like `await page.goto('/')`. */ + baseURL: BASE_URL, + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: "on-first-retry" + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: "chromium", + use: { ...devices["Desktop Chrome"] } + }, + + { + name: "firefox", + use: { ...devices["Desktop Firefox"] } + }, + + { + name: "webkit", + use: { ...devices["Desktop Safari"] } + } + + /* Test against mobile viewports. */ + // { + // name: 'Mobile Chrome', + // use: { ...devices['Pixel 5'] }, + // }, + // { + // name: 'Mobile Safari', + // use: { ...devices['iPhone 12'] }, + // }, + + /* Test against branded browsers. */ + // { + // name: 'Microsoft Edge', + // use: { ...devices['Desktop Edge'], channel: 'msedge' }, + // }, + // { + // name: 'Google Chrome', + // use: { ...devices['Desktop Chrome'], channel: 'chrome' }, + // }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + url: BASE_URL, + stdout: "pipe", + stderr: "pipe", + command: "npm start", + reuseExistingServer: !process.env.CI, + timeout: 5 * 60 * 1000 // five minutes for bootstrapping an example + } +}); diff --git a/packages/browser-tests/src/build-example.js b/packages/browser-tests/src/build-example.js new file mode 100644 index 0000000000..f3c7d2c7b9 --- /dev/null +++ b/packages/browser-tests/src/build-example.js @@ -0,0 +1,55 @@ +#!/usr/bin/env node +import "dotenv-flow/config"; +import { execSync } from "child_process"; +import path from "path"; + +import { __dirname } from "./utils.js"; + +const EXAMPLE_NAME = process.env.EXAMPLE_NAME; +const EXAMPLE_PATH = path.resolve(__dirname, "..", EXAMPLE_NAME); + +const BUILD_FOLDER = "build"; +const BUILD_PATH = path.resolve(EXAMPLE_PATH, BUILD_FOLDER); + +// required by web-chat example +const WEB_CHAT_BUILD_PATH = path.resolve(EXAMPLE_PATH, "web-chat"); + +run(); + +function run() { + cleanPrevBuildIfExists(); + buildExample(); + renameBuildFolderForWebChat(); +} + +function cleanPrevBuildIfExists() { + try { + console.log("Cleaning previous build if exists."); + execSync(`rm -rf ${BUILD_PATH}`, { stdio: "ignore" }); + } catch (error) { + console.error(`Failed to clean previous build: ${error.message}`); + throw error; + } +} + +function buildExample() { + try { + console.log("Building example at", EXAMPLE_PATH); + execSync(`cd ${EXAMPLE_PATH} && npm run build`, { stdio: "pipe" }); + } catch (error) { + console.error(`Failed to build example: ${error.message}`); + throw error; + } +} + +function renameBuildFolderForWebChat() { + try { + console.log("Renaming example's build folder."); + execSync(`mv ${BUILD_PATH} ${WEB_CHAT_BUILD_PATH}`, { stdio: "ignore" }); + } catch (error) { + console.error( + `Failed to rename build folder for web-chat: ${error.message}` + ); + throw error; + } +} diff --git a/packages/browser-tests/src/setup-example.js b/packages/browser-tests/src/setup-example.js new file mode 100644 index 0000000000..a66cb41c0e --- /dev/null +++ b/packages/browser-tests/src/setup-example.js @@ -0,0 +1,93 @@ +#!/usr/bin/env node +import "dotenv-flow/config"; +import { execSync } from "child_process"; +import path from "path"; + +import { __dirname, readJSON } from "./utils.js"; + +const ROOT_PATH = path.resolve(__dirname, "../../../"); +const JS_WAKU_PACKAGES = readWorkspaces(); + +const EXAMPLE_NAME = process.env.EXAMPLE_NAME; +const EXAMPLE_TEMPLATE = process.env.EXAMPLE_TEMPLATE; +const EXAMPLE_PATH = path.resolve(__dirname, "..", EXAMPLE_NAME); + +run(); + +function run() { + cleanExampleIfExists(); + bootstrapExample(); + linkPackages(); +} + +function cleanExampleIfExists() { + try { + console.log("Cleaning previous example if exists."); + execSync(`rm -rf ${EXAMPLE_PATH}`, { stdio: "ignore" }); + } catch (error) { + console.error(`Failed to clean previous example: ${error.message}`); + throw error; + } +} + +function bootstrapExample() { + try { + console.log("Bootstrapping example."); + execSync( + `npx @waku/create-app --template ${EXAMPLE_TEMPLATE} ${EXAMPLE_NAME}`, + { stdio: "ignore" } + ); + } catch (error) { + console.error(`Failed to bootstrap example: ${error.message}`); + throw error; + } +} + +function linkPackages() { + const examplePackage = readJSON(`${EXAMPLE_PATH}/package.json`); + + // remove duplicates if any + const dependencies = filterWakuDependencies({ + ...examplePackage.dependencies, + ...examplePackage.devDependencies + }); + + Object.keys(dependencies).forEach(linkDependency); +} + +function filterWakuDependencies(dependencies) { + return Object.entries(dependencies) + .filter((pair) => JS_WAKU_PACKAGES.includes(pair[0])) + .reduce((acc, pair) => { + acc[pair[0]] = pair[1]; + return acc; + }, {}); +} + +function linkDependency(dependency) { + try { + console.log(`Linking dependency to example: ${dependency}`); + const pathToDependency = path.resolve(ROOT_PATH, toFolderName(dependency)); + execSync(`npm link ${pathToDependency}`, { stdio: "ignore" }); + } catch (error) { + console.error( + `Failed to npm link dependency ${dependency} in example: ${error.message}` + ); + throw error; + } +} + +function readWorkspaces() { + const rootPath = path.resolve(ROOT_PATH, "package.json"); + const workspaces = readJSON(rootPath).workspaces; + return workspaces.map(toPackageName); +} + +function toPackageName(str) { + // assumption is that package name published is always the same in `@waku/package` name + return str.replace("packages", "@waku"); +} + +function toFolderName(str) { + return str.replace("@waku", "packages"); +} diff --git a/packages/browser-tests/src/utils.js b/packages/browser-tests/src/utils.js new file mode 100644 index 0000000000..0122958d04 --- /dev/null +++ b/packages/browser-tests/src/utils.js @@ -0,0 +1,8 @@ +import { readFileSync } from "fs"; +import { dirname } from "path"; +import { fileURLToPath } from "url"; + +const __filename = fileURLToPath(import.meta.url); +export const __dirname = dirname(__filename); + +export const readJSON = (path) => JSON.parse(readFileSync(path, "utf-8")); diff --git a/packages/browser-tests/tests/web-chat.spec.ts b/packages/browser-tests/tests/web-chat.spec.ts new file mode 100644 index 0000000000..778e1c6d70 --- /dev/null +++ b/packages/browser-tests/tests/web-chat.spec.ts @@ -0,0 +1,6 @@ +import { expect, test } from "@playwright/test"; + +test("has title Web Chat title", async ({ page }) => { + await page.goto(""); + await expect(page).toHaveTitle("Waku v2 chat app"); +}); diff --git a/packages/browser-tests/tsconfig.dev.json b/packages/browser-tests/tsconfig.dev.json new file mode 100644 index 0000000000..4f7c34af3c --- /dev/null +++ b/packages/browser-tests/tsconfig.dev.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.dev" +} diff --git a/packages/core/karma.conf.cjs b/packages/core/karma.conf.cjs index 6256dd375c..1acbc3dd2a 100644 --- a/packages/core/karma.conf.cjs +++ b/packages/core/karma.conf.cjs @@ -1,45 +1,3 @@ -process.env.CHROME_BIN = require("puppeteer").executablePath(); -const webpack = require("webpack"); +const config = require("../../karma.conf.cjs"); -module.exports = function (config) { - config.set({ - frameworks: ["webpack", "mocha"], - files: ["src/lib/**/!(node).spec.ts"], - preprocessors: { - "src/lib/**/!(node).spec.ts": ["webpack"] - }, - envPreprocessor: ["CI"], - reporters: ["progress"], - browsers: ["ChromeHeadless"], - singleRun: true, - client: { - mocha: { - timeout: 6000 // Default is 2s - } - }, - webpack: { - mode: "development", - module: { - rules: [{ test: /\.([cm]?ts|tsx)$/, loader: "ts-loader" }] - }, - plugins: [ - new webpack.DefinePlugin({ - "process.env.CI": process.env.CI || false - }), - new webpack.ProvidePlugin({ - process: "process/browser.js" - }) - ], - resolve: { - extensions: [".ts", ".tsx", ".js"], - extensionAlias: { - ".js": [".js", ".ts"], - ".cjs": [".cjs", ".cts"], - ".mjs": [".mjs", ".mts"] - } - }, - stats: { warnings: false }, - devtool: "inline-source-map" - } - }); -}; +module.exports = config; diff --git a/packages/core/package.json b/packages/core/package.json index 2c2aecfdbd..f3d2c33688 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -69,7 +69,7 @@ "reset-hard": "git clean -dfx -e .idea && git reset --hard && npm i && npm run build" }, "engines": { - "node": ">=16" + "node": ">=18" }, "dependencies": { "@noble/hashes": "^1.3.2", @@ -80,7 +80,7 @@ "it-all": "^3.0.3", "it-length-prefixed": "^9.0.1", "it-pipe": "^3.0.1", - "p-event": "^5.0.1", + "p-event": "^6.0.0", "uint8arraylist": "^2.4.3", "uuid": "^9.0.0" }, @@ -96,21 +96,13 @@ "@waku/build-utils": "*", "chai": "^4.3.7", "cspell": "^7.3.2", - "fast-check": "^3.12.0", + "fast-check": "^3.13.1", "ignore-loader": "^0.1.2", "isomorphic-fetch": "^3.0.0", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-webpack": "^5.0.0", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", "process": "^0.11.10", - "puppeteer": "^21.1.1", - "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "ts-node": "^10.9.1", - "typescript": "^5.0.4" + "rollup": "^3.29.2" }, "peerDependencies": { "@multiformats/multiaddr": "^12.0.0", @@ -121,9 +113,6 @@ "optional": true } }, - "typedoc": { - "entryPoint": "./src/index.ts" - }, "files": [ "dist", "bundle", diff --git a/packages/core/src/lib/filter/index.ts b/packages/core/src/lib/filter/index.ts index bd102e3787..d0b6d68c58 100644 --- a/packages/core/src/lib/filter/index.ts +++ b/packages/core/src/lib/filter/index.ts @@ -17,7 +17,11 @@ import type { Unsubscribe } from "@waku/interfaces"; import { WakuMessage } from "@waku/proto"; -import { groupByContentTopic, toAsyncIterator } from "@waku/utils"; +import { + ensurePubsubTopicIsConfigured, + groupByContentTopic, + toAsyncIterator +} from "@waku/utils"; import debug from "debug"; import all from "it-all"; import * as lp from "it-length-prefixed"; @@ -230,7 +234,7 @@ class Subscription { } class Filter extends BaseProtocol implements IReceiver { - private readonly options: ProtocolCreateOptions; + private readonly pubSubTopics: PubSubTopic[] = []; private activeSubscriptions = new Map(); private readonly NUM_PEERS_PROTOCOL = 1; @@ -253,19 +257,22 @@ class Filter extends BaseProtocol implements IReceiver { constructor(libp2p: Libp2p, options?: ProtocolCreateOptions) { super(FilterCodecs.SUBSCRIBE, libp2p.components); + this.pubSubTopics = options?.pubSubTopics || [DefaultPubSubTopic]; + libp2p.handle(FilterCodecs.PUSH, this.onRequest.bind(this)).catch((e) => { log("Failed to register ", FilterCodecs.PUSH, e); }); this.activeSubscriptions = new Map(); - - this.options = options ?? {}; } - async createSubscription(pubSubTopic?: string): Promise { - const _pubSubTopic = - pubSubTopic ?? this.options.pubSubTopic ?? DefaultPubSubTopic; + async createSubscription( + pubSubTopic: string = DefaultPubSubTopic + ): Promise { + ensurePubsubTopicIsConfigured(pubSubTopic, this.pubSubTopics); + //TODO: get a relevant peer for the topic/shard + // https://github.com/waku-org/js-waku/pull/1586#discussion_r1336428230 const peer = ( await this.getPeers({ maxBootstrapPeers: 1, @@ -274,11 +281,11 @@ class Filter extends BaseProtocol implements IReceiver { )[0]; const subscription = - this.getActiveSubscription(_pubSubTopic, peer.id.toString()) ?? + this.getActiveSubscription(pubSubTopic, peer.id.toString()) ?? this.setActiveSubscription( - _pubSubTopic, + pubSubTopic, peer.id.toString(), - new Subscription(_pubSubTopic, peer, this.getStream.bind(this, peer)) + new Subscription(pubSubTopic, peer, this.getStream.bind(this, peer)) ); return subscription; diff --git a/packages/core/src/lib/keep_alive_manager.ts b/packages/core/src/lib/keep_alive_manager.ts index 6227c08257..26f7c296d9 100644 --- a/packages/core/src/lib/keep_alive_manager.ts +++ b/packages/core/src/lib/keep_alive_manager.ts @@ -1,6 +1,6 @@ import type { PeerId } from "@libp2p/interface/peer-id"; import type { PeerStore } from "@libp2p/interface/peer-store"; -import type { IRelay } from "@waku/interfaces"; +import type { IRelay, PeerIdStr } from "@waku/interfaces"; import type { KeepAliveOptions } from "@waku/interfaces"; import { utf8ToBytes } from "@waku/utils/bytes"; import debug from "debug"; @@ -13,7 +13,7 @@ const log = debug("waku:keep-alive"); export class KeepAliveManager { private pingKeepAliveTimers: Map>; - private relayKeepAliveTimers: Map>; + private relayKeepAliveTimers: Map[]>; private options: KeepAliveOptions; private relay?: IRelay; @@ -66,17 +66,12 @@ export class KeepAliveManager { const relay = this.relay; if (relay && relayPeriodSecs !== 0) { - const encoder = createEncoder({ - contentTopic: RelayPingContentTopic, - ephemeral: true - }); - const interval = setInterval(() => { - log("Sending Waku Relay ping message"); - relay - .send(encoder, { payload: new Uint8Array([1]) }) - .catch((e) => log("Failed to send relay ping", e)); - }, relayPeriodSecs * 1000); - this.relayKeepAliveTimers.set(peerId, interval); + const intervals = this.scheduleRelayPings( + relay, + relayPeriodSecs, + peerId.toString() + ); + this.relayKeepAliveTimers.set(peerId, intervals); } } @@ -89,7 +84,7 @@ export class KeepAliveManager { } if (this.relayKeepAliveTimers.has(peerId)) { - clearInterval(this.relayKeepAliveTimers.get(peerId)); + this.relayKeepAliveTimers.get(peerId)?.map(clearInterval); this.relayKeepAliveTimers.delete(peerId); } } @@ -105,4 +100,32 @@ export class KeepAliveManager { this.pingKeepAliveTimers.clear(); this.relayKeepAliveTimers.clear(); } + + private scheduleRelayPings( + relay: IRelay, + relayPeriodSecs: number, + peerIdStr: PeerIdStr + ): NodeJS.Timeout[] { + // send a ping message to each PubSubTopic the peer is part of + const intervals: NodeJS.Timeout[] = []; + for (const topic of relay.pubSubTopics) { + const meshPeers = relay.getMeshPeers(topic); + if (!meshPeers.includes(peerIdStr)) continue; + + const encoder = createEncoder({ + pubSubTopic: topic, + contentTopic: RelayPingContentTopic, + ephemeral: true + }); + const interval = setInterval(() => { + log("Sending Waku Relay ping message"); + relay + .send(encoder, { payload: new Uint8Array([1]) }) + .catch((e) => log("Failed to send relay ping", e)); + }, relayPeriodSecs * 1000); + intervals.push(interval); + } + + return intervals; + } } diff --git a/packages/core/src/lib/light_push/index.ts b/packages/core/src/lib/light_push/index.ts index f4ffcb7fc2..547d1372ff 100644 --- a/packages/core/src/lib/light_push/index.ts +++ b/packages/core/src/lib/light_push/index.ts @@ -6,11 +6,12 @@ import { IMessage, Libp2p, ProtocolCreateOptions, + PubSubTopic, SendError, SendResult } from "@waku/interfaces"; import { PushResponse } from "@waku/proto"; -import { isSizeValid } from "@waku/utils"; +import { ensurePubsubTopicIsConfigured, isSizeValid } from "@waku/utils"; import debug from "debug"; import all from "it-all"; import * as lp from "it-length-prefixed"; @@ -41,12 +42,12 @@ type PreparePushMessageResult = * Implements the [Waku v2 Light Push protocol](https://rfc.vac.dev/spec/19/). */ class LightPush extends BaseProtocol implements ILightPush { - options: ProtocolCreateOptions; + private readonly pubSubTopics: PubSubTopic[]; private readonly NUM_PEERS_PROTOCOL = 1; constructor(libp2p: Libp2p, options?: ProtocolCreateOptions) { super(LightPushCodec, libp2p.components); - this.options = options || {}; + this.pubSubTopics = options?.pubSubTopics ?? [DefaultPubSubTopic]; } private async preparePushMessage( @@ -82,7 +83,9 @@ class LightPush extends BaseProtocol implements ILightPush { } async send(encoder: IEncoder, message: IMessage): Promise { - const { pubSubTopic = DefaultPubSubTopic } = this.options; + const { pubSubTopic } = encoder; + ensurePubsubTopicIsConfigured(pubSubTopic, this.pubSubTopics); + const recipients: PeerId[] = []; const { query, error: preparationError } = await this.preparePushMessage( @@ -98,6 +101,7 @@ class LightPush extends BaseProtocol implements ILightPush { }; } + //TODO: get a relevant peer for the topic/shard const peers = await this.getPeers({ maxBootstrapPeers: 1, numPeers: this.NUM_PEERS_PROTOCOL diff --git a/packages/core/src/lib/message/version_0.ts b/packages/core/src/lib/message/version_0.ts index 1e57e9ec13..0577d27cac 100644 --- a/packages/core/src/lib/message/version_0.ts +++ b/packages/core/src/lib/message/version_0.ts @@ -6,11 +6,14 @@ import type { IMessage, IMetaSetter, IProtoMessage, - IRateLimitProof + IRateLimitProof, + PubSubTopic } from "@waku/interfaces"; import { proto_message as proto } from "@waku/proto"; import debug from "debug"; +import { DefaultPubSubTopic } from "../constants.js"; + const log = debug("waku:message:version-0"); const OneMillion = BigInt(1_000_000); @@ -73,6 +76,7 @@ export class Encoder implements IEncoder { constructor( public contentTopic: string, public ephemeral: boolean = false, + public pubSubTopic: PubSubTopic, public metaSetter?: IMetaSetter ) { if (!contentTopic || contentTopic === "") { @@ -109,22 +113,25 @@ export class Encoder implements IEncoder { /** * Creates an encoder that encode messages without Waku level encryption or signature. * - * An encoder is used to encode messages in the [`14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/) + * An encoder is used to encode messages in the [14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/) * format to be sent over the Waku network. The resulting encoder can then be - * pass to { @link @waku/interfaces.LightPush.push } or - * { @link @waku/interfaces.Relay.send } to automatically encode outgoing + * pass to { @link @waku/interfaces!ISender.send } to automatically encode outgoing * messages. */ export function createEncoder({ + pubSubTopic = DefaultPubSubTopic, contentTopic, ephemeral, metaSetter }: EncoderOptions): Encoder { - return new Encoder(contentTopic, ephemeral, metaSetter); + return new Encoder(contentTopic, ephemeral, pubSubTopic, metaSetter); } export class Decoder implements IDecoder { - constructor(public contentTopic: string) { + constructor( + public pubSubTopic: PubSubTopic, + public contentTopic: string + ) { if (!contentTopic || contentTopic === "") { throw new Error("Content topic must be specified"); } @@ -169,12 +176,14 @@ export class Decoder implements IDecoder { * * A decoder is used to decode messages from the [14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/) * format when received from the Waku network. The resulting decoder can then be - * pass to { @link @waku/interfaces.Filter.subscribe } or - * { @link @waku/interfaces.Relay.subscribe } to automatically decode incoming + * pass to { @link @waku/interfaces!IReceiver.subscribe } to automatically decode incoming * messages. * * @param contentTopic The resulting decoder will only decode messages with this content topic. */ -export function createDecoder(contentTopic: string): Decoder { - return new Decoder(contentTopic); +export function createDecoder( + contentTopic: string, + pubsubTopic: PubSubTopic = DefaultPubSubTopic +): Decoder { + return new Decoder(pubsubTopic, contentTopic); } diff --git a/packages/core/src/lib/store/index.ts b/packages/core/src/lib/store/index.ts index 67bd856e5d..6d5cedc4de 100644 --- a/packages/core/src/lib/store/index.ts +++ b/packages/core/src/lib/store/index.ts @@ -6,10 +6,11 @@ import { IDecoder, IStore, Libp2p, - ProtocolCreateOptions + ProtocolCreateOptions, + PubSubTopic } from "@waku/interfaces"; import { proto_store as proto } from "@waku/proto"; -import { isDefined } from "@waku/utils"; +import { ensurePubsubTopicIsConfigured, isDefined } from "@waku/utils"; import { concat, utf8ToBytes } from "@waku/utils/bytes"; import debug from "debug"; import all from "it-all"; @@ -74,12 +75,12 @@ export interface QueryOptions { * The Waku Store protocol can be used to retrieved historical messages. */ class Store extends BaseProtocol implements IStore { - options: ProtocolCreateOptions; + private readonly pubSubTopics: PubSubTopic[]; private readonly NUM_PEERS_PROTOCOL = 1; constructor(libp2p: Libp2p, options?: ProtocolCreateOptions) { super(StoreCodec, libp2p.components); - this.options = options ?? {}; + this.pubSubTopics = options?.pubSubTopics ?? [DefaultPubSubTopic]; } /** @@ -206,12 +207,20 @@ class Store extends BaseProtocol implements IStore { * @throws If not able to reach a Waku Store peer to query, * or if an error is encountered when processing the reply, * or if two decoders with the same content topic are passed. + * + * This API only supports querying a single pubsub topic at a time. + * If multiple decoders are provided, they must all have the same pubsub topic. + * @throws If multiple decoders with different pubsub topics are provided. + * @throws If no decoders are provided. + * @throws If no decoders are found for the provided pubsub topic. */ async *queryGenerator( decoders: IDecoder[], options?: QueryOptions ): AsyncGenerator[]> { - const { pubSubTopic = DefaultPubSubTopic } = this.options; + if (decoders.length === 0) { + throw new Error("No decoders provided"); + } let startTime, endTime; @@ -220,6 +229,33 @@ class Store extends BaseProtocol implements IStore { endTime = options.timeFilter.endTime; } + // convert array to set to remove duplicates + const uniquePubSubTopicsInQuery = Array.from( + new Set(decoders.map((decoder) => decoder.pubSubTopic)) + ); + + // If multiple pubsub topics are provided, throw an error + if (uniquePubSubTopicsInQuery.length > 1) { + throw new Error( + "API does not support querying multiple pubsub topics at once" + ); + } + + // we can be certain that there is only one pubsub topic in the query + const pubSubTopicForQuery = uniquePubSubTopicsInQuery[0]; + + ensurePubsubTopicIsConfigured(pubSubTopicForQuery, this.pubSubTopics); + + // check that the pubSubTopic from the Cursor and Decoder match + if ( + options?.cursor?.pubsubTopic && + options.cursor.pubsubTopic !== pubSubTopicForQuery + ) { + throw new Error( + `Cursor pubsub topic (${options?.cursor?.pubsubTopic}) does not match decoder pubsub topic (${pubSubTopicForQuery})` + ); + } + const decodersAsMap = new Map(); decoders.forEach((dec) => { if (decodersAsMap.has(dec.contentTopic)) { @@ -230,11 +266,17 @@ class Store extends BaseProtocol implements IStore { decodersAsMap.set(dec.contentTopic, dec); }); - const contentTopics = decoders.map((dec) => dec.contentTopic); + const contentTopics = decoders + .filter((decoder) => decoder.pubSubTopic === pubSubTopicForQuery) + .map((dec) => dec.contentTopic); + + if (contentTopics.length === 0) { + throw new Error("No decoders found for topic " + pubSubTopicForQuery); + } const queryOpts = Object.assign( { - pubSubTopic: pubSubTopic, + pubSubTopic: pubSubTopicForQuery, pageDirection: PageDirection.BACKWARD, pageSize: DefaultPageSize }, @@ -365,10 +407,7 @@ async function* paginate( } } -export async function createCursor( - message: IDecodedMessage, - pubsubTopic: string = DefaultPubSubTopic -): Promise { +export async function createCursor(message: IDecodedMessage): Promise { if ( !message || !message.timestamp || @@ -386,7 +425,7 @@ export async function createCursor( return { digest, - pubsubTopic, + pubsubTopic: message.pubSubTopic, senderTime: messageTime, receiverTime: messageTime }; diff --git a/packages/core/src/lib/stream_manager.ts b/packages/core/src/lib/stream_manager.ts index 54d1956a20..fa1c78238b 100644 --- a/packages/core/src/lib/stream_manager.ts +++ b/packages/core/src/lib/stream_manager.ts @@ -6,8 +6,8 @@ import { selectConnection } from "@waku/utils/libp2p"; import debug from "debug"; export class StreamManager { - private streamPool: Map>; - private log: debug.Debugger; + private streamPool: Map>; + private readonly log: debug.Debugger; constructor( public multicodec: string, @@ -38,7 +38,7 @@ export class StreamManager { const stream = await streamPromise; - if (stream.status === "closed") { + if (!stream || stream.status === "closed") { return this.newStream(peer); // fallback by creating a new stream on the spot } @@ -55,7 +55,10 @@ export class StreamManager { } private prepareNewStream(peer: Peer): void { - const streamPromise = this.newStream(peer); + const streamPromise = this.newStream(peer).catch(() => { + // No error thrown as this call is not triggered by the user + this.log(`Failed to prepare a new stream for ${peer.id.toString()}`); + }); this.streamPool.set(peer.id.toString(), streamPromise); } diff --git a/packages/core/src/lib/wait_for_remote_peer.ts b/packages/core/src/lib/wait_for_remote_peer.ts index 6776e734a2..84901e801f 100644 --- a/packages/core/src/lib/wait_for_remote_peer.ts +++ b/packages/core/src/lib/wait_for_remote_peer.ts @@ -9,8 +9,8 @@ const log = debug("waku:wait-for-remote-peer"); /** * Wait for a remote peer to be ready given the passed protocols. * Must be used after attempting to connect to nodes, using - * {@link @waku/core.WakuNode.dial} or a bootstrap method with - * {@link @waku/sdk.createLightNode}. + * {@link @waku/core!WakuNode.dial} or a bootstrap method with + * {@link @waku/sdk!createLightNode}. * * If the passed protocols is a GossipSub protocol, then it resolves only once * a peer is in a mesh, to help ensure that other peers will send and receive @@ -96,15 +96,18 @@ async function waitForConnectedPeer(protocol: IBaseProtocol): Promise { } /** - * Wait for a peer with the given protocol to be connected and in the gossipsub - * mesh. + * Wait for at least one peer with the given protocol to be connected and in the gossipsub + * mesh for all pubSubTopics. */ async function waitForGossipSubPeerInMesh(waku: IRelay): Promise { let peers = waku.getMeshPeers(); + const pubSubTopics = waku.pubSubTopics; - while (peers.length == 0) { - await pEvent(waku.gossipSub, "gossipsub:heartbeat"); - peers = waku.getMeshPeers(); + for (const topic of pubSubTopics) { + while (peers.length == 0) { + await pEvent(waku.gossipSub, "gossipsub:heartbeat"); + peers = waku.getMeshPeers(topic); + } } } diff --git a/packages/core/typedoc.json b/packages/core/typedoc.json new file mode 100644 index 0000000000..00aa3dc064 --- /dev/null +++ b/packages/core/typedoc.json @@ -0,0 +1,4 @@ +{ + "extends": ["../../typedoc.base.json"], + "entryPoints": ["src/index.ts"] +} \ No newline at end of file diff --git a/packages/dns-discovery/karma.conf.cjs b/packages/dns-discovery/karma.conf.cjs index ae373138d6..1acbc3dd2a 100644 --- a/packages/dns-discovery/karma.conf.cjs +++ b/packages/dns-discovery/karma.conf.cjs @@ -1,57 +1,3 @@ -process.env.CHROME_BIN = require("puppeteer").executablePath(); -const webpack = require("webpack"); +const config = require("../../karma.conf.cjs"); -module.exports = function (config) { - config.set({ - frameworks: ["webpack", "mocha"], - files: ["src/**/!(node).spec.ts"], - preprocessors: { - "src/**/!(node).spec.ts": ["webpack"] - }, - envPreprocessor: ["CI"], - reporters: ["progress"], - browsers: ["ChromeHeadless"], - singleRun: true, - client: { - mocha: { - timeout: 6000 // Default is 2s - } - }, - webpack: { - mode: "development", - module: { - rules: [ - { - test: /\.([cm]?ts|tsx)$/, - use: [ - { - loader: "ts-loader", - options: { - configFile: "tsconfig.karma.json" - } - } - ] - } - ] - }, - plugins: [ - new webpack.DefinePlugin({ - "process.env.CI": process.env.CI || false - }), - new webpack.ProvidePlugin({ - process: "process/browser.js" - }) - ], - resolve: { - extensions: [".ts", ".tsx", ".js"], - extensionAlias: { - ".js": [".js", ".ts"], - ".cjs": [".cjs", ".cts"], - ".mjs": [".mjs", ".mts"] - } - }, - stats: { warnings: false }, - devtool: "inline-source-map" - } - }); -}; +module.exports = config; diff --git a/packages/dns-discovery/package.json b/packages/dns-discovery/package.json index a34792e68f..4644c3bad7 100644 --- a/packages/dns-discovery/package.json +++ b/packages/dns-discovery/package.json @@ -48,7 +48,7 @@ "test:browser": "karma start karma.conf.cjs" }, "engines": { - "node": ">=16" + "node": ">=18" }, "dependencies": { "@waku/enr": "0.0.17", @@ -70,18 +70,9 @@ "@waku/interfaces": "0.0.18", "chai": "^4.3.7", "cspell": "^7.3.2", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-webpack": "^5.0.0", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", - "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "typescript": "^5.0.4" - }, - "typedoc": { - "entryPoint": "./src/index.ts" + "rollup": "^3.29.2" }, "files": [ "dist", diff --git a/packages/dns-discovery/src/constants.ts b/packages/dns-discovery/src/constants.ts index ec1378e962..651ecd2f4d 100644 --- a/packages/dns-discovery/src/constants.ts +++ b/packages/dns-discovery/src/constants.ts @@ -1,8 +1,8 @@ import type { NodeCapabilityCount } from "@waku/interfaces"; export const enrTree = { - TEST: "enrtree://AOGECG2SPND25EEFMAJ5WF3KSGJNSGV356DSTL2YVLLZWIV6SAYBM@test.waku.nodes.status.im", - PROD: "enrtree://AOGECG2SPND25EEFMAJ5WF3KSGJNSGV356DSTL2YVLLZWIV6SAYBM@prod.waku.nodes.status.im" + TEST: "enrtree://AO47IDOLBKH72HIZZOXQP6NMRESAN7CHYWIBNXDXWRJRZWLODKII6@test.wakuv2.nodes.status.im", + PROD: "enrtree://ANEDLO25QVUGJOUTQFRYKWX6P4Z4GKVESBMHML7DZ6YK4LGS5FC5O@prod.wakuv2.nodes.status.im" }; export const DEFAULT_BOOTSTRAP_TAG_NAME = "bootstrap"; diff --git a/packages/dns-discovery/typedoc.json b/packages/dns-discovery/typedoc.json new file mode 100644 index 0000000000..00aa3dc064 --- /dev/null +++ b/packages/dns-discovery/typedoc.json @@ -0,0 +1,4 @@ +{ + "extends": ["../../typedoc.base.json"], + "entryPoints": ["src/index.ts"] +} \ No newline at end of file diff --git a/packages/enr/karma.conf.cjs b/packages/enr/karma.conf.cjs index ce0b5fa337..1acbc3dd2a 100644 --- a/packages/enr/karma.conf.cjs +++ b/packages/enr/karma.conf.cjs @@ -1,45 +1,3 @@ -process.env.CHROME_BIN = require("puppeteer").executablePath(); -const webpack = require("webpack"); +const config = require("../../karma.conf.cjs"); -module.exports = function (config) { - config.set({ - frameworks: ["webpack", "mocha"], - files: ["src/**/*.ts"], - preprocessors: { - "src/**/*.ts": ["webpack"] - }, - envPreprocessor: ["CI"], - reporters: ["progress"], - browsers: ["ChromeHeadless"], - singleRun: true, - client: { - mocha: { - timeout: 6000 // Default is 2s - } - }, - webpack: { - mode: "development", - module: { - rules: [{ test: /\.([cm]?ts|tsx)$/, loader: "ts-loader" }] - }, - plugins: [ - new webpack.DefinePlugin({ - "process.env.CI": process.env.CI || false - }), - new webpack.ProvidePlugin({ - process: "process/browser.js" - }) - ], - resolve: { - extensions: [".ts", ".tsx", ".js"], - extensionAlias: { - ".js": [".js", ".ts"], - ".cjs": [".cjs", ".cts"], - ".mjs": [".mjs", ".mts"] - } - }, - stats: { warnings: false }, - devtool: "inline-source-map" - } - }); -}; +module.exports = config; diff --git a/packages/enr/package.json b/packages/enr/package.json index cef769e735..2354f8a982 100644 --- a/packages/enr/package.json +++ b/packages/enr/package.json @@ -48,7 +48,7 @@ "reset-hard": "git clean -dfx -e .idea && git reset --hard && npm i && npm run build" }, "engines": { - "node": ">=16" + "node": ">=18" }, "dependencies": { "@ethersproject/rlp": "^5.7.0", @@ -58,7 +58,7 @@ "@noble/secp256k1": "^1.7.1", "@waku/utils": "0.0.11", "debug": "^4.3.4", - "js-sha3": "^0.8.0" + "js-sha3": "^0.9.2" }, "devDependencies": { "@libp2p/peer-id-factory": "^3.0.3", @@ -71,22 +71,12 @@ "@waku/interfaces": "0.0.18", "chai": "^4.3.7", "cspell": "^7.3.2", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-webpack": "^5.0.0", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", "process": "^0.11.10", - "puppeteer": "^21.1.1", "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "typescript": "^5.0.4", "uint8arrays": "^4.0.4" }, - "typedoc": { - "entryPoint": "./src/index.ts" - }, "files": [ "dist", "bundle", diff --git a/packages/enr/typedoc.json b/packages/enr/typedoc.json new file mode 100644 index 0000000000..00aa3dc064 --- /dev/null +++ b/packages/enr/typedoc.json @@ -0,0 +1,4 @@ +{ + "extends": ["../../typedoc.base.json"], + "entryPoints": ["src/index.ts"] +} \ No newline at end of file diff --git a/packages/interfaces/package.json b/packages/interfaces/package.json index e8e4a854fb..f9e7fc3d31 100644 --- a/packages/interfaces/package.json +++ b/packages/interfaces/package.json @@ -44,18 +44,14 @@ "reset-hard": "git clean -dfx -e .idea && git reset --hard && npm i && npm run build" }, "engines": { - "node": ">=16" + "node": ">=18" }, "devDependencies": { "@chainsafe/libp2p-gossipsub": "^10.1.0", "@multiformats/multiaddr": "^12.0.0", "cspell": "^7.3.2", "npm-run-all": "^4.1.5", - "typescript": "^5.0.4", - "libp2p": "^0.46.9" - }, - "typedoc": { - "entryPoint": "./src/index.ts" + "libp2p": "^0.46.12" }, "files": [ "dist", diff --git a/packages/interfaces/src/message.ts b/packages/interfaces/src/message.ts index eb71a867a1..c9383ffb2b 100644 --- a/packages/interfaces/src/message.ts +++ b/packages/interfaces/src/message.ts @@ -1,3 +1,5 @@ +import type { PubSubTopic } from "./misc.js"; + export interface IRateLimitProof { proof: Uint8Array; merkleRoot: Uint8Array; @@ -36,6 +38,7 @@ export interface IMetaSetter { } export interface EncoderOptions { + pubSubTopic?: PubSubTopic; /** The content topic to set on outgoing messages. */ contentTopic: string; /** @@ -52,6 +55,7 @@ export interface EncoderOptions { } export interface IEncoder { + pubSubTopic: PubSubTopic; contentTopic: string; ephemeral: boolean; toWire: (message: IMessage) => Promise; @@ -61,7 +65,7 @@ export interface IEncoder { export interface IDecodedMessage { payload: Uint8Array; contentTopic: string; - pubSubTopic: string; + pubSubTopic: PubSubTopic; timestamp: Date | undefined; rateLimitProof: IRateLimitProof | undefined; ephemeral: boolean | undefined; @@ -69,6 +73,7 @@ export interface IDecodedMessage { } export interface IDecoder { + pubSubTopic: PubSubTopic; contentTopic: string; fromWireToProtoObj: (bytes: Uint8Array) => Promise; fromProtoObj: ( diff --git a/packages/interfaces/src/protocols.ts b/packages/interfaces/src/protocols.ts index d84172f6e7..059672f7d8 100644 --- a/packages/interfaces/src/protocols.ts +++ b/packages/interfaces/src/protocols.ts @@ -4,6 +4,7 @@ import type { Peer, PeerStore } from "@libp2p/interface/peer-store"; import type { Libp2pOptions } from "libp2p"; import type { IDecodedMessage } from "./message.js"; +import type { PubSubTopic } from "./misc.js"; export enum Protocols { Relay = "relay", @@ -22,24 +23,29 @@ export interface IBaseProtocol { export type ProtocolCreateOptions = { /** - * The PubSub Topic to use. Defaults to {@link @waku/core.DefaultPubSubTopic }. + * Waku supports usage of multiple pubsub topics, but this is still in early stages. + * Waku implements sharding to achieve scalability + * The format of the sharded topic is `/waku/2/rs//` + * To learn more about the sharding specifications implemented, see [Relay Sharding](https://rfc.vac.dev/spec/51/). + * The PubSub Topic to use. Defaults to {@link @waku/core!DefaultPubSubTopic }. * - * One and only one pubsub topic is used by Waku. This is used by: + * If no pubsub topic is specified, the default pubsub topic is used. + * The set of pubsub topics that are used to initialize the Waku node, will need to be used by the protocols as well + * You cannot currently add or remove pubsub topics after initialization. + * This is used by: * - WakuRelay to receive, route and send messages, * - WakuLightPush to send messages, * - WakuStore to retrieve messages. - * - * The usage of the default pubsub topic is recommended. * See [Waku v2 Topic Usage Recommendations](https://rfc.vac.dev/spec/23/) for details. * */ - pubSubTopic?: string; + pubSubTopics?: PubSubTopic[]; /** - * You can pass options to the `Libp2p` instance used by {@link @waku/core.WakuNode} using the `libp2p` property. + * You can pass options to the `Libp2p` instance used by {@link @waku/core!WakuNode} using the `libp2p` property. * This property is the same type as the one passed to [`Libp2p.create`](https://github.com/libp2p/js-libp2p/blob/master/doc/API.md#create) * apart that we made the `modules` property optional and partial, * allowing its omission and letting Waku set good defaults. - * Notes that some values are overridden by {@link @waku/core.WakuNode} to ensure it implements the Waku protocol. + * Notes that some values are overridden by {@link @waku/core!WakuNode} to ensure it implements the Waku protocol. */ libp2p?: Partial; /** @@ -71,6 +77,11 @@ export enum SendError { * Compressing the message or using an alternative strategy for large messages is recommended. */ SIZE_TOO_BIG = "Size is too big", + /** + * The PubSubTopic passed to the send function is not configured on the Waku node. + * Please ensure that the PubSubTopic is used when initializing the Waku node. + */ + TOPIC_NOT_CONFIGURED = "Topic not configured", /** * Failure to find a peer with suitable protocols. This may due to a connection issue. * Mitigation can be: retrying after a given time period, display connectivity issue diff --git a/packages/interfaces/src/receiver.ts b/packages/interfaces/src/receiver.ts index 9dbcc2fde4..4910b5c19c 100644 --- a/packages/interfaces/src/receiver.ts +++ b/packages/interfaces/src/receiver.ts @@ -1,9 +1,12 @@ import type { IDecodedMessage, IDecoder } from "./message.js"; -import type { IAsyncIterator, PubSubTopic, Unsubscribe } from "./misc.js"; +import type { + ContentTopic, + IAsyncIterator, + PubSubTopic, + Unsubscribe +} from "./misc.js"; import type { Callback } from "./protocols.js"; -type ContentTopic = string; - export type ActiveSubscriptions = Map; export interface IReceiver { diff --git a/packages/interfaces/src/relay.ts b/packages/interfaces/src/relay.ts index 522ab19576..f98f219ba4 100644 --- a/packages/interfaces/src/relay.ts +++ b/packages/interfaces/src/relay.ts @@ -1,6 +1,7 @@ import type { GossipSub } from "@chainsafe/libp2p-gossipsub"; import type { PeerIdStr, TopicStr } from "@chainsafe/libp2p-gossipsub/types"; +import { PubSubTopic } from "./misc.js"; import { IReceiver } from "./receiver.js"; import type { ISender } from "./sender.js"; @@ -12,6 +13,7 @@ import type { ISender } from "./sender.js"; * @property getMeshPeers - Function to retrieve the mesh peers for a given topic or all topics if none is specified. Returns an array of peer IDs as strings. */ export interface IRelayAPI { + readonly pubSubTopics: Set; readonly gossipSub: GossipSub; start: () => Promise; getMeshPeers: (topic?: TopicStr) => PeerIdStr[]; diff --git a/packages/interfaces/typedoc.json b/packages/interfaces/typedoc.json new file mode 100644 index 0000000000..00aa3dc064 --- /dev/null +++ b/packages/interfaces/typedoc.json @@ -0,0 +1,4 @@ +{ + "extends": ["../../typedoc.base.json"], + "entryPoints": ["src/index.ts"] +} \ No newline at end of file diff --git a/packages/message-encryption/karma.conf.cjs b/packages/message-encryption/karma.conf.cjs index ce0b5fa337..1acbc3dd2a 100644 --- a/packages/message-encryption/karma.conf.cjs +++ b/packages/message-encryption/karma.conf.cjs @@ -1,45 +1,3 @@ -process.env.CHROME_BIN = require("puppeteer").executablePath(); -const webpack = require("webpack"); +const config = require("../../karma.conf.cjs"); -module.exports = function (config) { - config.set({ - frameworks: ["webpack", "mocha"], - files: ["src/**/*.ts"], - preprocessors: { - "src/**/*.ts": ["webpack"] - }, - envPreprocessor: ["CI"], - reporters: ["progress"], - browsers: ["ChromeHeadless"], - singleRun: true, - client: { - mocha: { - timeout: 6000 // Default is 2s - } - }, - webpack: { - mode: "development", - module: { - rules: [{ test: /\.([cm]?ts|tsx)$/, loader: "ts-loader" }] - }, - plugins: [ - new webpack.DefinePlugin({ - "process.env.CI": process.env.CI || false - }), - new webpack.ProvidePlugin({ - process: "process/browser.js" - }) - ], - resolve: { - extensions: [".ts", ".tsx", ".js"], - extensionAlias: { - ".js": [".js", ".ts"], - ".cjs": [".cjs", ".cts"], - ".mjs": [".mjs", ".mts"] - } - }, - stats: { warnings: false }, - devtool: "inline-source-map" - } - }); -}; +module.exports = config; diff --git a/packages/message-encryption/package.json b/packages/message-encryption/package.json index d58bbd0515..bda18ea52d 100644 --- a/packages/message-encryption/package.json +++ b/packages/message-encryption/package.json @@ -65,7 +65,7 @@ "reset-hard": "git clean -dfx -e .idea && git reset --hard && npm i && npm run build" }, "engines": { - "node": ">=16" + "node": ">=18" }, "browser": { "crypto": false @@ -77,7 +77,7 @@ "@waku/proto": "0.0.5", "@waku/utils": "0.0.11", "debug": "^4.3.4", - "js-sha3": "^0.8.0" + "js-sha3": "^0.9.2" }, "devDependencies": { "@rollup/plugin-commonjs": "^25.0.4", @@ -88,21 +88,11 @@ "@waku/build-utils": "*", "chai": "^4.3.7", "cspell": "^7.3.2", - "fast-check": "^3.12.0", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-webpack": "^5.0.0", + "fast-check": "^3.13.1", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", "process": "^0.11.10", - "puppeteer": "^21.1.1", - "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "typescript": "^5.0.4" - }, - "typedoc": { - "entryPoint": "./src/index.ts" + "rollup": "^3.29.2" }, "files": [ "dist", diff --git a/packages/message-encryption/src/ecies.ts b/packages/message-encryption/src/ecies.ts index 802f201de3..4037cc3740 100644 --- a/packages/message-encryption/src/ecies.ts +++ b/packages/message-encryption/src/ecies.ts @@ -1,5 +1,6 @@ +import { DefaultPubSubTopic } from "@waku/core"; import { Decoder as DecoderV0 } from "@waku/core/lib/message/version_0"; -import { IMetaSetter } from "@waku/interfaces"; +import { IMetaSetter, PubSubTopic } from "@waku/interfaces"; import type { EncoderOptions as BaseEncoderOptions, IDecoder, @@ -32,6 +33,7 @@ const log = debug("waku:message-encryption:ecies"); class Encoder implements IEncoder { constructor( + public pubSubTopic: PubSubTopic, public contentTopic: string, private publicKey: Uint8Array, private sigPrivKey?: Uint8Array, @@ -88,13 +90,14 @@ export interface EncoderOptions extends BaseEncoderOptions { * * An encoder is used to encode messages in the [`14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/) * format to be sent over the Waku network. The resulting encoder can then be - * pass to { @link @waku/interfaces.LightPush.push } or - * { @link @waku/interfaces.Relay.send } to automatically encrypt + * pass to { @link @waku/interfaces!ISender.send } or + * { @link @waku/interfaces!ISender.send } to automatically encrypt * and encode outgoing messages. * The payload can optionally be signed with the given private key as defined * in [26/WAKU2-PAYLOAD](https://rfc.vac.dev/spec/26/). */ export function createEncoder({ + pubSubTopic = DefaultPubSubTopic, contentTopic, publicKey, sigPrivKey, @@ -102,6 +105,7 @@ export function createEncoder({ metaSetter }: EncoderOptions): Encoder { return new Encoder( + pubSubTopic, contentTopic, publicKey, sigPrivKey, @@ -112,10 +116,11 @@ export function createEncoder({ class Decoder extends DecoderV0 implements IDecoder { constructor( + pubSubTopic: PubSubTopic, contentTopic: string, private privateKey: Uint8Array ) { - super(contentTopic); + super(pubSubTopic, contentTopic); } async fromProtoObj( @@ -175,8 +180,7 @@ class Decoder extends DecoderV0 implements IDecoder { * * A decoder is used to decode messages from the [14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/) * format when received from the Waku network. The resulting decoder can then be - * pass to { @link @waku/interfaces.Filter.subscribe } or - * { @link @waku/interfaces.Relay.subscribe } to automatically decrypt and + * pass to { @link @waku/interfaces!IReceiver.subscribe } to automatically decrypt and * decode incoming messages. * * @param contentTopic The resulting decoder will only decode messages with this content topic. @@ -184,7 +188,8 @@ class Decoder extends DecoderV0 implements IDecoder { */ export function createDecoder( contentTopic: string, - privateKey: Uint8Array + privateKey: Uint8Array, + pubSubTopic: PubSubTopic = DefaultPubSubTopic ): Decoder { - return new Decoder(contentTopic, privateKey); + return new Decoder(pubSubTopic, contentTopic, privateKey); } diff --git a/packages/message-encryption/src/symmetric.ts b/packages/message-encryption/src/symmetric.ts index 4eb165fcf7..eb1c2511d2 100644 --- a/packages/message-encryption/src/symmetric.ts +++ b/packages/message-encryption/src/symmetric.ts @@ -1,3 +1,4 @@ +import { DefaultPubSubTopic } from "@waku/core"; import { Decoder as DecoderV0 } from "@waku/core/lib/message/version_0"; import type { EncoderOptions as BaseEncoderOptions, @@ -5,7 +6,8 @@ import type { IEncoder, IMessage, IMetaSetter, - IProtoMessage + IProtoMessage, + PubSubTopic } from "@waku/interfaces"; import { WakuMessage } from "@waku/proto"; import debug from "debug"; @@ -27,6 +29,7 @@ const log = debug("waku:message-encryption:symmetric"); class Encoder implements IEncoder { constructor( + public pubSubTopic: PubSubTopic, public contentTopic: string, private symKey: Uint8Array, private sigPrivKey?: Uint8Array, @@ -83,29 +86,37 @@ export interface EncoderOptions extends BaseEncoderOptions { * * An encoder is used to encode messages in the [`14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/) * format to be sent over the Waku network. The resulting encoder can then be - * pass to { @link @waku/interfaces.LightPush.push } or - * { @link @waku/interfaces.Relay.send } to automatically encrypt + * pass to { @link @waku/interfaces!ISender.send } to automatically encrypt * and encode outgoing messages. * * The payload can optionally be signed with the given private key as defined * in [26/WAKU2-PAYLOAD](https://rfc.vac.dev/spec/26/). */ export function createEncoder({ + pubSubTopic = DefaultPubSubTopic, contentTopic, symKey, sigPrivKey, ephemeral = false, metaSetter }: EncoderOptions): Encoder { - return new Encoder(contentTopic, symKey, sigPrivKey, ephemeral, metaSetter); + return new Encoder( + pubSubTopic, + contentTopic, + symKey, + sigPrivKey, + ephemeral, + metaSetter + ); } class Decoder extends DecoderV0 implements IDecoder { constructor( + pubSubTopic: PubSubTopic, contentTopic: string, private symKey: Uint8Array ) { - super(contentTopic); + super(pubSubTopic, contentTopic); } async fromProtoObj( @@ -165,8 +176,7 @@ class Decoder extends DecoderV0 implements IDecoder { * * A decoder is used to decode messages from the [14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/) * format when received from the Waku network. The resulting decoder can then be - * pass to { @link @waku/interfaces.Filter.subscribe } or - * { @link @waku/interfaces.Relay.subscribe } to automatically decrypt and + * pass to { @link @waku/interfaces!IReceiver.subscribe } to automatically decrypt and * decode incoming messages. * * @param contentTopic The resulting decoder will only decode messages with this content topic. @@ -174,7 +184,8 @@ class Decoder extends DecoderV0 implements IDecoder { */ export function createDecoder( contentTopic: string, - symKey: Uint8Array + symKey: Uint8Array, + pubSubTopic: PubSubTopic = DefaultPubSubTopic ): Decoder { - return new Decoder(contentTopic, symKey); + return new Decoder(pubSubTopic, contentTopic, symKey); } diff --git a/packages/message-encryption/typedoc.json b/packages/message-encryption/typedoc.json new file mode 100644 index 0000000000..00aa3dc064 --- /dev/null +++ b/packages/message-encryption/typedoc.json @@ -0,0 +1,4 @@ +{ + "extends": ["../../typedoc.base.json"], + "entryPoints": ["src/index.ts"] +} \ No newline at end of file diff --git a/packages/message-hash/karma.conf.cjs b/packages/message-hash/karma.conf.cjs index f58788e8af..1acbc3dd2a 100644 --- a/packages/message-hash/karma.conf.cjs +++ b/packages/message-hash/karma.conf.cjs @@ -1,45 +1,3 @@ -process.env.CHROME_BIN = require("puppeteer").executablePath(); -const webpack = require("webpack"); +const config = require("../../karma.conf.cjs"); -module.exports = function (config) { - config.set({ - frameworks: ["webpack", "mocha"], - files: ["src/**/!(node).spec.ts"], - preprocessors: { - "src/**/!(node).spec.ts": ["webpack"] - }, - envPreprocessor: ["CI"], - reporters: ["progress"], - browsers: ["ChromeHeadless"], - singleRun: true, - client: { - mocha: { - timeout: 6000 // Default is 2s - } - }, - webpack: { - mode: "development", - module: { - rules: [{ test: /\.([cm]?ts|tsx)$/, loader: "ts-loader" }] - }, - plugins: [ - new webpack.DefinePlugin({ - "process.env.CI": process.env.CI || false - }), - new webpack.ProvidePlugin({ - process: "process/browser.js" - }) - ], - resolve: { - extensions: [".ts", ".tsx", ".js"], - extensionAlias: { - ".js": [".js", ".ts"], - ".cjs": [".cjs", ".cts"], - ".mjs": [".mjs", ".mts"] - } - }, - stats: { warnings: false }, - devtool: "inline-source-map" - } - }); -}; +module.exports = config; diff --git a/packages/message-hash/package.json b/packages/message-hash/package.json index b1ed547cfd..6a140e3892 100644 --- a/packages/message-hash/package.json +++ b/packages/message-hash/package.json @@ -47,7 +47,7 @@ "reset-hard": "git clean -dfx -e .idea && git reset --hard && npm i && npm run build" }, "engines": { - "node": ">=16" + "node": ">=18" }, "dependencies": { "@noble/hashes": "^1.3.2", @@ -64,24 +64,13 @@ "@waku/interfaces": "0.0.18", "chai": "^4.3.7", "cspell": "^7.3.2", - "fast-check": "^3.12.0", + "fast-check": "^3.13.1", "ignore-loader": "^0.1.2", "isomorphic-fetch": "^3.0.0", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-mocha": "^2.0.1", - "karma-webpack": "^5.0.0", "mocha": "^10.2.0", "npm-run-all": "^4.1.5", "process": "^0.11.10", - "puppeteer": "^21.1.1", - "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "ts-node": "^10.9.1", - "typescript": "^5.0.4" - }, - "typedoc": { - "entryPoint": "./src/index.ts" + "rollup": "^3.29.2" }, "files": [ "dist", diff --git a/packages/message-hash/typedoc.json b/packages/message-hash/typedoc.json new file mode 100644 index 0000000000..00aa3dc064 --- /dev/null +++ b/packages/message-hash/typedoc.json @@ -0,0 +1,4 @@ +{ + "extends": ["../../typedoc.base.json"], + "entryPoints": ["src/index.ts"] +} \ No newline at end of file diff --git a/packages/peer-exchange/package.json b/packages/peer-exchange/package.json index 90928b3ee6..1ce391821b 100644 --- a/packages/peer-exchange/package.json +++ b/packages/peer-exchange/package.json @@ -45,7 +45,7 @@ "reset-hard": "git clean -dfx -e .idea && git reset --hard && npm i && npm run build" }, "engines": { - "node": ">=16" + "node": ">=18" }, "dependencies": { "@libp2p/interfaces": "^3.3.2", @@ -68,13 +68,8 @@ "cspell": "^7.3.2", "npm-run-all": "^4.1.5", "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "typescript": "^5.0.4", "uint8arraylist": "^2.4.3" }, - "typedoc": { - "entryPoint": "./src/index.ts" - }, "files": [ "dist", "bundle", diff --git a/packages/peer-exchange/typedoc.json b/packages/peer-exchange/typedoc.json new file mode 100644 index 0000000000..00aa3dc064 --- /dev/null +++ b/packages/peer-exchange/typedoc.json @@ -0,0 +1,4 @@ +{ + "extends": ["../../typedoc.base.json"], + "entryPoints": ["src/index.ts"] +} \ No newline at end of file diff --git a/packages/proto/package.json b/packages/proto/package.json index b8f33f0b76..cb4308d1cc 100644 --- a/packages/proto/package.json +++ b/packages/proto/package.json @@ -41,7 +41,7 @@ "reset-hard": "git clean -dfx -e .idea && git reset --hard && npm i && npm run build" }, "engines": { - "node": ">=16" + "node": ">=18" }, "dependencies": { "protons-runtime": "^5.0.2" @@ -55,12 +55,8 @@ "npm-run-all": "^4.1.5", "protons": "^7.0.2", "rollup": "^3.29.2", - "typescript": "^5.0.4", "uint8arraylist": "^2.4.3" }, - "typedoc": { - "entryPoint": "./src/index.ts" - }, "files": [ "dist", "bundle", diff --git a/packages/proto/typedoc.json b/packages/proto/typedoc.json new file mode 100644 index 0000000000..00aa3dc064 --- /dev/null +++ b/packages/proto/typedoc.json @@ -0,0 +1,4 @@ +{ + "extends": ["../../typedoc.base.json"], + "entryPoints": ["src/index.ts"] +} \ No newline at end of file diff --git a/packages/relay/package.json b/packages/relay/package.json index a800262600..5551218382 100644 --- a/packages/relay/package.json +++ b/packages/relay/package.json @@ -46,7 +46,7 @@ "reset-hard": "git clean -dfx -e .idea && git reset --hard && npm i && npm run build" }, "engines": { - "node": ">=16" + "node": ">=18" }, "dependencies": { "@chainsafe/libp2p-gossipsub": "^10.1.0", @@ -57,20 +57,14 @@ "@waku/utils": "0.0.11", "chai": "^4.3.7", "debug": "^4.3.4", - "fast-check": "^3.12.0" + "fast-check": "^3.13.1" }, "devDependencies": { "@rollup/plugin-commonjs": "^25.0.4", "@waku/build-utils": "*", "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.1.0", - "rollup": "^3.29.2", - "ts-loader": "^9.4.2", - "ts-node": "^10.9.1", - "typescript": "^5.0.4" - }, - "typedoc": { - "entryPoint": "./src/index.ts" + "rollup": "^3.29.2" }, "files": [ "dist", diff --git a/packages/relay/src/index.ts b/packages/relay/src/index.ts index 20dc7d2f50..bf258c0f6f 100644 --- a/packages/relay/src/index.ts +++ b/packages/relay/src/index.ts @@ -21,10 +21,12 @@ import { IRelay, Libp2p, ProtocolCreateOptions, + PubSubTopic, SendError, SendResult } from "@waku/interfaces"; -import { groupByContentTopic, isSizeValid, toAsyncIterator } from "@waku/utils"; +import { isSizeValid, toAsyncIterator } from "@waku/utils"; +import { pushOrInitMapSet } from "@waku/utils"; import debug from "debug"; import { RelayCodecs } from "./constants.js"; @@ -46,7 +48,7 @@ export type ContentTopic = string; * Throws if libp2p.pubsub does not support Waku Relay */ class Relay implements IRelay { - private readonly pubSubTopic: string; + public readonly pubSubTopics: Set; private defaultDecoder: IDecoder; public static multicodec: string = RelayCodecs[0]; @@ -56,7 +58,7 @@ class Relay implements IRelay { * observers called when receiving new message. * Observers under key `""` are always called. */ - private observers: Map>; + private observers: Map>>; constructor(libp2p: Libp2p, options?: Partial) { if (!this.isRelayPubSub(libp2p.services.pubsub)) { @@ -66,21 +68,22 @@ class Relay implements IRelay { } this.gossipSub = libp2p.services.pubsub as GossipSub; - this.pubSubTopic = options?.pubSubTopic ?? DefaultPubSubTopic; + this.pubSubTopics = new Set(options?.pubSubTopics ?? [DefaultPubSubTopic]); if (this.gossipSub.isStarted()) { - this.gossipSubSubscribe(this.pubSubTopic); + this.subscribeToAllTopics(); } this.observers = new Map(); + // Default PubSubTopic decoder // TODO: User might want to decide what decoder should be used (e.g. for RLN) this.defaultDecoder = new TopicOnlyDecoder(); } /** * Mounts the gossipsub protocol onto the libp2p node - * and subscribes to the default topic. + * and subscribes to all the topics. * * @override * @returns {void} @@ -91,7 +94,7 @@ class Relay implements IRelay { } await this.gossipSub.start(); - this.gossipSubSubscribe(this.pubSubTopic); + this.subscribeToAllTopics(); } /** @@ -99,6 +102,16 @@ class Relay implements IRelay { */ public async send(encoder: IEncoder, message: IMessage): Promise { const recipients: PeerId[] = []; + + const { pubSubTopic } = encoder; + if (!this.pubSubTopics.has(pubSubTopic)) { + log("Failed to send waku relay: topic not configured"); + return { + recipients, + errors: [SendError.TOPIC_NOT_CONFIGURED] + }; + } + if (!isSizeValid(message.payload)) { log("Failed to send waku relay: message is bigger that 1MB"); return { @@ -116,50 +129,49 @@ class Relay implements IRelay { }; } - return this.gossipSub.publish(this.pubSubTopic, msg); + return this.gossipSub.publish(pubSubTopic, msg); } - /** - * Add an observer and associated Decoder to process incoming messages on a given content topic. - * - * @returns Function to delete the observer - */ public subscribe( decoders: IDecoder | IDecoder[], callback: Callback ): () => void { - const contentTopicToObservers = Array.isArray(decoders) - ? toObservers(decoders, callback) - : toObservers([decoders], callback); + const observers: Array<[PubSubTopic, Observer]> = []; - for (const contentTopic of contentTopicToObservers.keys()) { - const currObservers = this.observers.get(contentTopic) || new Set(); - const newObservers = - contentTopicToObservers.get(contentTopic) || new Set(); + for (const decoder of Array.isArray(decoders) ? decoders : [decoders]) { + const { pubSubTopic } = decoder; + const ctObs: Map>> = this.observers.get( + pubSubTopic + ) ?? new Map(); + const observer = { pubSubTopic, decoder, callback }; + pushOrInitMapSet(ctObs, decoder.contentTopic, observer); - this.observers.set(contentTopic, union(currObservers, newObservers)); + this.observers.set(pubSubTopic, ctObs); + observers.push([pubSubTopic, observer]); } return () => { - for (const contentTopic of contentTopicToObservers.keys()) { - const currentObservers = this.observers.get(contentTopic) || new Set(); - const observersToRemove = - contentTopicToObservers.get(contentTopic) || new Set(); - - const nextObservers = leftMinusJoin( - currentObservers, - observersToRemove - ); - - if (nextObservers.size) { - this.observers.set(contentTopic, nextObservers); - } else { - this.observers.delete(contentTopic); - } - } + this.removeObservers(observers); }; } + private removeObservers( + observers: Array<[PubSubTopic, Observer]> + ): void { + for (const [pubSubTopic, observer] of observers) { + const ctObs = this.observers.get(pubSubTopic); + if (!ctObs) continue; + + const contentTopic = observer.decoder.contentTopic; + const _obs = ctObs.get(contentTopic); + if (!_obs) continue; + + _obs.delete(observer); + ctObs.set(contentTopic, _obs); + this.observers.set(pubSubTopic, ctObs); + } + } + public toSubscriptionIterator( decoders: IDecoder | IDecoder[] ): Promise> { @@ -168,12 +180,20 @@ class Relay implements IRelay { public getActiveSubscriptions(): ActiveSubscriptions { const map = new Map(); - map.set(this.pubSubTopic, this.observers.keys()); + for (const pubSubTopic of this.pubSubTopics) { + map.set(pubSubTopic, Array.from(this.observers.keys())); + } return map; } - public getMeshPeers(topic?: TopicStr): PeerIdStr[] { - return this.gossipSub.getMeshPeers(topic ?? this.pubSubTopic); + public getMeshPeers(topic: TopicStr = DefaultPubSubTopic): PeerIdStr[] { + return this.gossipSub.getMeshPeers(topic); + } + + private subscribeToAllTopics(): void { + for (const pubSubTopic of this.pubSubTopics) { + this.gossipSubSubscribe(pubSubTopic); + } } private async processIncomingMessage( @@ -186,12 +206,20 @@ class Relay implements IRelay { return; } - const observers = this.observers.get(topicOnlyMsg.contentTopic) as Set< + // Retrieve the map of content topics for the given pubSubTopic + const contentTopicMap = this.observers.get(pubSubTopic); + if (!contentTopicMap) { + return; + } + + // Retrieve the set of observers for the given contentTopic + const observers = contentTopicMap.get(topicOnlyMsg.contentTopic) as Set< Observer >; if (!observers) { return; } + await Promise.all( Array.from(observers).map(({ decoder, callback }) => { return (async () => { @@ -241,7 +269,7 @@ class Relay implements IRelay { } private isRelayPubSub(pubsub: PubSub | undefined): boolean { - return pubsub?.multicodecs?.includes(Relay.multicodec) || false; + return pubsub?.multicodecs?.includes(Relay.multicodec) ?? false; } } @@ -267,46 +295,3 @@ export function wakuGossipSub( return pubsub; }; } - -function toObservers( - decoders: IDecoder[], - callback: Callback -): Map>> { - const contentTopicToDecoders = Array.from( - groupByContentTopic(decoders).entries() - ); - - const contentTopicToObserversEntries = contentTopicToDecoders.map( - ([contentTopic, decoders]) => - [ - contentTopic, - new Set( - decoders.map( - (decoder) => - ({ - decoder, - callback - }) as Observer - ) - ) - ] as [ContentTopic, Set>] - ); - - return new Map(contentTopicToObserversEntries); -} - -function union(left: Set, right: Set): Set { - for (const val of right.values()) { - left.add(val); - } - return left; -} - -function leftMinusJoin(left: Set, right: Set): Set { - for (const val of right.values()) { - if (left.has(val)) { - left.delete(val); - } - } - return left; -} diff --git a/packages/relay/src/topic_only_message.ts b/packages/relay/src/topic_only_message.ts index 0a81f7a6cd..845280b860 100644 --- a/packages/relay/src/topic_only_message.ts +++ b/packages/relay/src/topic_only_message.ts @@ -1,3 +1,4 @@ +import { DefaultPubSubTopic } from "@waku/core"; import type { IDecodedMessage, IDecoder, @@ -26,6 +27,7 @@ export class TopicOnlyMessage implements IDecodedMessage { } export class TopicOnlyDecoder implements IDecoder { + pubSubTopic = DefaultPubSubTopic; public contentTopic = ""; fromWireToProtoObj(bytes: Uint8Array): Promise { diff --git a/packages/relay/typedoc.json b/packages/relay/typedoc.json new file mode 100644 index 0000000000..00aa3dc064 --- /dev/null +++ b/packages/relay/typedoc.json @@ -0,0 +1,4 @@ +{ + "extends": ["../../typedoc.base.json"], + "entryPoints": ["src/index.ts"] +} \ No newline at end of file diff --git a/packages/sdk/package.json b/packages/sdk/package.json index c38d22b20d..638e6b76f2 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -45,7 +45,7 @@ "reset-hard": "git clean -dfx -e .idea && git reset --hard && npm i && npm run build" }, "engines": { - "node": ">=16" + "node": ">=18" }, "dependencies": { "@chainsafe/libp2p-noise": "^13.0.0", @@ -57,7 +57,7 @@ "@waku/dns-discovery": "0.0.17", "@waku/interfaces": "0.0.18", "@waku/peer-exchange": "^0.0.16", - "libp2p": "^0.46.9" + "libp2p": "^0.46.12" }, "devDependencies": { "@chainsafe/libp2p-gossipsub": "^10.1.0", @@ -68,11 +68,7 @@ "cspell": "^7.3.2", "interface-datastore": "^8.2.5", "npm-run-all": "^4.1.5", - "rollup": "^3.29.2", - "typescript": "^5.0.4" - }, - "typedoc": { - "entryPoint": "./src/index.ts" + "rollup": "^3.29.2" }, "files": [ "dist", diff --git a/packages/sdk/typedoc.json b/packages/sdk/typedoc.json new file mode 100644 index 0000000000..00aa3dc064 --- /dev/null +++ b/packages/sdk/typedoc.json @@ -0,0 +1,4 @@ +{ + "extends": ["../../typedoc.base.json"], + "entryPoints": ["src/index.ts"] +} \ No newline at end of file diff --git a/packages/tests/package.json b/packages/tests/package.json index aa716aa2f1..b5c5a844c8 100644 --- a/packages/tests/package.json +++ b/packages/tests/package.json @@ -47,10 +47,10 @@ "reset-hard": "git clean -dfx -e .idea && git reset --hard && npm i && npm run build" }, "engines": { - "node": ">=16" + "node": ">=18" }, "dependencies": { - "@libp2p/interface-compliance-tests": "^4.0.5", + "@libp2p/interface-compliance-tests": "^4.1.0", "@libp2p/peer-id": "^3.0.2", "@waku/core": "*", "@waku/enr": "*", @@ -60,21 +60,21 @@ "chai-as-promised": "^7.1.1", "debug": "^4.3.4", "dockerode": "^3.3.5", - "p-retry": "^6.0.0", + "lodash": "^4.17.21", + "p-retry": "^6.1.0", "p-timeout": "^6.1.0", "portfinder": "^1.0.32", - "sinon": "^15.2.0", + "sinon": "^16.0.0", "tail": "^2.2.6" }, "devDependencies": { "@libp2p/bootstrap": "^9.0.2", "@types/chai": "^4.3.5", "@types/dockerode": "^3.3.19", + "@types/lodash": "^4.14.199", "@types/mocha": "^10.0.1", "@types/sinon": "^10.0.16", "@types/tail": "^2.2.1", - "@typescript-eslint/eslint-plugin": "^5.57.0", - "@typescript-eslint/parser": "^5.62.0", "@waku/dns-discovery": "*", "@waku/message-encryption": "*", "@waku/peer-exchange": "*", @@ -84,9 +84,8 @@ "datastore-core": "^9.2.3", "debug": "^4.3.4", "interface-datastore": "^8.2.5", - "libp2p": "^0.46.9", + "libp2p": "^0.46.12", "mocha": "^10.2.0", - "npm-run-all": "^4.1.5", - "typescript": "^5.0.4" + "npm-run-all": "^4.1.5" } } diff --git a/packages/tests/src/message_collector.ts b/packages/tests/src/message_collector.ts index d37bb86e85..5b26e56615 100644 --- a/packages/tests/src/message_collector.ts +++ b/packages/tests/src/message_collector.ts @@ -1,7 +1,8 @@ import { DecodedMessage, DefaultPubSubTopic } from "@waku/core"; -import { bytesToUtf8 } from "@waku/utils/bytes"; +import { bytesToUtf8, utf8ToBytes } from "@waku/utils/bytes"; import { AssertionError, expect } from "chai"; import debug from "debug"; +import isEqual from "lodash/isEqual"; import { MessageRpcResponse } from "./node/interfaces.js"; @@ -18,11 +19,7 @@ export class MessageCollector { list: Array = []; callback: (msg: DecodedMessage) => void = () => {}; - constructor( - private contentTopic: string, - private nwaku?: NimGoNode, - private pubSubTopic = DefaultPubSubTopic - ) { + constructor(private nwaku?: NimGoNode) { if (!this.nwaku) { this.callback = (msg: DecodedMessage): void => { log("Got a message"); @@ -39,6 +36,20 @@ export class MessageCollector { return this.list[index]; } + hasMessage(topic: string, text: string): boolean { + return this.list.some((message) => { + if (message.contentTopic !== topic) { + return false; + } + if (typeof message.payload === "string") { + return message.payload === text; + } else if (message.payload instanceof Uint8Array) { + return isEqual(message.payload, utf8ToBytes(text)); + } + return false; + }); + } + // Type guard to determine if a message is of type MessageRpcResponse isMessageRpcResponse( message: MessageRpcResponse | DecodedMessage @@ -51,14 +62,21 @@ export class MessageCollector { async waitForMessages( numMessages: number, - timeoutDuration: number = 400 + options?: { + pubSubTopic?: string; + timeoutDuration?: number; + exact?: boolean; + } ): Promise { const startTime = Date.now(); + const pubSubTopic = options?.pubSubTopic || DefaultPubSubTopic; + const timeoutDuration = options?.timeoutDuration || 400; + const exact = options?.exact || false; while (this.count < numMessages) { if (this.nwaku) { try { - this.list = await this.nwaku.messages(this.pubSubTopic); + this.list = await this.nwaku.messages(pubSubTopic); } catch (error) { log(`Can't retrieve messages because of ${error}`); await delay(10); @@ -72,7 +90,16 @@ export class MessageCollector { await delay(10); } - return true; + if (exact) { + if (this.count == numMessages) { + return true; + } else { + log(`Was expecting exactly ${numMessages} messages`); + return false; + } + } else { + return true; + } } // Verifies a received message against expected values. @@ -96,10 +123,8 @@ export class MessageCollector { const message = this.getMessage(index); expect(message.contentTopic).to.eq( - options.expectedContentTopic || this.contentTopic, - `Message content topic mismatch. Expected: ${ - options.expectedContentTopic || this.contentTopic - }. Got: ${message.contentTopic}` + options.expectedContentTopic, + `Message content topic mismatch. Expected: ${options.expectedContentTopic}. Got: ${message.contentTopic}` ); expect(message.version).to.eq( diff --git a/packages/tests/src/node/interfaces.ts b/packages/tests/src/node/interfaces.ts index 66ba21c71e..253158b410 100644 --- a/packages/tests/src/node/interfaces.ts +++ b/packages/tests/src/node/interfaces.ts @@ -14,7 +14,7 @@ export interface Args { peerExchange?: boolean; discv5Discovery?: boolean; storeMessageDbUrl?: string; - topic?: string; + topic?: Array; rpcPrivate?: boolean; websocketSupport?: boolean; tcpPort?: number; diff --git a/packages/tests/src/node/node.ts b/packages/tests/src/node/node.ts index d8a63fbb7c..68e9a68aeb 100644 --- a/packages/tests/src/node/node.ts +++ b/packages/tests/src/node/node.ts @@ -27,8 +27,7 @@ const WAKU_SERVICE_NODE_PARAMS = process.env.WAKU_SERVICE_NODE_PARAMS ?? undefined; const NODE_READY_LOG_LINE = "Node setup complete"; -const DOCKER_IMAGE_NAME = - process.env.WAKUNODE_IMAGE || "statusteam/nim-waku:v0.19.0"; +const DOCKER_IMAGE_NAME = process.env.WAKUNODE_IMAGE || "wakuorg/nwaku:v0.20.0"; const isGoWaku = DOCKER_IMAGE_NAME.includes("go-waku"); @@ -168,8 +167,8 @@ export class NimGoNode { async startWithRetries( args: Args, options: { - retries: number; - } + retries?: number; + } = { retries: 3 } ): Promise { await pRetry( async () => { @@ -210,14 +209,13 @@ export class NimGoNode { } async ensureSubscriptions( - pubsubTopics: [string] = [DefaultPubSubTopic] + pubsubTopics: string[] = [DefaultPubSubTopic] ): Promise { this.checkProcess(); - return this.rpcCall( - "post_waku_v2_relay_v1_subscriptions", + return this.rpcCall("post_waku_v2_relay_v1_subscriptions", [ pubsubTopics - ); + ]); } async sendMessage( diff --git a/packages/tests/src/run-tests.js b/packages/tests/src/run-tests.js index 4adb866386..4d01ddfe1e 100644 --- a/packages/tests/src/run-tests.js +++ b/packages/tests/src/run-tests.js @@ -3,8 +3,7 @@ import { promisify } from "util"; const execAsync = promisify(exec); -const WAKUNODE_IMAGE = - process.env.WAKUNODE_IMAGE || "statusteam/nim-waku:v0.19.0"; +const WAKUNODE_IMAGE = process.env.WAKUNODE_IMAGE || "wakuorg/nwaku:v0.20.0"; async function main() { try { diff --git a/packages/tests/src/teardown.ts b/packages/tests/src/teardown.ts index caecec6e44..e68782999e 100644 --- a/packages/tests/src/teardown.ts +++ b/packages/tests/src/teardown.ts @@ -1,23 +1,49 @@ import { LightNode } from "@waku/interfaces"; import debug from "debug"; +import pRetry from "p-retry"; import { NimGoNode } from "./index.js"; const log = debug("waku:test"); -export function tearDownNodes( - nwakuNodes: NimGoNode[], - wakuNodes: LightNode[] -): void { - nwakuNodes.forEach((nwaku) => { +export async function tearDownNodes( + nwakuNodes: NimGoNode | NimGoNode[], + wakuNodes: LightNode | LightNode[] +): Promise { + const nNodes = Array.isArray(nwakuNodes) ? nwakuNodes : [nwakuNodes]; + const wNodes = Array.isArray(wakuNodes) ? wakuNodes : [wakuNodes]; + + const stopNwakuNodes = nNodes.map(async (nwaku) => { if (nwaku) { - nwaku.stop().catch((e) => log("Nwaku failed to stop", e)); + await pRetry( + async () => { + try { + await nwaku.stop(); + } catch (error) { + log("Nwaku failed to stop:", error); + throw error; + } + }, + { retries: 3 } + ); } }); - wakuNodes.forEach((waku) => { + const stopWakuNodes = wNodes.map(async (waku) => { if (waku) { - waku.stop().catch((e) => log("Waku failed to stop", e)); + await pRetry( + async () => { + try { + await waku.stop(); + } catch (error) { + log("Waku failed to stop:", error); + throw error; + } + }, + { retries: 3 } + ); } }); + + await Promise.all([...stopNwakuNodes, ...stopWakuNodes]); } diff --git a/packages/tests/tests/connection_manager.spec.ts b/packages/tests/tests/connection_manager.spec.ts index d6fbf4193b..b6e1f50a5e 100644 --- a/packages/tests/tests/connection_manager.spec.ts +++ b/packages/tests/tests/connection_manager.spec.ts @@ -149,10 +149,12 @@ describe("ConnectionManager", function () { let waku: LightNode; this.beforeEach(async function () { + this.timeout(15000); waku = await createLightNode(); }); afterEach(async () => { + this.timeout(15000); await waku.stop(); sinon.restore(); }); diff --git a/packages/tests/tests/filter/multiple_pubsub.node.spec.ts b/packages/tests/tests/filter/multiple_pubsub.node.spec.ts new file mode 100644 index 0000000000..dd0ed193fd --- /dev/null +++ b/packages/tests/tests/filter/multiple_pubsub.node.spec.ts @@ -0,0 +1,149 @@ +import { + createDecoder, + createEncoder, + DefaultPubSubTopic, + waitForRemotePeer +} from "@waku/core"; +import type { IFilterSubscription, LightNode } from "@waku/interfaces"; +import { Protocols } from "@waku/interfaces"; +import { utf8ToBytes } from "@waku/utils/bytes"; +import { expect } from "chai"; + +import { + makeLogFileName, + MessageCollector, + NimGoNode, + tearDownNodes +} from "../../src/index.js"; + +import { + runNodes, + TestContentTopic, + TestDecoder, + TestEncoder +} from "./utils.js"; + +describe("Waku Filter V2: Multiple PubSubtopics", function () { + // Set the timeout for all tests in this suite. Can be overwritten at test level + this.timeout(30000); + let waku: LightNode; + let nwaku: NimGoNode; + let nwaku2: NimGoNode; + let subscription: IFilterSubscription; + let messageCollector: MessageCollector; + const customPubSubTopic = "/waku/2/custom-dapp/proto"; + const customContentTopic = "/test/2/waku-filter"; + const newEncoder = createEncoder({ + pubSubTopic: customPubSubTopic, + contentTopic: customContentTopic + }); + const newDecoder = createDecoder(customContentTopic, customPubSubTopic); + + this.beforeEach(async function () { + this.timeout(15000); + [nwaku, waku] = await runNodes(this, [ + customPubSubTopic, + DefaultPubSubTopic + ]); + subscription = await waku.filter.createSubscription(customPubSubTopic); + messageCollector = new MessageCollector(); + }); + + this.afterEach(async function () { + this.timeout(15000); + await tearDownNodes([nwaku, nwaku2], waku); + }); + + it("Subscribe and receive messages on custom pubsubtopic", async function () { + await subscription.subscribe([newDecoder], messageCollector.callback); + await waku.lightPush.send(newEncoder, { payload: utf8ToBytes("M1") }); + expect(await messageCollector.waitForMessages(1)).to.eq(true); + messageCollector.verifyReceivedMessage(0, { + expectedContentTopic: customContentTopic, + expectedPubSubTopic: customPubSubTopic, + expectedMessageText: "M1" + }); + }); + + it("Subscribe and receive messages on 2 different pubsubtopics", async function () { + await subscription.subscribe([newDecoder], messageCollector.callback); + + // Subscribe from the same lightnode to the 2nd pubSubtopic + const subscription2 = + await waku.filter.createSubscription(DefaultPubSubTopic); + + const messageCollector2 = new MessageCollector(); + + await subscription2.subscribe([TestDecoder], messageCollector2.callback); + + await waku.lightPush.send(newEncoder, { payload: utf8ToBytes("M1") }); + await waku.lightPush.send(TestEncoder, { payload: utf8ToBytes("M2") }); + + expect(await messageCollector.waitForMessages(1)).to.eq(true); + expect(await messageCollector2.waitForMessages(1)).to.eq(true); + + messageCollector.verifyReceivedMessage(0, { + expectedContentTopic: customContentTopic, + expectedPubSubTopic: customPubSubTopic, + expectedMessageText: "M1" + }); + + messageCollector2.verifyReceivedMessage(0, { + expectedContentTopic: TestContentTopic, + expectedPubSubTopic: DefaultPubSubTopic, + expectedMessageText: "M2" + }); + }); + + it("Subscribe and receive messages from 2 nwaku nodes each with different pubsubtopics", async function () { + await subscription.subscribe([newDecoder], messageCollector.callback); + + // Set up and start a new nwaku node with Default PubSubtopic + nwaku2 = new NimGoNode(makeLogFileName(this) + "2"); + await nwaku2.start({ + filter: true, + lightpush: true, + relay: true, + topic: [DefaultPubSubTopic] + }); + await waku.dial(await nwaku2.getMultiaddrWithId()); + await waitForRemotePeer(waku, [Protocols.Filter, Protocols.LightPush]); + + // Subscribe from the same lightnode to the new nwaku on the new pubSubtopic + const subscription2 = await waku.filter.createSubscription( + DefaultPubSubTopic, + await nwaku2.getPeerId() + ); + await nwaku2.ensureSubscriptions([DefaultPubSubTopic]); + + const messageCollector2 = new MessageCollector(); + + await subscription2.subscribe([TestDecoder], messageCollector2.callback); + + // Making sure that messages are send and reveiced for both subscriptions + // While loop is done because of https://github.com/waku-org/js-waku/issues/1606 + while ( + !(await messageCollector.waitForMessages(1, { + pubSubTopic: customPubSubTopic + })) || + !(await messageCollector2.waitForMessages(1, { + pubSubTopic: DefaultPubSubTopic + })) + ) { + await waku.lightPush.send(newEncoder, { payload: utf8ToBytes("M1") }); + await waku.lightPush.send(TestEncoder, { payload: utf8ToBytes("M2") }); + } + + messageCollector.verifyReceivedMessage(0, { + expectedContentTopic: customContentTopic, + expectedPubSubTopic: customPubSubTopic, + expectedMessageText: "M1" + }); + + messageCollector2.verifyReceivedMessage(0, { + expectedContentTopic: TestContentTopic, + expectedPubSubTopic: DefaultPubSubTopic, + expectedMessageText: "M2" + }); + }); +}); diff --git a/packages/tests/tests/filter/ping.node.spec.ts b/packages/tests/tests/filter/ping.node.spec.ts index b35da7281b..843133e5d8 100644 --- a/packages/tests/tests/filter/ping.node.spec.ts +++ b/packages/tests/tests/filter/ping.node.spec.ts @@ -1,3 +1,4 @@ +import { DefaultPubSubTopic } from "@waku/core"; import type { IFilterSubscription, LightNode } from "@waku/interfaces"; import { utf8ToBytes } from "@waku/utils/bytes"; import { expect } from "chai"; @@ -22,13 +23,14 @@ describe("Waku Filter V2: Ping", function () { this.beforeEach(async function () { this.timeout(15000); - [nwaku, waku] = await runNodes(this); + [nwaku, waku] = await runNodes(this, [DefaultPubSubTopic]); subscription = await waku.filter.createSubscription(); - messageCollector = new MessageCollector(TestContentTopic); + messageCollector = new MessageCollector(); }); this.afterEach(async function () { - tearDownNodes([nwaku], [waku]); + this.timeout(15000); + await tearDownNodes(nwaku, waku); }); it("Ping on subscribed peer", async function () { diff --git a/packages/tests/tests/filter/push.node.spec.ts b/packages/tests/tests/filter/push.node.spec.ts index b695193d34..69be141025 100644 --- a/packages/tests/tests/filter/push.node.spec.ts +++ b/packages/tests/tests/filter/push.node.spec.ts @@ -31,13 +31,14 @@ describe("Waku Filter V2: FilterPush", function () { this.beforeEach(async function () { this.timeout(15000); - [nwaku, waku] = await runNodes(this); + [nwaku, waku] = await runNodes(this, [DefaultPubSubTopic]); subscription = await waku.filter.createSubscription(); - messageCollector = new MessageCollector(TestContentTopic); + messageCollector = new MessageCollector(); }); this.afterEach(async function () { - tearDownNodes([nwaku], [waku]); + this.timeout(15000); + await tearDownNodes(nwaku, waku); }); TEST_STRING.forEach((testItem) => { @@ -49,7 +50,8 @@ describe("Waku Filter V2: FilterPush", function () { expect(await messageCollector.waitForMessages(1)).to.eq(true); messageCollector.verifyReceivedMessage(0, { - expectedMessageText: testItem.value + expectedMessageText: testItem.value, + expectedContentTopic: TestContentTopic }); }); }); @@ -71,7 +73,8 @@ describe("Waku Filter V2: FilterPush", function () { expect(await messageCollector.waitForMessages(1)).to.eq(true); messageCollector.verifyReceivedMessage(0, { expectedMessageText: messageText, - checkTimestamp: false + checkTimestamp: false, + expectedContentTopic: TestContentTopic }); // Check if the timestamp matches @@ -217,7 +220,8 @@ describe("Waku Filter V2: FilterPush", function () { expect(await messageCollector.waitForMessages(1)).to.eq(true); messageCollector.verifyReceivedMessage(0, { - expectedMessageText: messageText + expectedMessageText: messageText, + expectedContentTopic: TestContentTopic }); }); @@ -245,10 +249,12 @@ describe("Waku Filter V2: FilterPush", function () { // Confirm both messages were received. expect(await messageCollector.waitForMessages(2)).to.eq(true); messageCollector.verifyReceivedMessage(0, { - expectedMessageText: "M1" + expectedMessageText: "M1", + expectedContentTopic: TestContentTopic }); messageCollector.verifyReceivedMessage(1, { - expectedMessageText: "M2" + expectedMessageText: "M2", + expectedContentTopic: TestContentTopic }); }); @@ -268,10 +274,12 @@ describe("Waku Filter V2: FilterPush", function () { // Confirm both messages were received. expect(await messageCollector.waitForMessages(2)).to.eq(true); messageCollector.verifyReceivedMessage(0, { - expectedMessageText: "M1" + expectedMessageText: "M1", + expectedContentTopic: TestContentTopic }); messageCollector.verifyReceivedMessage(1, { - expectedMessageText: "M2" + expectedMessageText: "M2", + expectedContentTopic: TestContentTopic }); }); }); diff --git a/packages/tests/tests/filter/subscribe.node.spec.ts b/packages/tests/tests/filter/subscribe.node.spec.ts index 0ded20d724..ebb2f072a8 100644 --- a/packages/tests/tests/filter/subscribe.node.spec.ts +++ b/packages/tests/tests/filter/subscribe.node.spec.ts @@ -39,16 +39,17 @@ describe("Waku Filter V2: Subscribe", function () { this.beforeEach(async function () { this.timeout(15000); - [nwaku, waku] = await runNodes(this); + [nwaku, waku] = await runNodes(this, [DefaultPubSubTopic]); subscription = await waku.filter.createSubscription(); - messageCollector = new MessageCollector(TestContentTopic); + messageCollector = new MessageCollector(); // Nwaku subscribe to the default pubsub topic await nwaku.ensureSubscriptions(); }); this.afterEach(async function () { - tearDownNodes([nwaku, nwaku2], [waku]); + this.timeout(15000); + await tearDownNodes([nwaku, nwaku2], waku); }); it("Subscribe and receive messages via lightPush", async function () { @@ -58,7 +59,8 @@ describe("Waku Filter V2: Subscribe", function () { expect(await messageCollector.waitForMessages(1)).to.eq(true); messageCollector.verifyReceivedMessage(0, { - expectedMessageText: messageText + expectedMessageText: messageText, + expectedContentTopic: TestContentTopic }); expect((await nwaku.messages()).length).to.eq(1); }); @@ -78,7 +80,8 @@ describe("Waku Filter V2: Subscribe", function () { expect(await messageCollector.waitForMessages(1)).to.eq(true); messageCollector.verifyReceivedMessage(0, { - expectedMessageText: messageText + expectedMessageText: messageText, + expectedContentTopic: TestContentTopic }); expect((await nwaku.messages()).length).to.eq(1); }); @@ -90,7 +93,8 @@ describe("Waku Filter V2: Subscribe", function () { expect(await messageCollector.waitForMessages(1)).to.eq(true); messageCollector.verifyReceivedMessage(0, { - expectedMessageText: messageText + expectedMessageText: messageText, + expectedContentTopic: TestContentTopic }); // Send another message on the same topic. @@ -102,7 +106,8 @@ describe("Waku Filter V2: Subscribe", function () { // Verify that the second message was successfully received. expect(await messageCollector.waitForMessages(2)).to.eq(true); messageCollector.verifyReceivedMessage(1, { - expectedMessageText: newMessageText + expectedMessageText: newMessageText, + expectedContentTopic: TestContentTopic }); expect((await nwaku.messages()).length).to.eq(2); }); @@ -113,7 +118,8 @@ describe("Waku Filter V2: Subscribe", function () { await waku.lightPush.send(TestEncoder, messagePayload); expect(await messageCollector.waitForMessages(1)).to.eq(true); messageCollector.verifyReceivedMessage(0, { - expectedMessageText: messageText + expectedMessageText: messageText, + expectedContentTopic: TestContentTopic }); // Modify subscription to include a new content topic and send a message. @@ -136,7 +142,8 @@ describe("Waku Filter V2: Subscribe", function () { await waku.lightPush.send(TestEncoder, newMessagePayload); expect(await messageCollector.waitForMessages(3)).to.eq(true); messageCollector.verifyReceivedMessage(2, { - expectedMessageText: newMessageText + expectedMessageText: newMessageText, + expectedContentTopic: TestContentTopic }); expect((await nwaku.messages()).length).to.eq(3); }); @@ -258,10 +265,12 @@ describe("Waku Filter V2: Subscribe", function () { // Confirm both messages were received. expect(await messageCollector.waitForMessages(2)).to.eq(true); messageCollector.verifyReceivedMessage(0, { - expectedMessageText: "M1" + expectedMessageText: "M1", + expectedContentTopic: TestContentTopic }); messageCollector.verifyReceivedMessage(1, { - expectedMessageText: "M2" + expectedMessageText: "M2", + expectedContentTopic: TestContentTopic }); }); @@ -298,7 +307,8 @@ describe("Waku Filter V2: Subscribe", function () { // Check if both messages were received expect(await messageCollector.waitForMessages(2)).to.eq(true); messageCollector.verifyReceivedMessage(0, { - expectedMessageText: "M1" + expectedMessageText: "M1", + expectedContentTopic: TestContentTopic }); messageCollector.verifyReceivedMessage(1, { expectedContentTopic: newContentTopic, @@ -306,38 +316,33 @@ describe("Waku Filter V2: Subscribe", function () { }); }); - // this test fail 50% of times with messageCount being 1. Seems like a message is lost somehow - it.skip("Subscribe and receive messages from multiple nwaku nodes", async function () { + it("Subscribe and receive messages from multiple nwaku nodes", async function () { await subscription.subscribe([TestDecoder], messageCollector.callback); - await waku.lightPush.send(TestEncoder, { payload: utf8ToBytes("M1") }); - expect(await messageCollector.waitForMessages(1)).to.eq(true); // Set up and start a new nwaku node nwaku2 = new NimGoNode(makeLogFileName(this) + "2"); await nwaku2.start({ filter: true, lightpush: true, relay: true }); - await waku.dial(await nwaku2.getMultiaddrWithId()); await waitForRemotePeer(waku, [Protocols.Filter, Protocols.LightPush]); const subscription2 = await waku.filter.createSubscription( DefaultPubSubTopic, await nwaku2.getPeerId() ); - + await nwaku2.ensureSubscriptions([DefaultPubSubTopic]); // Send a message using the new subscription const newContentTopic = "/test/2/waku-filter"; const newEncoder = createEncoder({ contentTopic: newContentTopic }); const newDecoder = createDecoder(newContentTopic); await subscription2.subscribe([newDecoder], messageCollector.callback); - await waku.lightPush.send(newEncoder, { payload: utf8ToBytes("M2") }); + + // Making sure that messages are send and reveiced for both subscriptions + while (!(await messageCollector.waitForMessages(2))) { + await waku.lightPush.send(TestEncoder, { payload: utf8ToBytes("M1") }); + await waku.lightPush.send(newEncoder, { payload: utf8ToBytes("M2") }); + } // Check if both messages were received - expect(await messageCollector.waitForMessages(2)).to.eq(true); - messageCollector.verifyReceivedMessage(0, { - expectedMessageText: "M1" - }); - messageCollector.verifyReceivedMessage(1, { - expectedContentTopic: newContentTopic, - expectedMessageText: "M2" - }); + expect(messageCollector.hasMessage(TestContentTopic, "M1")).to.eq(true); + expect(messageCollector.hasMessage(newContentTopic, "M2")).to.eq(true); }); }); diff --git a/packages/tests/tests/filter/unsubscribe.node.spec.ts b/packages/tests/tests/filter/unsubscribe.node.spec.ts index b1591c2911..b79d3e313e 100644 --- a/packages/tests/tests/filter/unsubscribe.node.spec.ts +++ b/packages/tests/tests/filter/unsubscribe.node.spec.ts @@ -1,4 +1,4 @@ -import { createDecoder, createEncoder } from "@waku/core"; +import { createDecoder, createEncoder, DefaultPubSubTopic } from "@waku/core"; import type { IFilterSubscription, LightNode } from "@waku/interfaces"; import { utf8ToBytes } from "@waku/utils/bytes"; import { expect } from "chai"; @@ -25,16 +25,17 @@ describe("Waku Filter V2: Unsubscribe", function () { this.beforeEach(async function () { this.timeout(15000); - [nwaku, waku] = await runNodes(this); + [nwaku, waku] = await runNodes(this, [DefaultPubSubTopic]); subscription = await waku.filter.createSubscription(); - messageCollector = new MessageCollector(TestContentTopic); + messageCollector = new MessageCollector(); // Nwaku subscribe to the default pubsub topic await nwaku.ensureSubscriptions(); }); this.afterEach(async function () { - tearDownNodes([nwaku], [waku]); + this.timeout(15000); + await tearDownNodes(nwaku, waku); }); it("Unsubscribe 1 topic - node subscribed to 1 topic", async function () { @@ -49,7 +50,8 @@ describe("Waku Filter V2: Unsubscribe", function () { // Check that from 2 messages send only the 1st was received messageCollector.verifyReceivedMessage(0, { - expectedMessageText: messageText + expectedMessageText: messageText, + expectedContentTopic: TestContentTopic }); expect(messageCollector.count).to.eq(1); expect((await nwaku.messages()).length).to.eq(2); diff --git a/packages/tests/tests/filter/utils.ts b/packages/tests/tests/filter/utils.ts index 988bf49dbb..b1a8c102e4 100644 --- a/packages/tests/tests/filter/utils.ts +++ b/packages/tests/tests/filter/utils.ts @@ -64,14 +64,17 @@ export async function validatePingError( } export async function runNodes( - currentTest: Context + context: Context, + pubSubTopics: string[] ): Promise<[NimGoNode, LightNode]> { - const nwaku = new NimGoNode(makeLogFileName(currentTest)); + const nwaku = new NimGoNode(makeLogFileName(context)); + await nwaku.startWithRetries( { filter: true, lightpush: true, - relay: true + relay: true, + topic: pubSubTopics }, { retries: 3 } ); @@ -79,6 +82,7 @@ export async function runNodes( let waku: LightNode | undefined; try { waku = await createLightNode({ + pubSubTopics: pubSubTopics, staticNoiseKey: NOISE_KEY_1, libp2p: { addresses: { listen: ["/ip4/0.0.0.0/tcp/0/ws"] } } }); @@ -90,6 +94,7 @@ export async function runNodes( if (waku) { await waku.dial(await nwaku.getMultiaddrWithId()); await waitForRemotePeer(waku, [Protocols.Filter, Protocols.LightPush]); + await nwaku.ensureSubscriptions(pubSubTopics); return [nwaku, waku]; } else { throw new Error("Failed to initialize waku"); diff --git a/packages/tests/tests/light-push/custom_pubsub.node.spec.ts b/packages/tests/tests/light-push/custom_pubsub.node.spec.ts deleted file mode 100644 index fa36bad14d..0000000000 --- a/packages/tests/tests/light-push/custom_pubsub.node.spec.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { LightNode } from "@waku/interfaces"; -import { utf8ToBytes } from "@waku/utils/bytes"; -import { expect } from "chai"; - -import { MessageCollector, NimGoNode, tearDownNodes } from "../../src/index.js"; - -import { - messageText, - runNodes, - TestContentTopic, - TestEncoder -} from "./utils.js"; - -describe("Waku Light Push [node only] - custom pubsub topic", function () { - this.timeout(15000); - let waku: LightNode; - let nwaku: NimGoNode; - let messageCollector: MessageCollector; - const customPubSubTopic = "/waku/2/custom-dapp/proto"; - - beforeEach(async function () { - [nwaku, waku] = await runNodes(this, customPubSubTopic); - messageCollector = new MessageCollector( - TestContentTopic, - nwaku, - customPubSubTopic - ); - }); - - this.afterEach(async function () { - tearDownNodes([nwaku], [waku]); - }); - - it("Push message", async function () { - const nimPeerId = await nwaku.getPeerId(); - - const pushResponse = await waku.lightPush.send(TestEncoder, { - payload: utf8ToBytes(messageText) - }); - - expect(pushResponse.recipients[0].toString()).to.eq(nimPeerId.toString()); - - expect(await messageCollector.waitForMessages(1)).to.eq(true); - messageCollector.verifyReceivedMessage(0, { - expectedMessageText: messageText, - expectedContentTopic: TestContentTopic - }); - }); -}); diff --git a/packages/tests/tests/light-push/index.spec.ts b/packages/tests/tests/light-push/index.node.spec.ts similarity index 88% rename from packages/tests/tests/light-push/index.spec.ts rename to packages/tests/tests/light-push/index.node.spec.ts index e43207bd9f..4e47a4b451 100644 --- a/packages/tests/tests/light-push/index.spec.ts +++ b/packages/tests/tests/light-push/index.node.spec.ts @@ -19,7 +19,7 @@ import { TestEncoder } from "./utils.js"; -describe("Waku Light Push [node only]", function () { +describe("Waku Light Push", function () { // Set the timeout for all tests in this suite. Can be overwritten at test level this.timeout(15000); let waku: LightNode; @@ -28,16 +28,15 @@ describe("Waku Light Push [node only]", function () { this.beforeEach(async function () { this.timeout(15000); - [nwaku, waku] = await runNodes(this); - messageCollector = new MessageCollector( - TestContentTopic, - nwaku, - DefaultPubSubTopic - ); + [nwaku, waku] = await runNodes(this, [DefaultPubSubTopic]); + messageCollector = new MessageCollector(nwaku); + + await nwaku.ensureSubscriptions(); }); this.afterEach(async function () { - tearDownNodes([nwaku], [waku]); + this.timeout(15000); + await tearDownNodes(nwaku, waku); }); TEST_STRING.forEach((testItem) => { @@ -49,7 +48,8 @@ describe("Waku Light Push [node only]", function () { expect(await messageCollector.waitForMessages(1)).to.eq(true); messageCollector.verifyReceivedMessage(0, { - expectedMessageText: testItem.value + expectedMessageText: testItem.value, + expectedContentTopic: TestContentTopic }); }); }); @@ -68,7 +68,8 @@ describe("Waku Light Push [node only]", function () { for (let i = 0; i < 30; i++) { messageCollector.verifyReceivedMessage(i, { - expectedMessageText: generateMessageText(i) + expectedMessageText: generateMessageText(i), + expectedContentTopic: TestContentTopic }); } }); @@ -82,7 +83,8 @@ describe("Waku Light Push [node only]", function () { expect(pushResponse.recipients.length).to.eq(1); expect(await messageCollector.waitForMessages(1)).to.eq(true); messageCollector.verifyReceivedMessage(0, { - expectedMessageText: undefined + expectedMessageText: undefined, + expectedContentTopic: TestContentTopic }); } else { expect(pushResponse.recipients.length).to.eq(0); @@ -136,7 +138,8 @@ describe("Waku Light Push [node only]", function () { expect(await messageCollector.waitForMessages(1)).to.eq(true); messageCollector.verifyReceivedMessage(0, { - expectedMessageText: messageText + expectedMessageText: messageText, + expectedContentTopic: TestContentTopic }); }); @@ -155,7 +158,8 @@ describe("Waku Light Push [node only]", function () { expect(pushResponse.recipients.length).to.eq(1); expect(await messageCollector.waitForMessages(1)).to.eq(true); messageCollector.verifyReceivedMessage(0, { - expectedMessageText: messageText + expectedMessageText: messageText, + expectedContentTopic: TestContentTopic }); } else { expect(pushResponse.recipients.length).to.eq(0); @@ -184,7 +188,8 @@ describe("Waku Light Push [node only]", function () { expect(await messageCollector.waitForMessages(1)).to.eq(true); messageCollector.verifyReceivedMessage(0, { - expectedMessageText: messageText + expectedMessageText: messageText, + expectedContentTopic: TestContentTopic }); }); @@ -204,7 +209,8 @@ describe("Waku Light Push [node only]", function () { expect(await messageCollector.waitForMessages(1)).to.eq(true); messageCollector.verifyReceivedMessage(0, { expectedMessageText: messageText, - expectedTimestamp: customTimeNanos + expectedTimestamp: customTimeNanos, + expectedContentTopic: TestContentTopic }); }); }); diff --git a/packages/tests/tests/light-push/multiple_pubsub.node.spec.ts b/packages/tests/tests/light-push/multiple_pubsub.node.spec.ts new file mode 100644 index 0000000000..05f8f5068a --- /dev/null +++ b/packages/tests/tests/light-push/multiple_pubsub.node.spec.ts @@ -0,0 +1,156 @@ +import type { PeerId } from "@libp2p/interface/peer-id"; +import { + createEncoder, + DefaultPubSubTopic, + waitForRemotePeer +} from "@waku/core"; +import { LightNode, Protocols, SendResult } from "@waku/interfaces"; +import { utf8ToBytes } from "@waku/utils/bytes"; +import { expect } from "chai"; + +import { + makeLogFileName, + MessageCollector, + NimGoNode, + tearDownNodes +} from "../../src/index.js"; + +import { + messageText, + runNodes, + TestContentTopic, + TestEncoder +} from "./utils.js"; + +describe("Waku Light Push : Multiple PubSubtopics", function () { + this.timeout(30000); + let waku: LightNode; + let nwaku: NimGoNode; + let nwaku2: NimGoNode; + let messageCollector: MessageCollector; + const customPubSubTopic = "/waku/2/custom-dapp/proto"; + const customContentTopic = "/test/2/waku-light-push/utf8"; + const customEncoder = createEncoder({ + contentTopic: customContentTopic, + pubSubTopic: customPubSubTopic + }); + let nimPeerId: PeerId; + + this.beforeEach(async function () { + this.timeout(15000); + [nwaku, waku] = await runNodes(this, [ + customPubSubTopic, + DefaultPubSubTopic + ]); + messageCollector = new MessageCollector(nwaku); + nimPeerId = await nwaku.getPeerId(); + }); + + this.afterEach(async function () { + this.timeout(15000); + await tearDownNodes([nwaku, nwaku2], waku); + }); + + it("Push message on custom pubSubTopic", async function () { + const pushResponse = await waku.lightPush.send(customEncoder, { + payload: utf8ToBytes(messageText) + }); + + expect(pushResponse.recipients[0].toString()).to.eq(nimPeerId.toString()); + + expect( + await messageCollector.waitForMessages(1, { + pubSubTopic: customPubSubTopic + }) + ).to.eq(true); + messageCollector.verifyReceivedMessage(0, { + expectedMessageText: messageText, + expectedContentTopic: customContentTopic + }); + }); + + it("Subscribe and receive messages on 2 different pubsubtopics", async function () { + const pushResponse1 = await waku.lightPush.send(customEncoder, { + payload: utf8ToBytes("M1") + }); + const pushResponse2 = await waku.lightPush.send(TestEncoder, { + payload: utf8ToBytes("M2") + }); + expect(pushResponse1.recipients[0].toString()).to.eq(nimPeerId.toString()); + expect(pushResponse2.recipients[0].toString()).to.eq(nimPeerId.toString()); + + const messageCollector2 = new MessageCollector(nwaku); + + expect( + await messageCollector.waitForMessages(1, { + pubSubTopic: customPubSubTopic + }) + ).to.eq(true); + + expect( + await messageCollector2.waitForMessages(1, { + pubSubTopic: DefaultPubSubTopic + }) + ).to.eq(true); + + messageCollector.verifyReceivedMessage(0, { + expectedMessageText: "M1", + expectedContentTopic: customContentTopic, + expectedPubSubTopic: customPubSubTopic + }); + messageCollector2.verifyReceivedMessage(0, { + expectedMessageText: "M2", + expectedContentTopic: TestContentTopic, + expectedPubSubTopic: DefaultPubSubTopic + }); + }); + + it("Light push messages to 2 nwaku nodes each with different pubsubtopics", async function () { + // Set up and start a new nwaku node with Default PubSubtopic + nwaku2 = new NimGoNode(makeLogFileName(this) + "2"); + await nwaku2.start({ + filter: true, + lightpush: true, + relay: true, + topic: [DefaultPubSubTopic] + }); + await nwaku2.ensureSubscriptions([DefaultPubSubTopic]); + await waku.dial(await nwaku2.getMultiaddrWithId()); + await waitForRemotePeer(waku, [Protocols.LightPush]); + + const messageCollector2 = new MessageCollector(nwaku2); + + let pushResponse1: SendResult; + let pushResponse2: SendResult; + // Making sure that we send messages to both nwaku nodes + // While loop is done because of https://github.com/waku-org/js-waku/issues/1606 + while ( + !(await messageCollector.waitForMessages(1, { + pubSubTopic: customPubSubTopic + })) || + !(await messageCollector2.waitForMessages(1, { + pubSubTopic: DefaultPubSubTopic + })) || + pushResponse1!.recipients[0].toString() === + pushResponse2!.recipients[0].toString() + ) { + pushResponse1 = await waku.lightPush.send(customEncoder, { + payload: utf8ToBytes("M1") + }); + pushResponse2 = await waku.lightPush.send(TestEncoder, { + payload: utf8ToBytes("M2") + }); + } + + messageCollector.verifyReceivedMessage(0, { + expectedMessageText: "M1", + expectedContentTopic: customContentTopic, + expectedPubSubTopic: customPubSubTopic + }); + messageCollector2.verifyReceivedMessage(0, { + expectedMessageText: "M2", + expectedContentTopic: TestContentTopic, + expectedPubSubTopic: DefaultPubSubTopic + }); + }); +}); diff --git a/packages/tests/tests/light-push/utils.ts b/packages/tests/tests/light-push/utils.ts index cbe4cc32cb..548dd34e4f 100644 --- a/packages/tests/tests/light-push/utils.ts +++ b/packages/tests/tests/light-push/utils.ts @@ -14,23 +14,18 @@ export const messagePayload = { payload: utf8ToBytes(messageText) }; export async function runNodes( context: Mocha.Context, - pubSubTopic?: string + pubSubTopics: string[] ): Promise<[NimGoNode, LightNode]> { - const nwakuOptional = pubSubTopic ? { topic: pubSubTopic } : {}; const nwaku = new NimGoNode(makeLogFileName(context)); await nwaku.startWithRetries( - { - lightpush: true, - relay: true, - ...nwakuOptional - }, + { lightpush: true, relay: true, topic: pubSubTopics }, { retries: 3 } ); let waku: LightNode | undefined; try { waku = await createLightNode({ - pubSubTopic, + pubSubTopics: pubSubTopics, staticNoiseKey: NOISE_KEY_1 }); await waku.start(); @@ -41,6 +36,7 @@ export async function runNodes( if (waku) { await waku.dial(await nwaku.getMultiaddrWithId()); await waitForRemotePeer(waku, [Protocols.LightPush]); + await nwaku.ensureSubscriptions(pubSubTopics); return [nwaku, waku]; } else { throw new Error("Failed to initialize waku"); diff --git a/packages/tests/tests/multiaddr.node.spec.ts b/packages/tests/tests/multiaddr.node.spec.ts new file mode 100644 index 0000000000..352a9b1673 --- /dev/null +++ b/packages/tests/tests/multiaddr.node.spec.ts @@ -0,0 +1,40 @@ +import { multiaddr } from "@multiformats/multiaddr"; +import type { Waku } from "@waku/interfaces"; +import { createLightNode } from "@waku/sdk"; +import { expect } from "chai"; + +import { NimGoNode } from "../src/index.js"; + +describe("dials multiaddr", function () { + let waku: Waku; + let nwaku: NimGoNode; + + afterEach(async function () { + !!nwaku && + nwaku.stop().catch((e) => console.log("Nwaku failed to stop", e)); + !!waku && waku.stop().catch((e) => console.log("Waku failed to stop", e)); + }); + + it("TLS", async function () { + this.timeout(20_000); + + let tlsWorks = true; + + waku = await createLightNode(); + await waku.start(); + try { + // dummy multiaddr, doesn't have to be valid + await waku.dial(multiaddr(`/ip4/127.0.0.1/tcp/30303/tls/ws`)); + } catch (error) { + if (error instanceof Error) { + // if the error is of tls unsupported, the test should fail + // for any other dial errors, the test should pass + if (error.message === "Unsupported protocol tls") { + tlsWorks = false; + } + } + } + + expect(tlsWorks).to.eq(true); + }); +}); diff --git a/packages/tests/tests/relay.node.spec.ts b/packages/tests/tests/relay.node.spec.ts index 4d48f477f6..8d6fae2f50 100644 --- a/packages/tests/tests/relay.node.spec.ts +++ b/packages/tests/tests/relay.node.spec.ts @@ -27,6 +27,7 @@ import debug from "debug"; import { delay, makeLogFileName, + MessageCollector, NOISE_KEY_1, NOISE_KEY_2, NOISE_KEY_3 @@ -259,6 +260,16 @@ describe("Waku Relay [node only]", () => { let waku1: RelayNode; let waku2: RelayNode; let waku3: RelayNode; + + const CustomContentTopic = "/test/2/waku-relay/utf8"; + const CustomPubSubTopic = "/some/pubsub/topic"; + + const CustomEncoder = createEncoder({ + contentTopic: CustomContentTopic, + pubSubTopic: CustomPubSubTopic + }); + const CustomDecoder = createDecoder(CustomContentTopic, CustomPubSubTopic); + afterEach(async function () { !!waku1 && waku1.stop().catch((e) => console.log("Waku failed to stop", e)); @@ -268,20 +279,196 @@ describe("Waku Relay [node only]", () => { waku3.stop().catch((e) => console.log("Waku failed to stop", e)); }); - it("Publish", async function () { + [ + { + pubsub: CustomPubSubTopic, + encoder: CustomEncoder, + decoder: CustomDecoder + }, + { + pubsub: DefaultPubSubTopic, + encoder: TestEncoder, + decoder: TestDecoder + } + ].forEach((testItem) => { + it(`3 nodes on ${testItem.pubsub} topic`, async function () { + this.timeout(10000); + + const [msgCollector1, msgCollector2, msgCollector3] = Array(3) + .fill(null) + .map(() => new MessageCollector()); + + [waku1, waku2, waku3] = await Promise.all([ + createRelayNode({ + pubSubTopics: [testItem.pubsub], + staticNoiseKey: NOISE_KEY_1 + }).then((waku) => waku.start().then(() => waku)), + createRelayNode({ + pubSubTopics: [testItem.pubsub], + staticNoiseKey: NOISE_KEY_2, + libp2p: { addresses: { listen: ["/ip4/0.0.0.0/tcp/0/ws"] } } + }).then((waku) => waku.start().then(() => waku)), + createRelayNode({ + pubSubTopics: [testItem.pubsub], + staticNoiseKey: NOISE_KEY_3 + }).then((waku) => waku.start().then(() => waku)) + ]); + + await waku1.libp2p.peerStore.merge(waku2.libp2p.peerId, { + multiaddrs: waku2.libp2p.getMultiaddrs() + }); + await waku3.libp2p.peerStore.merge(waku2.libp2p.peerId, { + multiaddrs: waku2.libp2p.getMultiaddrs() + }); + await Promise.all([ + waku1.dial(waku2.libp2p.peerId), + waku3.dial(waku2.libp2p.peerId) + ]); + + await Promise.all([ + waitForRemotePeer(waku1, [Protocols.Relay]), + waitForRemotePeer(waku2, [Protocols.Relay]), + waitForRemotePeer(waku3, [Protocols.Relay]) + ]); + + await waku1.relay.subscribe([testItem.decoder], msgCollector1.callback); + await waku2.relay.subscribe([testItem.decoder], msgCollector2.callback); + await waku3.relay.subscribe([testItem.decoder], msgCollector3.callback); + + // The nodes are setup in such a way that all messages send should be relayed to the other nodes in the network + const relayResponse1 = await waku1.relay.send(testItem.encoder, { + payload: utf8ToBytes("M1") + }); + const relayResponse2 = await waku2.relay.send(testItem.encoder, { + payload: utf8ToBytes("M2") + }); + const relayResponse3 = await waku3.relay.send(testItem.encoder, { + payload: utf8ToBytes("M3") + }); + + expect(relayResponse1.recipients[0].toString()).to.eq( + waku2.libp2p.peerId.toString() + ); + expect(relayResponse3.recipients[0].toString()).to.eq( + waku2.libp2p.peerId.toString() + ); + expect(relayResponse2.recipients.map((r) => r.toString())).to.include( + waku1.libp2p.peerId.toString() + ); + expect(relayResponse2.recipients.map((r) => r.toString())).to.include( + waku3.libp2p.peerId.toString() + ); + + expect(await msgCollector1.waitForMessages(2, { exact: true })).to.eq( + true + ); + expect(await msgCollector2.waitForMessages(2, { exact: true })).to.eq( + true + ); + expect(await msgCollector3.waitForMessages(2, { exact: true })).to.eq( + true + ); + + expect(msgCollector1.hasMessage(testItem.pubsub, "M2")).to.be.true; + expect(msgCollector1.hasMessage(testItem.pubsub, "M3")).to.be.true; + expect(msgCollector2.hasMessage(testItem.pubsub, "M1")).to.be.true; + expect(msgCollector2.hasMessage(testItem.pubsub, "M3")).to.be.true; + expect(msgCollector3.hasMessage(testItem.pubsub, "M1")).to.be.true; + expect(msgCollector3.hasMessage(testItem.pubsub, "M2")).to.be.true; + }); + }); + + it("Nodes with multiple pubsub topic", async function () { this.timeout(10000); - const pubSubTopic = "/some/pubsub/topic"; + const [msgCollector1, msgCollector2, msgCollector3] = Array(3) + .fill(null) + .map(() => new MessageCollector()); - // 1 and 2 uses a custom pubsub - // 3 uses the default pubsub + // Waku1 and waku2 are using multiple pubsub topis [waku1, waku2, waku3] = await Promise.all([ createRelayNode({ - pubSubTopic: pubSubTopic, + pubSubTopics: [DefaultPubSubTopic, CustomPubSubTopic], staticNoiseKey: NOISE_KEY_1 }).then((waku) => waku.start().then(() => waku)), createRelayNode({ - pubSubTopic: pubSubTopic, + pubSubTopics: [DefaultPubSubTopic, CustomPubSubTopic], + staticNoiseKey: NOISE_KEY_2, + libp2p: { addresses: { listen: ["/ip4/0.0.0.0/tcp/0/ws"] } } + }).then((waku) => waku.start().then(() => waku)), + createRelayNode({ + pubSubTopics: [DefaultPubSubTopic], + staticNoiseKey: NOISE_KEY_3 + }).then((waku) => waku.start().then(() => waku)) + ]); + + await waku1.libp2p.peerStore.merge(waku2.libp2p.peerId, { + multiaddrs: waku2.libp2p.getMultiaddrs() + }); + await waku3.libp2p.peerStore.merge(waku2.libp2p.peerId, { + multiaddrs: waku2.libp2p.getMultiaddrs() + }); + await Promise.all([ + waku1.dial(waku2.libp2p.peerId), + waku3.dial(waku2.libp2p.peerId) + ]); + + await Promise.all([ + waitForRemotePeer(waku1, [Protocols.Relay]), + waitForRemotePeer(waku2, [Protocols.Relay]), + waitForRemotePeer(waku3, [Protocols.Relay]) + ]); + + await waku1.relay.subscribe( + [TestDecoder, CustomDecoder], + msgCollector1.callback + ); + await waku2.relay.subscribe( + [TestDecoder, CustomDecoder], + msgCollector2.callback + ); + await waku3.relay.subscribe([TestDecoder], msgCollector3.callback); + + // The nodes are setup in such a way that all messages send should be relayed to the other nodes in the network + // However onlt waku1 and waku2 are receiving messages on the CustomPubSubTopic + await waku1.relay.send(TestEncoder, { payload: utf8ToBytes("M1") }); + await waku1.relay.send(CustomEncoder, { payload: utf8ToBytes("M2") }); + await waku2.relay.send(TestEncoder, { payload: utf8ToBytes("M3") }); + await waku2.relay.send(CustomEncoder, { payload: utf8ToBytes("M4") }); + await waku3.relay.send(TestEncoder, { payload: utf8ToBytes("M5") }); + await waku3.relay.send(CustomEncoder, { payload: utf8ToBytes("M6") }); + + expect(await msgCollector1.waitForMessages(3, { exact: true })).to.eq( + true + ); + expect(await msgCollector2.waitForMessages(3, { exact: true })).to.eq( + true + ); + expect(await msgCollector3.waitForMessages(2, { exact: true })).to.eq( + true + ); + + expect(msgCollector1.hasMessage(DefaultPubSubTopic, "M3")).to.be.true; + expect(msgCollector1.hasMessage(CustomPubSubTopic, "M4")).to.be.true; + expect(msgCollector1.hasMessage(DefaultPubSubTopic, "M5")).to.be.true; + expect(msgCollector1.hasMessage(DefaultPubSubTopic, "M1")).to.be.true; + expect(msgCollector1.hasMessage(CustomPubSubTopic, "M2")).to.be.true; + expect(msgCollector1.hasMessage(DefaultPubSubTopic, "M5")).to.be.true; + expect(msgCollector2.hasMessage(CustomPubSubTopic, "M1")).to.be.true; + expect(msgCollector2.hasMessage(DefaultPubSubTopic, "M3")).to.be.true; + expect(msgCollector3.hasMessage(DefaultPubSubTopic, "M1")).to.be.true; + }); + + it("n1 and n2 uses a custom pubsub, n3 uses the default pubsub", async function () { + this.timeout(10000); + + [waku1, waku2, waku3] = await Promise.all([ + createRelayNode({ + pubSubTopics: [CustomPubSubTopic], + staticNoiseKey: NOISE_KEY_1 + }).then((waku) => waku.start().then(() => waku)), + createRelayNode({ + pubSubTopics: [CustomPubSubTopic], staticNoiseKey: NOISE_KEY_2, libp2p: { addresses: { listen: ["/ip4/0.0.0.0/tcp/0/ws"] } } }).then((waku) => waku.start().then(() => waku)), @@ -310,7 +497,7 @@ describe("Waku Relay [node only]", () => { const waku2ReceivedMsgPromise: Promise = new Promise( (resolve) => { - void waku2.relay.subscribe([TestDecoder], resolve); + void waku2.relay.subscribe([CustomDecoder], resolve); } ); @@ -323,7 +510,7 @@ describe("Waku Relay [node only]", () => { } ); - await waku1.relay.send(TestEncoder, { + await waku1.relay.send(CustomEncoder, { payload: utf8ToBytes(messageText) }); @@ -331,23 +518,21 @@ describe("Waku Relay [node only]", () => { await waku3NoMsgPromise; expect(bytesToUtf8(waku2ReceivedMsg.payload!)).to.eq(messageText); - expect(waku2ReceivedMsg.pubSubTopic).to.eq(pubSubTopic); + expect(waku2ReceivedMsg.pubSubTopic).to.eq(CustomPubSubTopic); }); it("Publishes <= 1 MB and rejects others", async function () { this.timeout(10000); const MB = 1024 ** 2; - const pubSubTopic = "/some/pubsub/topic"; - // 1 and 2 uses a custom pubsub [waku1, waku2] = await Promise.all([ createRelayNode({ - pubSubTopic: pubSubTopic, + pubSubTopics: [CustomPubSubTopic], staticNoiseKey: NOISE_KEY_1 }).then((waku) => waku.start().then(() => waku)), createRelayNode({ - pubSubTopic: pubSubTopic, + pubSubTopics: [CustomPubSubTopic], staticNoiseKey: NOISE_KEY_2, libp2p: { addresses: { listen: ["/ip4/0.0.0.0/tcp/0/ws"] } } }).then((waku) => waku.start().then(() => waku)) @@ -365,7 +550,7 @@ describe("Waku Relay [node only]", () => { const waku2ReceivedMsgPromise: Promise = new Promise( (resolve) => { - void waku2.relay.subscribe([TestDecoder], () => + void waku2.relay.subscribe([CustomDecoder], () => resolve({ payload: new Uint8Array([]) } as DecodedMessage) @@ -373,18 +558,18 @@ describe("Waku Relay [node only]", () => { } ); - let sendResult = await waku1.relay.send(TestEncoder, { + let sendResult = await waku1.relay.send(CustomEncoder, { payload: generateRandomUint8Array(1 * MB) }); expect(sendResult.recipients.length).to.eq(1); - sendResult = await waku1.relay.send(TestEncoder, { + sendResult = await waku1.relay.send(CustomEncoder, { payload: generateRandomUint8Array(1 * MB + 65536) }); expect(sendResult.recipients.length).to.eq(0); expect(sendResult.errors).to.include(SendError.SIZE_TOO_BIG); - sendResult = await waku1.relay.send(TestEncoder, { + sendResult = await waku1.relay.send(CustomEncoder, { payload: generateRandomUint8Array(2 * MB) }); expect(sendResult.recipients.length).to.eq(0); diff --git a/packages/tests/tests/sharding.spec.ts b/packages/tests/tests/sharding.spec.ts new file mode 100644 index 0000000000..3e830e3e7f --- /dev/null +++ b/packages/tests/tests/sharding.spec.ts @@ -0,0 +1,79 @@ +import { createLightNode, LightNode, utf8ToBytes } from "@waku/sdk"; +import { createEncoder } from "@waku/sdk"; +import chai, { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; + +import { makeLogFileName } from "../src/log_file.js"; +import { NimGoNode } from "../src/node/node.js"; + +const PubSubTopic1 = "/waku/2/rs/0/2"; +const PubSubTopic2 = "/waku/2/rs/0/3"; + +const ContentTopic = "/waku/2/content/test"; + +chai.use(chaiAsPromised); + +describe("Static Sharding", () => { + let waku: LightNode; + let nwaku: NimGoNode; + + beforeEach(async function () { + this.timeout(15_000); + nwaku = new NimGoNode(makeLogFileName(this)); + await nwaku.start({ store: true, lightpush: true, relay: true }); + }); + + afterEach(async function () { + !!nwaku && + nwaku.stop().catch((e) => console.log("Nwaku failed to stop", e)); + !!waku && waku.stop().catch((e) => console.log("Waku failed to stop", e)); + }); + + it("configure the node with multiple pubsub topics", async function () { + this.timeout(15_000); + waku = await createLightNode({ + pubSubTopics: [PubSubTopic1, PubSubTopic2] + }); + + const encoder1 = createEncoder({ + contentTopic: ContentTopic, + pubSubTopic: PubSubTopic1 + }); + + const encoder2 = createEncoder({ + contentTopic: ContentTopic, + pubSubTopic: PubSubTopic2 + }); + + const request1 = waku.lightPush.send(encoder1, { + payload: utf8ToBytes("Hello World") + }); + + const request2 = waku.lightPush.send(encoder2, { + payload: utf8ToBytes("Hello World") + }); + + await expect(request1).to.be.fulfilled; + await expect(request2).to.be.fulfilled; + }); + + it("using a protocol with unconfigured pubsub topic should fail", async function () { + this.timeout(15_000); + waku = await createLightNode({ + pubSubTopics: [PubSubTopic1] + }); + + // use a pubsub topic that is not configured + const encoder = createEncoder({ + contentTopic: ContentTopic, + pubSubTopic: PubSubTopic2 + }); + + // the following request should throw an error + const request = waku.lightPush.send(encoder, { + payload: utf8ToBytes("Hello World") + }); + + await expect(request).to.be.rejectedWith(Error); + }); +}); diff --git a/packages/tests/tests/store.node.spec.ts b/packages/tests/tests/store.node.spec.ts deleted file mode 100644 index 53736af4bd..0000000000 --- a/packages/tests/tests/store.node.spec.ts +++ /dev/null @@ -1,630 +0,0 @@ -import { - createCursor, - createDecoder, - createEncoder, - DecodedMessage, - PageDirection, - waitForRemotePeer -} from "@waku/core"; -import type { IMessage, LightNode } from "@waku/interfaces"; -import { Protocols } from "@waku/interfaces"; -import { - createDecoder as createEciesDecoder, - createEncoder as createEciesEncoder, - generatePrivateKey, - getPublicKey -} from "@waku/message-encryption/ecies"; -import { - createDecoder as createSymDecoder, - createEncoder as createSymEncoder, - generateSymmetricKey -} from "@waku/message-encryption/symmetric"; -import { createLightNode } from "@waku/sdk"; -import { bytesToUtf8, utf8ToBytes } from "@waku/utils/bytes"; -import { expect } from "chai"; -import debug from "debug"; - -import { - delay, - makeLogFileName, - NOISE_KEY_1, - NOISE_KEY_2 -} from "../src/index.js"; -import { NimGoNode } from "../src/node/node.js"; - -const log = debug("waku:test:store"); - -const TestContentTopic = "/test/1/waku-store/utf8"; -const TestEncoder = createEncoder({ contentTopic: TestContentTopic }); -const TestDecoder = createDecoder(TestContentTopic); - -describe("Waku Store", () => { - let waku: LightNode; - let nwaku: NimGoNode; - - beforeEach(async function () { - this.timeout(15_000); - nwaku = new NimGoNode(makeLogFileName(this)); - await nwaku.start({ store: true, lightpush: true, relay: true }); - }); - - afterEach(async function () { - !!nwaku && - nwaku.stop().catch((e) => console.log("Nwaku failed to stop", e)); - !!waku && waku.stop().catch((e) => console.log("Waku failed to stop", e)); - }); - - it("Generator", async function () { - this.timeout(15_000); - const totalMsgs = 20; - - for (let i = 0; i < totalMsgs; i++) { - expect( - await nwaku.sendMessage( - NimGoNode.toMessageRpcQuery({ - payload: new Uint8Array([i]), - contentTopic: TestContentTopic - }) - ) - ).to.be.true; - } - - waku = await createLightNode({ - staticNoiseKey: NOISE_KEY_1 - }); - await waku.start(); - await waku.dial(await nwaku.getMultiaddrWithId()); - await waitForRemotePeer(waku, [Protocols.Store]); - - const messages: IMessage[] = []; - let promises: Promise[] = []; - for await (const msgPromises of waku.store.queryGenerator([TestDecoder])) { - const _promises = msgPromises.map(async (promise) => { - const msg = await promise; - if (msg) { - messages.push(msg); - } - }); - - promises = promises.concat(_promises); - } - await Promise.all(promises); - - expect(messages?.length).eq(totalMsgs); - const result = messages?.findIndex((msg) => { - return msg.payload[0]! === 0; - }); - expect(result).to.not.eq(-1); - }); - - it("Generator, no message returned", async function () { - this.timeout(15_000); - - waku = await createLightNode({ - staticNoiseKey: NOISE_KEY_1 - }); - await waku.start(); - await waku.dial(await nwaku.getMultiaddrWithId()); - await waitForRemotePeer(waku, [Protocols.Store]); - - const messages: IMessage[] = []; - let promises: Promise[] = []; - for await (const msgPromises of waku.store.queryGenerator([TestDecoder])) { - const _promises = msgPromises.map(async (promise) => { - const msg = await promise; - if (msg) { - messages.push(msg); - } - }); - - promises = promises.concat(_promises); - } - await Promise.all(promises); - - expect(messages?.length).eq(0); - }); - - it("Passing a cursor", async function () { - this.timeout(4_000); - const totalMsgs = 20; - - for (let i = 0; i < totalMsgs; i++) { - expect( - await nwaku.sendMessage( - NimGoNode.toMessageRpcQuery({ - payload: utf8ToBytes(`Message ${i}`), - contentTopic: TestContentTopic - }) - ) - ).to.be.true; - } - - waku = await createLightNode({ - staticNoiseKey: NOISE_KEY_1 - }); - await waku.start(); - await waku.dial(await nwaku.getMultiaddrWithId()); - await waitForRemotePeer(waku, [Protocols.Store]); - - const query = waku.store.queryGenerator([TestDecoder]); - - // messages in reversed order (first message at last index) - const messages: DecodedMessage[] = []; - for await (const page of query) { - for await (const msg of page.reverse()) { - messages.push(msg as DecodedMessage); - } - } - - // index 2 would mean the third last message sent - const cursorIndex = 2; - - // create cursor to extract messages after the 3rd index - const cursor = await createCursor(messages[cursorIndex]); - - const messagesAfterCursor: DecodedMessage[] = []; - for await (const page of waku.store.queryGenerator([TestDecoder], { - cursor - })) { - for await (const msg of page.reverse()) { - messagesAfterCursor.push(msg as DecodedMessage); - } - } - - const testMessage = messagesAfterCursor[0]; - - expect(messages.length).be.eq(totalMsgs); - - expect(bytesToUtf8(testMessage.payload)).to.be.eq( - bytesToUtf8(messages[cursorIndex + 1].payload) - ); - }); - - it("Callback on promise", async function () { - this.timeout(15_000); - - const totalMsgs = 15; - - for (let i = 0; i < totalMsgs; i++) { - expect( - await nwaku.sendMessage( - NimGoNode.toMessageRpcQuery({ - payload: new Uint8Array([i]), - contentTopic: TestContentTopic - }) - ) - ).to.be.true; - } - - waku = await createLightNode({ - staticNoiseKey: NOISE_KEY_1 - }); - await waku.start(); - await waku.dial(await nwaku.getMultiaddrWithId()); - await waitForRemotePeer(waku, [Protocols.Store]); - - const messages: IMessage[] = []; - await waku.store.queryWithPromiseCallback( - [TestDecoder], - async (msgPromise) => { - const msg = await msgPromise; - if (msg) { - messages.push(msg); - } - } - ); - - expect(messages?.length).eq(totalMsgs); - const result = messages?.findIndex((msg) => { - return msg.payload[0]! === 0; - }); - expect(result).to.not.eq(-1); - }); - - it("Callback on promise, aborts when callback returns true", async function () { - this.timeout(15_000); - - const totalMsgs = 20; - - for (let i = 0; i < totalMsgs; i++) { - expect( - await nwaku.sendMessage( - NimGoNode.toMessageRpcQuery({ - payload: new Uint8Array([i]), - contentTopic: TestContentTopic - }) - ) - ).to.be.true; - } - - waku = await createLightNode({ - staticNoiseKey: NOISE_KEY_1 - }); - await waku.start(); - await waku.dial(await nwaku.getMultiaddrWithId()); - await waitForRemotePeer(waku, [Protocols.Store]); - - const desiredMsgs = 14; - const messages: IMessage[] = []; - await waku.store.queryWithPromiseCallback( - [TestDecoder], - async (msgPromise) => { - const msg = await msgPromise; - if (msg) { - messages.push(msg); - } - return messages.length >= desiredMsgs; - }, - { pageSize: 7 } - ); - - expect(messages?.length).eq(desiredMsgs); - }); - - it("Ordered Callback - Forward", async function () { - this.timeout(15_000); - - const totalMsgs = 18; - for (let i = 0; i < totalMsgs; i++) { - expect( - await nwaku.sendMessage( - NimGoNode.toMessageRpcQuery({ - payload: new Uint8Array([i]), - contentTopic: TestContentTopic - }) - ) - ).to.be.true; - await delay(1); // to ensure each timestamp is unique. - } - - waku = await createLightNode({ - staticNoiseKey: NOISE_KEY_1 - }); - await waku.start(); - await waku.dial(await nwaku.getMultiaddrWithId()); - await waitForRemotePeer(waku, [Protocols.Store]); - - const messages: IMessage[] = []; - await waku.store.queryWithOrderedCallback( - [TestDecoder], - async (msg) => { - messages.push(msg); - }, - { - pageDirection: PageDirection.FORWARD - } - ); - - expect(messages?.length).eq(totalMsgs); - const payloads = messages.map((msg) => msg.payload[0]!); - expect(payloads).to.deep.eq(Array.from(Array(totalMsgs).keys())); - }); - - it("Ordered Callback - Backward", async function () { - this.timeout(15_000); - - const totalMsgs = 18; - for (let i = 0; i < totalMsgs; i++) { - expect( - await nwaku.sendMessage( - NimGoNode.toMessageRpcQuery({ - payload: new Uint8Array([i]), - contentTopic: TestContentTopic - }) - ) - ).to.be.true; - await delay(1); // to ensure each timestamp is unique. - } - - waku = await createLightNode({ - staticNoiseKey: NOISE_KEY_1 - }); - await waku.start(); - await waku.dial(await nwaku.getMultiaddrWithId()); - await waitForRemotePeer(waku, [Protocols.Store]); - - let messages: IMessage[] = []; - await waku.store.queryWithOrderedCallback( - [TestDecoder], - async (msg) => { - messages.push(msg); - }, - { - pageDirection: PageDirection.BACKWARD - } - ); - - messages = messages.reverse(); - - expect(messages?.length).eq(totalMsgs); - const payloads = messages.map((msg) => msg.payload![0]!); - expect(payloads).to.deep.eq(Array.from(Array(totalMsgs).keys())); - }); - - it("Generator, with asymmetric & symmetric encrypted messages", async function () { - this.timeout(15_000); - - const asymText = "This message is encrypted for me using asymmetric"; - const asymTopic = "/test/1/asymmetric/proto"; - const symText = - "This message is encrypted for me using symmetric encryption"; - const symTopic = "/test/1/symmetric/proto"; - const clearText = "This is a clear text message for everyone to read"; - const otherText = - "This message is not for and I must not be able to read it"; - - const timestamp = new Date(); - - const asymMsg = { payload: utf8ToBytes(asymText), timestamp }; - const symMsg = { - payload: utf8ToBytes(symText), - timestamp: new Date(timestamp.valueOf() + 1) - }; - const clearMsg = { - payload: utf8ToBytes(clearText), - timestamp: new Date(timestamp.valueOf() + 2) - }; - const otherMsg = { - payload: utf8ToBytes(otherText), - timestamp: new Date(timestamp.valueOf() + 3) - }; - - const privateKey = generatePrivateKey(); - const symKey = generateSymmetricKey(); - const publicKey = getPublicKey(privateKey); - - const eciesEncoder = createEciesEncoder({ - contentTopic: asymTopic, - publicKey - }); - const symEncoder = createSymEncoder({ - contentTopic: symTopic, - symKey - }); - - const otherEncoder = createEciesEncoder({ - contentTopic: TestContentTopic, - publicKey: getPublicKey(generatePrivateKey()) - }); - - const eciesDecoder = createEciesDecoder(asymTopic, privateKey); - const symDecoder = createSymDecoder(symTopic, symKey); - - const [waku1, waku2, nimWakuMultiaddr] = await Promise.all([ - createLightNode({ - staticNoiseKey: NOISE_KEY_1 - }).then((waku) => waku.start().then(() => waku)), - createLightNode({ - staticNoiseKey: NOISE_KEY_2 - }).then((waku) => waku.start().then(() => waku)), - nwaku.getMultiaddrWithId() - ]); - - log("Waku nodes created"); - - await Promise.all([ - waku1.dial(nimWakuMultiaddr), - waku2.dial(nimWakuMultiaddr) - ]); - - log("Waku nodes connected to nwaku"); - - await waitForRemotePeer(waku1, [Protocols.LightPush]); - - log("Sending messages using light push"); - await Promise.all([ - waku1.lightPush.send(eciesEncoder, asymMsg), - waku1.lightPush.send(symEncoder, symMsg), - waku1.lightPush.send(otherEncoder, otherMsg), - waku1.lightPush.send(TestEncoder, clearMsg) - ]); - - await waitForRemotePeer(waku2, [Protocols.Store]); - - const messages: DecodedMessage[] = []; - log("Retrieve messages from store"); - - for await (const msgPromises of waku2.store.queryGenerator([ - eciesDecoder, - symDecoder, - TestDecoder - ])) { - for (const promise of msgPromises) { - const msg = await promise; - if (msg) { - messages.push(msg); - } - } - } - - // Messages are ordered from oldest to latest within a page (1 page query) - expect(bytesToUtf8(messages[0].payload!)).to.eq(asymText); - expect(bytesToUtf8(messages[1].payload!)).to.eq(symText); - expect(bytesToUtf8(messages[2].payload!)).to.eq(clearText); - expect(messages?.length).eq(3); - - !!waku1 && waku1.stop().catch((e) => console.log("Waku failed to stop", e)); - !!waku2 && waku2.stop().catch((e) => console.log("Waku failed to stop", e)); - }); - - it("Ordered callback, using start and end time", async function () { - this.timeout(20000); - - const now = new Date(); - - const startTime = new Date(); - // Set start time 15 seconds in the past - startTime.setTime(now.getTime() - 15 * 1000); - - const message1Timestamp = new Date(); - // Set first message was 10 seconds in the past - message1Timestamp.setTime(now.getTime() - 10 * 1000); - - const message2Timestamp = new Date(); - // Set second message 2 seconds in the past - message2Timestamp.setTime(now.getTime() - 2 * 1000); - const messageTimestamps = [message1Timestamp, message2Timestamp]; - - const endTime = new Date(); - // Set end time 1 second in the past - endTime.setTime(now.getTime() - 1000); - - for (let i = 0; i < 2; i++) { - expect( - await nwaku.sendMessage( - NimGoNode.toMessageRpcQuery({ - payload: new Uint8Array([i]), - contentTopic: TestContentTopic, - timestamp: messageTimestamps[i] - }) - ) - ).to.be.true; - } - - waku = await createLightNode({ - staticNoiseKey: NOISE_KEY_1 - }); - await waku.start(); - await waku.dial(await nwaku.getMultiaddrWithId()); - await waitForRemotePeer(waku, [Protocols.Store]); - - const firstMessages: IMessage[] = []; - await waku.store.queryWithOrderedCallback( - [TestDecoder], - (msg) => { - if (msg) { - firstMessages.push(msg); - } - }, - { - timeFilter: { startTime, endTime: message1Timestamp } - } - ); - - const bothMessages: IMessage[] = []; - await waku.store.queryWithOrderedCallback( - [TestDecoder], - async (msg) => { - bothMessages.push(msg); - }, - { - timeFilter: { - startTime, - endTime - } - } - ); - - expect(firstMessages?.length).eq(1); - - expect(firstMessages[0].payload![0]!).eq(0); - - expect(bothMessages?.length).eq(2); - }); - - it("Ordered callback, aborts when callback returns true", async function () { - this.timeout(15_000); - - const totalMsgs = 20; - - for (let i = 0; i < totalMsgs; i++) { - expect( - await nwaku.sendMessage( - NimGoNode.toMessageRpcQuery({ - payload: new Uint8Array([i]), - contentTopic: TestContentTopic - }) - ) - ).to.be.true; - await delay(1); // to ensure each timestamp is unique. - } - - waku = await createLightNode({ - staticNoiseKey: NOISE_KEY_1 - }); - await waku.start(); - await waku.dial(await nwaku.getMultiaddrWithId()); - await waitForRemotePeer(waku, [Protocols.Store]); - - const desiredMsgs = 14; - const messages: IMessage[] = []; - await waku.store.queryWithOrderedCallback( - [TestDecoder], - async (msg) => { - messages.push(msg); - return messages.length >= desiredMsgs; - }, - { pageSize: 7 } - ); - - expect(messages?.length).eq(desiredMsgs); - }); -}); - -describe("Waku Store, custom pubsub topic", () => { - const customPubSubTopic = "/waku/2/custom-dapp/proto"; - let waku: LightNode; - let nwaku: NimGoNode; - - beforeEach(async function () { - this.timeout(15_000); - nwaku = new NimGoNode(makeLogFileName(this)); - await nwaku.start({ - store: true, - topic: customPubSubTopic, - relay: true - }); - }); - - afterEach(async function () { - !!nwaku && - nwaku.stop().catch((e) => console.log("Nwaku failed to stop", e)); - !!waku && waku.stop().catch((e) => console.log("Waku failed to stop", e)); - }); - - it("Generator, custom pubsub topic", async function () { - this.timeout(15_000); - - const totalMsgs = 20; - for (let i = 0; i < totalMsgs; i++) { - expect( - await nwaku.sendMessage( - NimGoNode.toMessageRpcQuery({ - payload: new Uint8Array([i]), - contentTopic: TestContentTopic - }), - customPubSubTopic - ) - ).to.be.true; - } - - waku = await createLightNode({ - staticNoiseKey: NOISE_KEY_1, - pubSubTopic: customPubSubTopic - }); - await waku.start(); - await waku.dial(await nwaku.getMultiaddrWithId()); - await waitForRemotePeer(waku, [Protocols.Store]); - - const messages: IMessage[] = []; - let promises: Promise[] = []; - for await (const msgPromises of waku.store.queryGenerator([TestDecoder])) { - const _promises = msgPromises.map(async (promise) => { - const msg = await promise; - if (msg) { - messages.push(msg); - expect(msg.pubSubTopic).to.eq(customPubSubTopic); - } - }); - - promises = promises.concat(_promises); - } - await Promise.all(promises); - - expect(messages?.length).eq(totalMsgs); - const result = messages?.findIndex((msg) => { - return msg.payload![0]! === 0; - }); - expect(result).to.not.eq(-1); - }); -}); diff --git a/packages/tests/tests/store/cursor.node.spec.ts b/packages/tests/tests/store/cursor.node.spec.ts new file mode 100644 index 0000000000..20b0f20ec9 --- /dev/null +++ b/packages/tests/tests/store/cursor.node.spec.ts @@ -0,0 +1,203 @@ +import { createCursor, DecodedMessage, DefaultPubSubTopic } from "@waku/core"; +import type { LightNode } from "@waku/interfaces"; +import { bytesToUtf8 } from "@waku/utils/bytes"; +import { expect } from "chai"; + +import { makeLogFileName, NimGoNode, tearDownNodes } from "../../src/index.js"; + +import { + customPubSubTopic, + sendMessages, + startAndConnectLightNode, + TestContentTopic, + TestDecoder, + totalMsgs +} from "./utils.js"; + +describe("Waku Store, cursor", function () { + this.timeout(15000); + let waku: LightNode; + let waku2: LightNode; + let nwaku: NimGoNode; + + beforeEach(async function () { + this.timeout(15000); + nwaku = new NimGoNode(makeLogFileName(this)); + await nwaku.startWithRetries({ store: true, lightpush: true, relay: true }); + await nwaku.ensureSubscriptions(); + }); + + afterEach(async function () { + this.timeout(15000); + await tearDownNodes(nwaku, [waku, waku2]); + }); + + [ + [2, 4], + [0, 20], + [10, 40], + [19, 20], + [19, 50], + [110, 120] + ].forEach(([cursorIndex, messageCount]) => { + it(`Passing a valid cursor at ${cursorIndex} index when there are ${messageCount} messages`, async function () { + await sendMessages( + nwaku, + messageCount, + TestContentTopic, + DefaultPubSubTopic + ); + waku = await startAndConnectLightNode(nwaku); + + // messages in reversed order (first message at last index) + const messages: DecodedMessage[] = []; + for await (const page of waku.store.queryGenerator([TestDecoder])) { + for await (const msg of page.reverse()) { + messages.push(msg as DecodedMessage); + } + } + + // create cursor to extract messages after the cursorIndex + const cursor = await createCursor(messages[cursorIndex]); + + const messagesAfterCursor: DecodedMessage[] = []; + for await (const page of waku.store.queryGenerator([TestDecoder], { + cursor + })) { + for await (const msg of page.reverse()) { + if (msg) { + messagesAfterCursor.push(msg as DecodedMessage); + } + } + } + + expect(messages.length).be.eql(messageCount); + expect(messagesAfterCursor.length).be.eql(messageCount - cursorIndex - 1); + if (cursorIndex == messages.length - 1) { + // in this case the cursor will return nothin because it points at the end of the list + expect(messagesAfterCursor).be.eql([]); + } else { + expect(bytesToUtf8(messagesAfterCursor[0].payload)).to.be.eq( + bytesToUtf8(messages[cursorIndex + 1].payload) + ); + expect( + bytesToUtf8( + messagesAfterCursor[messagesAfterCursor.length - 1].payload + ) + ).to.be.eq(bytesToUtf8(messages[messages.length - 1].payload)); + } + }); + }); + + it("Reusing cursor across nodes", async function () { + await sendMessages(nwaku, totalMsgs, TestContentTopic, DefaultPubSubTopic); + waku = await startAndConnectLightNode(nwaku); + waku2 = await startAndConnectLightNode(nwaku); + + // messages in reversed order (first message at last index) + const messages: DecodedMessage[] = []; + for await (const page of waku.store.queryGenerator([TestDecoder])) { + for await (const msg of page.reverse()) { + messages.push(msg as DecodedMessage); + } + } + + // create cursor to extract messages after the cursorIndex + const cursor = await createCursor(messages[5]); + + // query node2 with the cursor from node1 + const messagesAfterCursor: DecodedMessage[] = []; + for await (const page of waku2.store.queryGenerator([TestDecoder], { + cursor + })) { + for await (const msg of page.reverse()) { + if (msg) { + messagesAfterCursor.push(msg as DecodedMessage); + } + } + } + + expect(messages.length).be.eql(totalMsgs); + expect(messagesAfterCursor.length).be.eql(totalMsgs - 6); + expect(bytesToUtf8(messagesAfterCursor[0].payload)).to.be.eq( + bytesToUtf8(messages[6].payload) + ); + expect( + bytesToUtf8(messagesAfterCursor[messagesAfterCursor.length - 1].payload) + ).to.be.eq(bytesToUtf8(messages[messages.length - 1].payload)); + }); + + it("Passing cursor with wrong message digest", async function () { + await sendMessages(nwaku, totalMsgs, TestContentTopic, DefaultPubSubTopic); + waku = await startAndConnectLightNode(nwaku); + + const messages: DecodedMessage[] = []; + for await (const page of waku.store.queryGenerator([TestDecoder])) { + for await (const msg of page.reverse()) { + messages.push(msg as DecodedMessage); + } + } + const cursor = await createCursor(messages[5]); + + // setting a wrong digest + cursor.digest = new Uint8Array([]); + + const messagesAfterCursor: DecodedMessage[] = []; + try { + for await (const page of waku.store.queryGenerator([TestDecoder], { + cursor + })) { + for await (const msg of page.reverse()) { + if (msg) { + messagesAfterCursor.push(msg as DecodedMessage); + } + } + } + // Should return same as go-waku. Raised bug: https://github.com/waku-org/nwaku/issues/2117 + expect(messagesAfterCursor.length).to.eql(0); + } catch (error) { + if ( + nwaku.type() === "go-waku" && + typeof error === "string" && + error.includes("History response contains an Error: INVALID_CURSOR") + ) { + return; + } + throw error instanceof Error + ? new Error(`Unexpected error: ${error.message}`) + : error; + } + }); + + it("Passing cursor with wrong pubSubTopic", async function () { + await sendMessages(nwaku, totalMsgs, TestContentTopic, DefaultPubSubTopic); + waku = await startAndConnectLightNode(nwaku); + + const messages: DecodedMessage[] = []; + for await (const page of waku.store.queryGenerator([TestDecoder])) { + for await (const msg of page.reverse()) { + messages.push(msg as DecodedMessage); + } + } + messages[5].pubSubTopic = customPubSubTopic; + const cursor = await createCursor(messages[5]); + + try { + for await (const page of waku.store.queryGenerator([TestDecoder], { + cursor + })) { + page; + } + throw new Error("Cursor with wrong pubsubtopic was accepted"); + } catch (err) { + if ( + !(err instanceof Error) || + !err.message.includes( + `Cursor pubsub topic (${customPubSubTopic}) does not match decoder pubsub topic (${DefaultPubSubTopic})` + ) + ) { + throw err; + } + } + }); +}); diff --git a/packages/tests/tests/store/error_handling.node.spec.ts b/packages/tests/tests/store/error_handling.node.spec.ts new file mode 100644 index 0000000000..37fa6d8971 --- /dev/null +++ b/packages/tests/tests/store/error_handling.node.spec.ts @@ -0,0 +1,224 @@ +import { DefaultPubSubTopic } from "@waku/core"; +import { IMessage, type LightNode } from "@waku/interfaces"; +import { expect } from "chai"; + +import { makeLogFileName, NimGoNode, tearDownNodes } from "../../src/index.js"; + +import { + customPubSubTopic, + customTestDecoder, + processQueriedMessages, + startAndConnectLightNode, + TestDecoder +} from "./utils.js"; + +describe("Waku Store, error handling", function () { + this.timeout(15000); + let waku: LightNode; + let nwaku: NimGoNode; + + beforeEach(async function () { + this.timeout(15000); + nwaku = new NimGoNode(makeLogFileName(this)); + await nwaku.startWithRetries({ store: true, lightpush: true, relay: true }); + await nwaku.ensureSubscriptions(); + waku = await startAndConnectLightNode(nwaku); + }); + + afterEach(async function () { + this.timeout(15000); + await tearDownNodes(nwaku, waku); + }); + + it("Query Generator, Wrong PubSubTopic", async function () { + try { + for await (const msgPromises of waku.store.queryGenerator([ + customTestDecoder + ])) { + msgPromises; + } + throw new Error("QueryGenerator was successful but was expected to fail"); + } catch (err) { + if ( + !(err instanceof Error) || + !err.message.includes( + `PubSub topic ${customPubSubTopic} has not been configured on this instance. Configured topics are: ${DefaultPubSubTopic}` + ) + ) { + throw err; + } + } + }); + + it("Query Generator, Multiple PubSubTopics", async function () { + try { + for await (const msgPromises of waku.store.queryGenerator([ + TestDecoder, + customTestDecoder + ])) { + msgPromises; + } + throw new Error("QueryGenerator was successful but was expected to fail"); + } catch (err) { + if ( + !(err instanceof Error) || + !err.message.includes( + "API does not support querying multiple pubsub topics at once" + ) + ) { + throw err; + } + } + }); + + it("Query Generator, No Decoder", async function () { + try { + for await (const msgPromises of waku.store.queryGenerator([])) { + msgPromises; + } + throw new Error("QueryGenerator was successful but was expected to fail"); + } catch (err) { + if ( + !(err instanceof Error) || + !err.message.includes("No decoders provided") + ) { + throw err; + } + } + }); + + it("Query Generator, No message returned", async function () { + const messages = await processQueriedMessages( + waku, + [TestDecoder], + DefaultPubSubTopic + ); + expect(messages?.length).eq(0); + }); + + it("Query with Ordered Callback, Wrong PubSubTopic", async function () { + try { + await waku.store.queryWithOrderedCallback( + [customTestDecoder], + async () => {} + ); + throw new Error("QueryGenerator was successful but was expected to fail"); + } catch (err) { + if ( + !(err instanceof Error) || + !err.message.includes( + `PubSub topic ${customPubSubTopic} has not been configured on this instance. Configured topics are: ${DefaultPubSubTopic}` + ) + ) { + throw err; + } + } + }); + + it("Query with Ordered Callback, Multiple PubSubTopics", async function () { + try { + await waku.store.queryWithOrderedCallback( + [TestDecoder, customTestDecoder], + async () => {} + ); + throw new Error("QueryGenerator was successful but was expected to fail"); + } catch (err) { + if ( + !(err instanceof Error) || + !err.message.includes( + "API does not support querying multiple pubsub topics at once" + ) + ) { + throw err; + } + } + }); + + it("Query with Ordered Callback, No Decoder", async function () { + try { + await waku.store.queryWithOrderedCallback([], async () => {}); + throw new Error("QueryGenerator was successful but was expected to fail"); + } catch (err) { + if ( + !(err instanceof Error) || + !err.message.includes("No decoders provided") + ) { + throw err; + } + } + }); + + it("Query with Ordered Callback, No message returned", async function () { + const messages: IMessage[] = []; + await waku.store.queryWithOrderedCallback([TestDecoder], async (msg) => { + messages.push(msg); + }); + expect(messages?.length).eq(0); + }); + + it("Query with Promise Callback, Wrong PubSubTopic", async function () { + try { + await waku.store.queryWithPromiseCallback( + [customTestDecoder], + async () => {} + ); + throw new Error("QueryGenerator was successful but was expected to fail"); + } catch (err) { + if ( + !(err instanceof Error) || + !err.message.includes( + `PubSub topic ${customPubSubTopic} has not been configured on this instance. Configured topics are: ${DefaultPubSubTopic}` + ) + ) { + throw err; + } + } + }); + + it("Query with Promise Callback, Multiple PubSubTopics", async function () { + try { + await waku.store.queryWithPromiseCallback( + [TestDecoder, customTestDecoder], + async () => {} + ); + throw new Error("QueryGenerator was successful but was expected to fail"); + } catch (err) { + if ( + !(err instanceof Error) || + !err.message.includes( + "API does not support querying multiple pubsub topics at once" + ) + ) { + throw err; + } + } + }); + + it("Query with Promise Callback, No Decoder", async function () { + try { + await waku.store.queryWithPromiseCallback([], async () => {}); + throw new Error("QueryGenerator was successful but was expected to fail"); + } catch (err) { + if ( + !(err instanceof Error) || + !err.message.includes("No decoders provided") + ) { + throw err; + } + } + }); + + it("Query with Promise Callback, No message returned", async function () { + const messages: IMessage[] = []; + await waku.store.queryWithPromiseCallback( + [TestDecoder], + async (msgPromise) => { + const msg = await msgPromise; + if (msg) { + messages.push(msg); + } + } + ); + expect(messages?.length).eq(0); + }); +}); diff --git a/packages/tests/tests/store/index.node.spec.ts b/packages/tests/tests/store/index.node.spec.ts new file mode 100644 index 0000000000..f519535a72 --- /dev/null +++ b/packages/tests/tests/store/index.node.spec.ts @@ -0,0 +1,333 @@ +import { + createDecoder, + DecodedMessage, + DefaultPubSubTopic, + waitForRemotePeer +} from "@waku/core"; +import type { IMessage, LightNode } from "@waku/interfaces"; +import { Protocols } from "@waku/interfaces"; +import { + createDecoder as createEciesDecoder, + createEncoder as createEciesEncoder, + generatePrivateKey, + getPublicKey +} from "@waku/message-encryption/ecies"; +import { + createDecoder as createSymDecoder, + createEncoder as createSymEncoder, + generateSymmetricKey +} from "@waku/message-encryption/symmetric"; +import { bytesToUtf8, utf8ToBytes } from "@waku/utils/bytes"; +import { expect } from "chai"; +import isEqual from "lodash/isEqual"; + +import { + delay, + makeLogFileName, + MessageCollector, + NimGoNode, + tearDownNodes, + TEST_STRING +} from "../../src/index.js"; + +import { + customContentTopic, + log, + messageText, + processQueriedMessages, + sendMessages, + startAndConnectLightNode, + TestContentTopic, + TestDecoder, + TestEncoder, + totalMsgs +} from "./utils.js"; + +const secondDecoder = createDecoder(customContentTopic, DefaultPubSubTopic); + +describe("Waku Store, general", function () { + this.timeout(15000); + let waku: LightNode; + let waku2: LightNode; + let nwaku: NimGoNode; + + beforeEach(async function () { + this.timeout(15000); + nwaku = new NimGoNode(makeLogFileName(this)); + await nwaku.startWithRetries({ store: true, lightpush: true, relay: true }); + await nwaku.ensureSubscriptions(); + }); + + afterEach(async function () { + this.timeout(15000); + await tearDownNodes(nwaku, [waku, waku2]); + }); + + it("Query generator for multiple messages", async function () { + await sendMessages(nwaku, totalMsgs, TestContentTopic, DefaultPubSubTopic); + waku = await startAndConnectLightNode(nwaku); + const messages = await processQueriedMessages( + waku, + [TestDecoder], + DefaultPubSubTopic + ); + + expect(messages?.length).eq(totalMsgs); + + // checking that the message with text 0 exists + const result = messages?.findIndex((msg) => { + return msg.payload[0]! === 0; + }); + expect(result).to.not.eq(-1); + }); + + it("Query generator for multiple messages with different message text format", async function () { + for (const testItem of TEST_STRING) { + expect( + await nwaku.sendMessage( + NimGoNode.toMessageRpcQuery({ + payload: utf8ToBytes(testItem["value"]), + contentTopic: TestContentTopic + }), + DefaultPubSubTopic + ) + ).to.be.true; + await delay(1); // to ensure each timestamp is unique. + } + + waku = await startAndConnectLightNode(nwaku); + const messageCollector = new MessageCollector(); + messageCollector.list = await processQueriedMessages( + waku, + [TestDecoder], + DefaultPubSubTopic + ); + + // checking that all message sent were retrieved + TEST_STRING.forEach((testItem) => { + expect( + messageCollector.hasMessage(TestContentTopic, testItem["value"]) + ).to.eq(true); + }); + }); + + it("Query generator for multiple messages with multiple decoders", async function () { + await nwaku.sendMessage( + NimGoNode.toMessageRpcQuery({ + payload: utf8ToBytes("M1"), + contentTopic: TestContentTopic + }), + DefaultPubSubTopic + ); + await nwaku.sendMessage( + NimGoNode.toMessageRpcQuery({ + payload: utf8ToBytes("M2"), + contentTopic: customContentTopic + }), + DefaultPubSubTopic + ); + waku = await startAndConnectLightNode(nwaku); + + const messageCollector = new MessageCollector(); + messageCollector.list = await processQueriedMessages( + waku, + [TestDecoder, secondDecoder], + DefaultPubSubTopic + ); + expect(messageCollector.hasMessage(TestContentTopic, "M1")).to.eq(true); + expect(messageCollector.hasMessage(customContentTopic, "M2")).to.eq(true); + }); + + it("Query generator for multiple messages with different content topic format", async function () { + for (const testItem of TEST_STRING) { + expect( + await nwaku.sendMessage( + NimGoNode.toMessageRpcQuery({ + payload: utf8ToBytes(messageText), + contentTopic: testItem["value"] + }), + DefaultPubSubTopic + ) + ).to.be.true; + await delay(1); // to ensure each timestamp is unique. + } + + waku = await startAndConnectLightNode(nwaku); + + for (const testItem of TEST_STRING) { + for await (const query of waku.store.queryGenerator([ + createDecoder(testItem["value"]) + ])) { + for await (const msg of query) { + expect(isEqual(msg!.payload, utf8ToBytes(messageText))).to.eq(true); + } + } + } + }); + + it("Callback on promise", async function () { + await sendMessages(nwaku, totalMsgs, TestContentTopic, DefaultPubSubTopic); + waku = await startAndConnectLightNode(nwaku); + + const messages: IMessage[] = []; + await waku.store.queryWithPromiseCallback( + [TestDecoder], + async (msgPromise) => { + const msg = await msgPromise; + if (msg) { + messages.push(msg); + } + } + ); + + expect(messages?.length).eq(totalMsgs); + const result = messages?.findIndex((msg) => { + return msg.payload[0]! === 0; + }); + expect(result).to.not.eq(-1); + }); + + it("Callback on promise, aborts when callback returns true", async function () { + await sendMessages(nwaku, totalMsgs, TestContentTopic, DefaultPubSubTopic); + waku = await startAndConnectLightNode(nwaku); + + const desiredMsgs = 14; + const messages: IMessage[] = []; + await waku.store.queryWithPromiseCallback( + [TestDecoder], + async (msgPromise) => { + const msg = await msgPromise; + if (msg) { + messages.push(msg); + } + return messages.length >= desiredMsgs; + }, + { pageSize: 7 } + ); + + expect(messages?.length).eq(desiredMsgs); + }); + + it("Generator, with asymmetric & symmetric encrypted messages", async function () { + const asymText = "This message is encrypted for me using asymmetric"; + const asymTopic = "/test/1/asymmetric/proto"; + const symText = + "This message is encrypted for me using symmetric encryption"; + const symTopic = "/test/1/symmetric/proto"; + const clearText = "This is a clear text message for everyone to read"; + const otherText = + "This message is not for and I must not be able to read it"; + + const timestamp = new Date(); + + const asymMsg = { payload: utf8ToBytes(asymText), timestamp }; + const symMsg = { + payload: utf8ToBytes(symText), + timestamp: new Date(timestamp.valueOf() + 1) + }; + const clearMsg = { + payload: utf8ToBytes(clearText), + timestamp: new Date(timestamp.valueOf() + 2) + }; + const otherMsg = { + payload: utf8ToBytes(otherText), + timestamp: new Date(timestamp.valueOf() + 3) + }; + + const privateKey = generatePrivateKey(); + const symKey = generateSymmetricKey(); + const publicKey = getPublicKey(privateKey); + + const eciesEncoder = createEciesEncoder({ + contentTopic: asymTopic, + publicKey + }); + const symEncoder = createSymEncoder({ + contentTopic: symTopic, + symKey + }); + + const otherEncoder = createEciesEncoder({ + contentTopic: TestContentTopic, + publicKey: getPublicKey(generatePrivateKey()) + }); + + const eciesDecoder = createEciesDecoder(asymTopic, privateKey); + const symDecoder = createSymDecoder(symTopic, symKey); + + waku = await startAndConnectLightNode(nwaku); + waku2 = await startAndConnectLightNode(nwaku); + const nimWakuMultiaddr = await nwaku.getMultiaddrWithId(); + + await Promise.all([ + waku.dial(nimWakuMultiaddr), + waku2.dial(nimWakuMultiaddr) + ]); + + log("Waku nodes connected to nwaku"); + + await waitForRemotePeer(waku, [Protocols.LightPush]); + + log("Sending messages using light push"); + await Promise.all([ + waku.lightPush.send(eciesEncoder, asymMsg), + waku.lightPush.send(symEncoder, symMsg), + waku.lightPush.send(otherEncoder, otherMsg), + waku.lightPush.send(TestEncoder, clearMsg) + ]); + + await waitForRemotePeer(waku2, [Protocols.Store]); + + const messages: DecodedMessage[] = []; + log("Retrieve messages from store"); + + for await (const query of waku2.store.queryGenerator([ + eciesDecoder, + symDecoder, + TestDecoder + ])) { + for await (const msg of query) { + if (msg) { + messages.push(msg as DecodedMessage); + } + } + } + + // Messages are ordered from oldest to latest within a page (1 page query) + expect(bytesToUtf8(messages[0].payload!)).to.eq(asymText); + expect(bytesToUtf8(messages[1].payload!)).to.eq(symText); + expect(bytesToUtf8(messages[2].payload!)).to.eq(clearText); + expect(messages?.length).eq(3); + }); + + it("Ordered callback, aborts when callback returns true", async function () { + await sendMessages(nwaku, totalMsgs, TestContentTopic, DefaultPubSubTopic); + waku = await startAndConnectLightNode(nwaku); + + const desiredMsgs = 14; + const messages: IMessage[] = []; + await waku.store.queryWithOrderedCallback( + [TestDecoder], + async (msg) => { + messages.push(msg); + return messages.length >= desiredMsgs; + }, + { pageSize: 7 } + ); + + expect(messages?.length).eq(desiredMsgs); + }); + + it("Query generator for 2000 messages", async function () { + this.timeout(40000); + await sendMessages(nwaku, 2000, TestContentTopic, DefaultPubSubTopic); + waku = await startAndConnectLightNode(nwaku); + const messages = await processQueriedMessages( + waku, + [TestDecoder], + DefaultPubSubTopic + ); + + expect(messages?.length).eq(2000); + }); +}); diff --git a/packages/tests/tests/store/multiple_pubsub.spec.ts b/packages/tests/tests/store/multiple_pubsub.spec.ts new file mode 100644 index 0000000000..f64e80be7e --- /dev/null +++ b/packages/tests/tests/store/multiple_pubsub.spec.ts @@ -0,0 +1,143 @@ +import { DefaultPubSubTopic, waitForRemotePeer } from "@waku/core"; +import type { IMessage, LightNode } from "@waku/interfaces"; +import { createLightNode, Protocols } from "@waku/sdk"; +import { expect } from "chai"; + +import { + makeLogFileName, + NimGoNode, + NOISE_KEY_1, + tearDownNodes +} from "../../src/index.js"; + +import { + customContentTopic, + customPubSubTopic, + customTestDecoder, + processQueriedMessages, + sendMessages, + startAndConnectLightNode, + TestContentTopic, + TestDecoder, + totalMsgs +} from "./utils.js"; + +describe("Waku Store, custom pubsub topic", function () { + this.timeout(15000); + let waku: LightNode; + let nwaku: NimGoNode; + let nwaku2: NimGoNode; + + beforeEach(async function () { + this.timeout(15000); + nwaku = new NimGoNode(makeLogFileName(this)); + await nwaku.start({ + store: true, + topic: [customPubSubTopic, DefaultPubSubTopic], + relay: true + }); + await nwaku.ensureSubscriptions([customPubSubTopic, DefaultPubSubTopic]); + }); + + afterEach(async function () { + this.timeout(15000); + await tearDownNodes([nwaku, nwaku2], waku); + }); + + it("Generator, custom pubsub topic", async function () { + await sendMessages(nwaku, totalMsgs, customContentTopic, customPubSubTopic); + waku = await startAndConnectLightNode(nwaku, [customPubSubTopic]); + const messages = await processQueriedMessages( + waku, + [customTestDecoder], + customPubSubTopic + ); + + expect(messages?.length).eq(totalMsgs); + const result = messages?.findIndex((msg) => { + return msg.payload![0]! === 0; + }); + expect(result).to.not.eq(-1); + }); + + it("Generator, 2 different pubsubtopics", async function () { + this.timeout(10000); + + const totalMsgs = 10; + await sendMessages(nwaku, totalMsgs, customContentTopic, customPubSubTopic); + await sendMessages(nwaku, totalMsgs, TestContentTopic, DefaultPubSubTopic); + + waku = await startAndConnectLightNode(nwaku, [ + customPubSubTopic, + DefaultPubSubTopic + ]); + + const customMessages = await processQueriedMessages( + waku, + [customTestDecoder], + customPubSubTopic + ); + expect(customMessages?.length).eq(totalMsgs); + const result1 = customMessages?.findIndex((msg) => { + return msg.payload![0]! === 0; + }); + expect(result1).to.not.eq(-1); + + const testMessages = await processQueriedMessages( + waku, + [TestDecoder], + DefaultPubSubTopic + ); + expect(testMessages?.length).eq(totalMsgs); + const result2 = testMessages?.findIndex((msg) => { + return msg.payload![0]! === 0; + }); + expect(result2).to.not.eq(-1); + }); + + it("Generator, 2 nwaku nodes each with different pubsubtopics", async function () { + this.timeout(10000); + + // Set up and start a new nwaku node with Default PubSubtopic + nwaku2 = new NimGoNode(makeLogFileName(this) + "2"); + await nwaku2.start({ + store: true, + topic: [DefaultPubSubTopic], + relay: true + }); + await nwaku2.ensureSubscriptions([DefaultPubSubTopic]); + + const totalMsgs = 10; + await sendMessages(nwaku, totalMsgs, customContentTopic, customPubSubTopic); + await sendMessages(nwaku2, totalMsgs, TestContentTopic, DefaultPubSubTopic); + + waku = await createLightNode({ + staticNoiseKey: NOISE_KEY_1, + pubSubTopics: [customPubSubTopic, DefaultPubSubTopic] + }); + await waku.start(); + + await waku.dial(await nwaku.getMultiaddrWithId()); + await waku.dial(await nwaku2.getMultiaddrWithId()); + await waitForRemotePeer(waku, [Protocols.Store]); + + let customMessages: IMessage[] = []; + let testMessages: IMessage[] = []; + + while ( + customMessages.length != totalMsgs || + testMessages.length != totalMsgs + ) { + customMessages = await processQueriedMessages( + waku, + [customTestDecoder], + customPubSubTopic + ); + testMessages = await processQueriedMessages( + waku, + [TestDecoder], + DefaultPubSubTopic + ); + } + }); +}); diff --git a/packages/tests/tests/store/order.node.spec.ts b/packages/tests/tests/store/order.node.spec.ts new file mode 100644 index 0000000000..98f34b4bcb --- /dev/null +++ b/packages/tests/tests/store/order.node.spec.ts @@ -0,0 +1,129 @@ +import { DecodedMessage, DefaultPubSubTopic, PageDirection } from "@waku/core"; +import type { IMessage, LightNode } from "@waku/interfaces"; +import { expect } from "chai"; + +import { makeLogFileName, NimGoNode, tearDownNodes } from "../../src/index.js"; + +import { + chunkAndReverseArray, + sendMessages, + startAndConnectLightNode, + TestContentTopic, + TestDecoder, + totalMsgs +} from "./utils.js"; + +describe("Waku Store, order", function () { + this.timeout(15000); + let waku: LightNode; + let nwaku: NimGoNode; + + beforeEach(async function () { + this.timeout(15000); + nwaku = new NimGoNode(makeLogFileName(this)); + await nwaku.startWithRetries({ store: true, lightpush: true, relay: true }); + await nwaku.ensureSubscriptions(); + }); + + afterEach(async function () { + this.timeout(15000); + await tearDownNodes(nwaku, waku); + }); + + [PageDirection.FORWARD, PageDirection.BACKWARD].forEach((pageDirection) => { + it(`Query Generator - ${pageDirection}`, async function () { + await sendMessages( + nwaku, + totalMsgs, + TestContentTopic, + DefaultPubSubTopic + ); + waku = await startAndConnectLightNode(nwaku); + + const messages: IMessage[] = []; + for await (const query of waku.store.queryGenerator([TestDecoder], { + pageDirection: pageDirection + })) { + for await (const msg of query) { + if (msg) { + messages.push(msg as DecodedMessage); + } + } + } + + let expectedPayloads = Array.from(Array(totalMsgs).keys()); + if (pageDirection === PageDirection.BACKWARD) { + expectedPayloads = chunkAndReverseArray(expectedPayloads, 10); + } + + expect(messages?.length).eq(totalMsgs); + const payloads = messages.map((msg) => msg.payload[0]!); + expect(payloads).to.deep.eq(expectedPayloads); + }); + }); + + [PageDirection.FORWARD, PageDirection.BACKWARD].forEach((pageDirection) => { + it(`Promise Callback - ${pageDirection}`, async function () { + await sendMessages( + nwaku, + totalMsgs, + TestContentTopic, + DefaultPubSubTopic + ); + waku = await startAndConnectLightNode(nwaku); + + const messages: IMessage[] = []; + await waku.store.queryWithPromiseCallback( + [TestDecoder], + async (msgPromise) => { + const msg = await msgPromise; + if (msg) { + messages.push(msg); + } + }, + { + pageDirection: pageDirection + } + ); + + let expectedPayloads = Array.from(Array(totalMsgs).keys()); + if (pageDirection === PageDirection.BACKWARD) { + expectedPayloads = chunkAndReverseArray(expectedPayloads, 10); + } + + expect(messages?.length).eq(totalMsgs); + const payloads = messages.map((msg) => msg.payload[0]!); + expect(payloads).to.deep.eq(expectedPayloads); + }); + }); + + [PageDirection.FORWARD, PageDirection.BACKWARD].forEach((pageDirection) => { + it(`Ordered Callback - ${pageDirection}`, async function () { + await sendMessages( + nwaku, + totalMsgs, + TestContentTopic, + DefaultPubSubTopic + ); + waku = await startAndConnectLightNode(nwaku); + + const messages: IMessage[] = []; + await waku.store.queryWithOrderedCallback( + [TestDecoder], + async (msg) => { + messages.push(msg); + }, + { + pageDirection: pageDirection + } + ); + + if (pageDirection === PageDirection.BACKWARD) { + messages.reverse(); + } + expect(messages?.length).eq(totalMsgs); + const payloads = messages.map((msg) => msg.payload[0]!); + expect(payloads).to.deep.eq(Array.from(Array(totalMsgs).keys())); + }); + }); +}); diff --git a/packages/tests/tests/store/page_size.node.spec.ts b/packages/tests/tests/store/page_size.node.spec.ts new file mode 100644 index 0000000000..4f1b466a10 --- /dev/null +++ b/packages/tests/tests/store/page_size.node.spec.ts @@ -0,0 +1,99 @@ +import { DefaultPubSubTopic } from "@waku/core"; +import type { LightNode } from "@waku/interfaces"; +import { expect } from "chai"; + +import { makeLogFileName, NimGoNode, tearDownNodes } from "../../src/index.js"; + +import { + sendMessages, + startAndConnectLightNode, + TestContentTopic, + TestDecoder +} from "./utils.js"; + +describe("Waku Store, page size", function () { + this.timeout(15000); + let waku: LightNode; + let nwaku: NimGoNode; + + beforeEach(async function () { + this.timeout(15000); + nwaku = new NimGoNode(makeLogFileName(this)); + await nwaku.startWithRetries({ store: true, lightpush: true, relay: true }); + await nwaku.ensureSubscriptions(); + }); + + afterEach(async function () { + this.timeout(15000); + await tearDownNodes(nwaku, waku); + }); + + [ + [0, 110], + [1, 4], + [3, 20], + [10, 10], + [11, 10], + [19, 20], + [110, 120] + ].forEach(([pageSize, messageCount]) => { + it(`Passing page size ${pageSize} when there are ${messageCount} messages`, async function () { + await sendMessages( + nwaku, + messageCount, + TestContentTopic, + DefaultPubSubTopic + ); + + // Determine effectivePageSize for test expectations + let effectivePageSize = pageSize; + if (pageSize === 0) { + if (nwaku.type() == "go-waku") { + effectivePageSize = 100; + } else { + effectivePageSize = 20; + } + } else if (pageSize > 100) { + effectivePageSize = 100; + } + + waku = await startAndConnectLightNode(nwaku); + let messagesRetrieved = 0; + for await (const query of waku.store.queryGenerator([TestDecoder], { + pageSize: pageSize + })) { + // Calculate expected page size + const expectedPageSize = Math.min( + effectivePageSize, + messageCount - messagesRetrieved + ); + expect(query.length).eq(expectedPageSize); + + for await (const msg of query) { + if (msg) { + messagesRetrieved++; + } + } + } + + expect(messagesRetrieved).eq(messageCount); + }); + }); + + // Possible issue here because pageSize differs across implementations + it("Default pageSize", async function () { + await sendMessages(nwaku, 20, TestContentTopic, DefaultPubSubTopic); + waku = await startAndConnectLightNode(nwaku); + + let messagesRetrieved = 0; + for await (const query of waku.store.queryGenerator([TestDecoder])) { + expect(query.length).eq(10); + for await (const msg of query) { + if (msg) { + messagesRetrieved++; + } + } + } + expect(messagesRetrieved).eq(20); + }); +}); diff --git a/packages/tests/tests/store/sorting.node.spec.ts b/packages/tests/tests/store/sorting.node.spec.ts new file mode 100644 index 0000000000..b7d232cec6 --- /dev/null +++ b/packages/tests/tests/store/sorting.node.spec.ts @@ -0,0 +1,110 @@ +import { DecodedMessage, DefaultPubSubTopic, PageDirection } from "@waku/core"; +import type { IMessage, LightNode } from "@waku/interfaces"; + +import { makeLogFileName, NimGoNode, tearDownNodes } from "../../src/index.js"; + +import { + sendMessages, + startAndConnectLightNode, + TestContentTopic, + TestDecoder, + totalMsgs +} from "./utils.js"; + +describe("Waku Store, sorting", function () { + this.timeout(15000); + let waku: LightNode; + let nwaku: NimGoNode; + + beforeEach(async function () { + this.timeout(15000); + nwaku = new NimGoNode(makeLogFileName(this)); + await nwaku.startWithRetries({ store: true, lightpush: true, relay: true }); + await nwaku.ensureSubscriptions(); + }); + + afterEach(async function () { + this.timeout(15000); + await tearDownNodes(nwaku, waku); + }); + + [PageDirection.FORWARD, PageDirection.BACKWARD].forEach((pageDirection) => { + it(`Query Generator sorting by timestamp while page direction is ${pageDirection}`, async function () { + await sendMessages( + nwaku, + totalMsgs, + TestContentTopic, + DefaultPubSubTopic + ); + waku = await startAndConnectLightNode(nwaku); + + for await (const query of waku.store.queryGenerator([TestDecoder], { + pageDirection: PageDirection.FORWARD + })) { + const page: IMessage[] = []; + for await (const msg of query) { + if (msg) { + page.push(msg as DecodedMessage); + } + } + // Extract timestamps + const timestamps = page.map( + (msg) => msg.timestamp as unknown as bigint + ); + // Check if timestamps are sorted + for (let i = 1; i < timestamps.length; i++) { + if (timestamps[i] < timestamps[i - 1]) { + throw new Error( + `Messages are not sorted by timestamp. Found out of order at index ${i}` + ); + } + } + } + }); + }); + + [PageDirection.FORWARD, PageDirection.BACKWARD].forEach((pageDirection) => { + it(`Ordered Callback sorting by timestamp while page direction is ${pageDirection}`, async function () { + await sendMessages( + nwaku, + totalMsgs, + TestContentTopic, + DefaultPubSubTopic + ); + waku = await startAndConnectLightNode(nwaku); + + const messages: IMessage[] = []; + await waku.store.queryWithOrderedCallback( + [TestDecoder], + async (msg) => { + messages.push(msg); + }, + { + pageDirection: pageDirection + } + ); + // Extract timestamps + const timestamps = messages.map( + (msg) => msg.timestamp as unknown as bigint + ); + // Check if timestamps are sorted + for (let i = 1; i < timestamps.length; i++) { + if ( + pageDirection === PageDirection.FORWARD && + timestamps[i] < timestamps[i - 1] + ) { + throw new Error( + `Messages are not sorted by timestamp in FORWARD direction. Found out of order at index ${i}` + ); + } else if ( + pageDirection === PageDirection.BACKWARD && + timestamps[i] > timestamps[i - 1] + ) { + throw new Error( + `Messages are not sorted by timestamp in BACKWARD direction. Found out of order at index ${i}` + ); + } + } + }); + }); +}); diff --git a/packages/tests/tests/store/time_filter.node.spec.ts b/packages/tests/tests/store/time_filter.node.spec.ts new file mode 100644 index 0000000000..f53ff23b8f --- /dev/null +++ b/packages/tests/tests/store/time_filter.node.spec.ts @@ -0,0 +1,119 @@ +import type { IMessage, LightNode } from "@waku/interfaces"; +import { expect } from "chai"; + +import { makeLogFileName, NimGoNode, tearDownNodes } from "../../src/index.js"; + +import { + adjustDate, + startAndConnectLightNode, + TestContentTopic, + TestDecoder +} from "./utils.js"; + +describe("Waku Store, time filter", function () { + this.timeout(15000); + let waku: LightNode; + let nwaku: NimGoNode; + + beforeEach(async function () { + this.timeout(15000); + nwaku = new NimGoNode(makeLogFileName(this)); + await nwaku.startWithRetries({ store: true, lightpush: true, relay: true }); + await nwaku.ensureSubscriptions(); + }); + + afterEach(async function () { + this.timeout(15000); + await tearDownNodes(nwaku, waku); + }); + + [ + [-19000, -10, 10], + [-19000, 1, 4], + [-19000, -2, -1], + // [-19000, 0, 1000], // skipped for now because it fails on gowaku which returns messages > startTime + [-19000, -1000, 0], + [19000, -10, 10], // message in the future + [-19000, 10, -10] // startTime is newer than endTime + ].forEach(([msgTime, startTime, endTime]) => { + it(`msgTime: ${msgTime} ms from now, startTime: ${ + msgTime + startTime + }, endTime: ${msgTime + endTime}`, async function () { + const msgTimestamp = adjustDate(new Date(), msgTime); + expect( + await nwaku.sendMessage( + NimGoNode.toMessageRpcQuery({ + payload: new Uint8Array([0]), + contentTopic: TestContentTopic, + timestamp: msgTimestamp + }) + ) + ).to.be.true; + + waku = await startAndConnectLightNode(nwaku); + + const messages: IMessage[] = []; + await waku.store.queryWithOrderedCallback( + [TestDecoder], + (msg) => { + if (msg) { + messages.push(msg); + } + }, + { + timeFilter: { + startTime: adjustDate(msgTimestamp, startTime), + endTime: adjustDate(msgTimestamp, endTime) + } + } + ); + + // in this context 0 is the messageTimestamp + if ( + (startTime > 0 && endTime > 0) || + (startTime < 0 && endTime < 0) || + startTime > endTime + ) { + expect(messages.length).eq(0); + } else { + expect(messages.length).eq(1); + expect(messages[0].payload![0]!).eq(0); + } + }); + }); + + [-20000, 40000].forEach((msgTime) => { + it(`Timestamp too far from node time: ${msgTime} ms from now`, async function () { + const msgTimestamp = adjustDate(new Date(), msgTime); + expect( + await nwaku.sendMessage( + NimGoNode.toMessageRpcQuery({ + payload: new Uint8Array([0]), + contentTopic: TestContentTopic, + timestamp: msgTimestamp + }) + ) + ).to.be.true; + + waku = await startAndConnectLightNode(nwaku); + + const messages: IMessage[] = []; + await waku.store.queryWithOrderedCallback( + [TestDecoder], + (msg) => { + if (msg) { + messages.push(msg); + } + }, + { + timeFilter: { + startTime: adjustDate(msgTimestamp, -1000), + endTime: adjustDate(msgTimestamp, 1000) + } + } + ); + + expect(messages.length).eq(0); + }); + }); +}); diff --git a/packages/tests/tests/store/utils.ts b/packages/tests/tests/store/utils.ts new file mode 100644 index 0000000000..d4ccac15ce --- /dev/null +++ b/packages/tests/tests/store/utils.ts @@ -0,0 +1,97 @@ +import { + createDecoder, + createEncoder, + DecodedMessage, + Decoder, + DefaultPubSubTopic, + waitForRemotePeer +} from "@waku/core"; +import { LightNode, Protocols } from "@waku/interfaces"; +import { createLightNode } from "@waku/sdk"; +import { expect } from "chai"; +import debug from "debug"; + +import { delay, NimGoNode, NOISE_KEY_1 } from "../../src"; + +export const log = debug("waku:test:store"); + +export const TestContentTopic = "/test/1/waku-store/utf8"; +export const TestEncoder = createEncoder({ contentTopic: TestContentTopic }); +export const TestDecoder = createDecoder(TestContentTopic); +export const customContentTopic = "/test/2/waku-store/utf8"; +export const customPubSubTopic = "/waku/2/custom-dapp/proto"; +export const customTestDecoder = createDecoder( + customContentTopic, + customPubSubTopic +); +export const totalMsgs = 20; +export const messageText = "Store Push works!"; + +export async function sendMessages( + instance: NimGoNode, + numMessages: number, + contentTopic: string, + pubSubTopic: string +): Promise { + for (let i = 0; i < numMessages; i++) { + expect( + await instance.sendMessage( + NimGoNode.toMessageRpcQuery({ + payload: new Uint8Array([i]), + contentTopic: contentTopic + }), + pubSubTopic + ) + ).to.be.true; + await delay(1); // to ensure each timestamp is unique. + } +} + +export async function processQueriedMessages( + instance: LightNode, + decoders: Array, + expectedTopic?: string +): Promise { + const localMessages: DecodedMessage[] = []; + for await (const query of instance.store.queryGenerator(decoders)) { + for await (const msg of query) { + if (msg) { + expect(msg.pubSubTopic).to.eq(expectedTopic); + localMessages.push(msg as DecodedMessage); + } + } + } + return localMessages; +} + +export async function startAndConnectLightNode( + instance: NimGoNode, + pubSubTopics: string[] = [DefaultPubSubTopic] +): Promise { + const waku = await createLightNode({ + pubSubTopics: pubSubTopics, + staticNoiseKey: NOISE_KEY_1 + }); + await waku.start(); + await waku.dial(await instance.getMultiaddrWithId()); + await waitForRemotePeer(waku, [Protocols.Store]); + log("Waku node created"); + return waku; +} + +export function chunkAndReverseArray( + arr: number[], + chunkSize: number +): number[] { + const result: number[] = []; + for (let i = 0; i < arr.length; i += chunkSize) { + result.push(...arr.slice(i, i + chunkSize).reverse()); + } + return result.reverse(); +} + +export const adjustDate = (baseDate: Date, adjustMs: number): Date => { + const adjusted = new Date(baseDate); + adjusted.setTime(adjusted.getTime() + adjustMs); + return adjusted; +}; diff --git a/packages/tests/tests/utils.spec.ts b/packages/tests/tests/utils.spec.ts index fa97efeaa7..45f814a71e 100644 --- a/packages/tests/tests/utils.spec.ts +++ b/packages/tests/tests/utils.spec.ts @@ -50,7 +50,7 @@ describe("Util: toAsyncIterator: Filter", () => { afterEach(async function () { this.timeout(10000); - tearDownNodes([nwaku], [waku]); + await tearDownNodes(nwaku, waku); }); it("creates an iterator", async function () { diff --git a/packages/tests/tests/wait_for_remote_peer.node.spec.ts b/packages/tests/tests/wait_for_remote_peer.node.spec.ts index 575ada689d..3034fdbcb1 100644 --- a/packages/tests/tests/wait_for_remote_peer.node.spec.ts +++ b/packages/tests/tests/wait_for_remote_peer.node.spec.ts @@ -1,4 +1,4 @@ -import { waitForRemotePeer } from "@waku/core"; +import { DefaultPubSubTopic, waitForRemotePeer } from "@waku/core"; import type { LightNode, RelayNode } from "@waku/interfaces"; import { Protocols } from "@waku/interfaces"; import { createLightNode, createRelayNode } from "@waku/sdk"; @@ -39,7 +39,7 @@ describe("Wait for remote peer", function () { await waku1.dial(multiAddrWithId); await delay(1000); await waitForRemotePeer(waku1, [Protocols.Relay]); - const peers = waku1.relay.getMeshPeers(); + const peers = waku1.relay.getMeshPeers(DefaultPubSubTopic); const nimPeerId = multiAddrWithId.getPeerId(); expect(nimPeerId).to.not.be.undefined; @@ -262,7 +262,7 @@ describe("Wait for remote peer", function () { await waku1.dial(multiAddrWithId); await waitForRemotePeer(waku1); - const peers = waku1.relay.getMeshPeers(); + const peers = waku1.relay.getMeshPeers(DefaultPubSubTopic); const nimPeerId = multiAddrWithId.getPeerId(); diff --git a/packages/tests/tests/waku.node.spec.ts b/packages/tests/tests/waku.node.spec.ts index 839d680996..3cc14ae49a 100644 --- a/packages/tests/tests/waku.node.spec.ts +++ b/packages/tests/tests/waku.node.spec.ts @@ -12,7 +12,11 @@ import { createEncoder, generateSymmetricKey } from "@waku/message-encryption/symmetric"; -import { createLightNode, createRelayNode } from "@waku/sdk"; +import { + createLightNode, + createEncoder as createPlainEncoder, + createRelayNode +} from "@waku/sdk"; import { bytesToUtf8, utf8ToBytes } from "@waku/utils/bytes"; import { expect } from "chai"; @@ -26,15 +30,16 @@ import { NimGoNode } from "../src/node/node.js"; const TestContentTopic = "/test/1/waku/utf8"; +const TestEncoder = createPlainEncoder({ contentTopic: TestContentTopic }); + describe("Waku Dial [node only]", function () { describe("Interop: NimGoNode", function () { - let waku: Waku; + let waku: LightNode; let nwaku: NimGoNode; afterEach(async function () { - !!nwaku && - nwaku.stop().catch((e) => console.log("Nwaku failed to stop", e)); - !!waku && waku.stop().catch((e) => console.log("Waku failed to stop", e)); + this.timeout(15000); + await tearDownNodes(nwaku, waku); }); it("connects to nwaku", async function () { @@ -61,6 +66,35 @@ describe("Waku Dial [node only]", function () { const nimPeerId = await nwaku.getPeerId(); expect(await waku.libp2p.peerStore.has(nimPeerId)).to.be.true; }); + + it("Does not throw an exception when node disconnects", async function () { + this.timeout(20_000); + + process.on("unhandledRejection", (e) => + expect.fail("unhandledRejection", e) + ); + process.on("uncaughtException", (e) => + expect.fail("uncaughtException", e) + ); + + nwaku = new NimGoNode(makeLogFileName(this)); + await nwaku.start({ + filter: true, + store: true, + lightpush: true + }); + const multiAddrWithId = await nwaku.getMultiaddrWithId(); + + waku = await createLightNode({ + staticNoiseKey: NOISE_KEY_1 + }); + await waku.start(); + await waku.dial(multiAddrWithId); + await nwaku.stop(); + await waku.lightPush?.send(TestEncoder, { + payload: utf8ToBytes("hello world") + }); + }); }); describe("Bootstrap", function () { @@ -68,8 +102,8 @@ describe("Waku Dial [node only]", function () { let nwaku: NimGoNode; afterEach(async function () { - this.timeout(10000); - tearDownNodes([nwaku], [waku]); + this.timeout(15000); + await tearDownNodes(nwaku, waku); }); it("Passing an array", async function () { diff --git a/packages/utils/package.json b/packages/utils/package.json index 100af1624a..d4b3f25a42 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -62,26 +62,22 @@ "reset-hard": "git clean -dfx -e .idea && git reset --hard && npm i && npm run build" }, "engines": { - "node": ">=16" + "node": ">=18" }, "dependencies": { + "chai": "^4.3.8", "debug": "^4.3.4", - "uint8arrays": "^4.0.4", - "@waku/interfaces": "0.0.18" + "uint8arrays": "^4.0.4" }, "devDependencies": { "@rollup/plugin-commonjs": "^25.0.4", "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.1.0", "@waku/build-utils": "*", - "@waku/interfaces": "0.0.17", + "@waku/interfaces": "0.0.18", "cspell": "^7.3.2", "npm-run-all": "^4.1.5", - "rollup": "^3.29.2", - "typescript": "^5.0.4" - }, - "typedoc": { - "entryPoint": "./src/index.ts" + "rollup": "^3.29.2" }, "files": [ "dist", diff --git a/packages/utils/src/common/index.ts b/packages/utils/src/common/index.ts index f73240fbeb..f834bc22c4 100644 --- a/packages/utils/src/common/index.ts +++ b/packages/utils/src/common/index.ts @@ -3,6 +3,8 @@ export * from "./random_subset.js"; export * from "./group_by.js"; export * from "./to_async_iterator.js"; export * from "./is_size_valid.js"; +export * from "./sharding.js"; +export * from "./push_or_init_map.js"; export function removeItemFromArray(arr: unknown[], value: unknown): unknown[] { const index = arr.indexOf(value); diff --git a/packages/core/src/lib/push_or_init_map.spec.ts b/packages/utils/src/common/push_or_init_map.spec.ts similarity index 100% rename from packages/core/src/lib/push_or_init_map.spec.ts rename to packages/utils/src/common/push_or_init_map.spec.ts diff --git a/packages/core/src/lib/push_or_init_map.ts b/packages/utils/src/common/push_or_init_map.ts similarity index 100% rename from packages/core/src/lib/push_or_init_map.ts rename to packages/utils/src/common/push_or_init_map.ts diff --git a/packages/utils/src/common/sharding.ts b/packages/utils/src/common/sharding.ts new file mode 100644 index 0000000000..f14ba20d69 --- /dev/null +++ b/packages/utils/src/common/sharding.ts @@ -0,0 +1,12 @@ +import type { PubSubTopic } from "@waku/interfaces"; + +export function ensurePubsubTopicIsConfigured( + pubsubTopic: PubSubTopic, + configuredTopics: PubSubTopic[] +): void { + if (!configuredTopics.includes(pubsubTopic)) { + throw new Error( + `PubSub topic ${pubsubTopic} has not been configured on this instance. Configured topics are: ${configuredTopics}. Please update your configuration by passing in the topic during Waku node instantiation.` + ); + } +} diff --git a/packages/utils/typedoc.json b/packages/utils/typedoc.json new file mode 100644 index 0000000000..00aa3dc064 --- /dev/null +++ b/packages/utils/typedoc.json @@ -0,0 +1,4 @@ +{ + "extends": ["../../typedoc.base.json"], + "entryPoints": ["src/index.ts"] +} \ No newline at end of file diff --git a/tsconfig.dev.json b/tsconfig.dev.json index 74df832b65..17eb953a8b 100644 --- a/tsconfig.dev.json +++ b/tsconfig.dev.json @@ -1,8 +1,8 @@ { "extends": "./tsconfig", "compilerOptions": { - "module": "nodenext", + "module": "ESNext", + "moduleResolution": "Bundler", "noEmit": true - }, - "exclude": [] + } } diff --git a/tsconfig.json b/tsconfig.json index 073c567c6f..5a268831bf 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "incremental": true, "target": "ES2022", - "moduleResolution": "node16", + "moduleResolution": "Bundler", "module": "ES2022", "declaration": true, "sourceMap": true, diff --git a/typedoc.base.json b/typedoc.base.json new file mode 100644 index 0000000000..1d7d0d49b7 --- /dev/null +++ b/typedoc.base.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://typedoc.org/schema.json", + "includeVersion": true, + "validation": { + "invalidLink": true, + "notExported": true + } +} \ No newline at end of file diff --git a/typedoc.cjs b/typedoc.cjs index 664feb16a3..7c38565c75 100644 --- a/typedoc.cjs +++ b/typedoc.cjs @@ -1,21 +1,16 @@ const packageJson = require("./package.json"); -let entryPoints = []; -for (const entryPoint of packageJson.workspaces) { - if (!["packages/tests", "packages/build-utils"].includes(entryPoint)) - entryPoints.push(entryPoint); -} - module.exports = { - entryPointStrategy: "packages", - entryPoints, - out: "docs", - exclude: ["**/*.spec.ts"], - excludeInternal: true, - treatWarningsAsErrors: true, - excludeExternals: true, - validation: { - invalidLink: true, - notExported: true, - }, + "treatWarningsAsErrors": false, + "entryPointStrategy": "packages", + "entryPoints": packageJson.workspaces, + "out": "docs", + "excludeInternal": true, + "excludeExternals": true, + "excludeReferences": true, + "exclude": ["**/*.spec.ts", "packages/build-utils", "packages/tests"], + "validation": { + "invalidLink": true, + "notExported": true, + } };