diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 00000000..e5b6d8d6 --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 00000000..b0bc3f86 --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json", + "changelog": "@rosen-bridge/changeset-formatter", + "commit": false, + "fixed": [], + "linked": [], + "access": "public", + "baseBranch": "dev", + "updateInternalDependencies": "patch", + "ignore": [] +} diff --git a/.changeset/silly-dryers-fail.md b/.changeset/silly-dryers-fail.md new file mode 100644 index 00000000..a845151c --- /dev/null +++ b/.changeset/silly-dryers-fail.md @@ -0,0 +1,2 @@ +--- +--- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 177a3048..00c9e349 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,6 +5,7 @@ stages: - test - installation_18 - coverage + - changeset installation_16: image: node:16.19.1 @@ -81,3 +82,17 @@ coverage: coverage_report: coverage_format: cobertura path: coverage/cobertura-coverage.xml + +changeset: + image: node:18.14.0 + stage: changeset + needs: ['coverage'] + cache: + key: $CI_COMMIT_REF_NAME + policy: pull + paths: + - node_modules + before_script: + - git fetch origin dev + script: + - npx changeset status --since=origin/dev diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..807ef772 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,50 @@ +# @rosen-bridge/watcher + +## 3.0.0 + +### Major Changes + +- Update minimum-fee to v1 + +### Minor Changes + +- Upgrade health check package to latest +- Add bitcoin network +- Integrate rpc scanner for bitcoin network + +### Patch Changes + +- Update typeorm version to 0.3.20 +- Update minimum-fee and health-check packages + +## 2.1.0 + +### Minor Changes + +- Support Raspberry Pi from version 3 and above + +## 2.0.2 + +### Patch Changes + +- fix unlock api response schema +- add salt to the apiKey to prevent precomputed hash attacks +- solve mocha test coverage hanging problem + +## 2.0.1 + +### Patch Changes + +- Update scanner sync critical threshold and limit the watcher not to work with scanner `Broken` status. +- Fix `commitmentTimeoutConfirmation` in default config +- Use the repo box value instead of min box value in lock and unlock transactions + +## 2.0.0 + +### Major Changes + +- update watcher according to contract v3 + +### Patch Changes + +- add version to /info api diff --git a/config/dataSource.ts b/config/dataSource.ts index a68b7758..2894d8d7 100644 --- a/config/dataSource.ts +++ b/config/dataSource.ts @@ -8,6 +8,7 @@ import { } from '@rosen-bridge/observation-extractor'; import { BlockEntity, + ExtractorStatusEntity, migrations as scannerMigrations, } from '@rosen-bridge/scanner'; import { @@ -15,6 +16,7 @@ import { EventTriggerEntity, migrations as watcherDataExtractorMigrations, PermitEntity, + CollateralEntity, } from '@rosen-bridge/watcher-data-extractor'; import { DataSource } from 'typeorm'; import { getConfig } from '../src/config/config'; @@ -35,7 +37,9 @@ const dbConfigs = { CommitmentEntity, EventTriggerEntity, PermitEntity, + CollateralEntity, ObservationEntity, + ExtractorStatusEntity, TokenEntity, TxEntity, ObservationStatusEntity, diff --git a/config/default.yaml b/config/default.yaml index e44a1764..7c396019 100644 --- a/config/default.yaml +++ b/config/default.yaml @@ -1,8 +1,20 @@ --- -network: '' # which scanner network used in this watcher ergo/cardano +network: '' # which scanner network used in this watcher ergo/cardano/bitcoin observation: confirmation: 60 # number of required block confirmations to create the commitment after observing an event validThreshold: 12960 # observations that have not been triggered won't be processed after this period (in blocks) +bitcoin: + type: '' # options: esplora, rpc + initial: + height: -1 # initial height of scanning + esplora: + interval: 180 # esplora scanning interval (in seconds) + timeout: 10 # esplora request timeout (in seconds) + url: 'https://blockstream.info' # esplora url + rpc: + interval: 180 # rpc scanning interval (in seconds) + timeout: 10 # rpc request timeout (in seconds) + url: '' # rpc url cardano: type: '' # options: koios, ogmios, blockfrost initial: @@ -38,7 +50,7 @@ ergo: transaction: timeout: 10 # will remove invalid transactions from process queue after this period (in blocks) confirmation: 4 # required block confirmations for sent transactions - commitmentTimeoutConfirmation: 4320 # required block confirmations for a commitment to redeem + commitmentTimeoutConfirmation: 720 # required block confirmations for a commitment to redeem interval: scanner: 180 # scanner update interval (in seconds) revenue: 120 # revenue update interval (in seconds) @@ -48,6 +60,9 @@ ergo: creation: 120 # commitment creation interval (in seconds) reveal: 180 # commitment reveal interval (in seconds) redeem: 120 # commitment reveal interval (in seconds) + wid: + status: 120 # wid status check interval (in seconds) + minimumFee: 300 path: addresses: config/rosen # addresses path # tokens: config/rosen/tokens.json # default tokens path. @@ -78,7 +93,7 @@ healthCheck: ergCriticalThreshold: 100000000 # minimum required erg balance ergoScanner: warnDifference: 2 # warning difference between existing and scanned blocks height - criticalDifference: 100 # critical difference between existing and scanned blocks height + criticalDifference: 10 # critical difference between existing and scanned blocks height ergoNode: maxHeightDifference: 2 # maximum difference between header height and full height maxBlockTime: 30 # maximum time to see a new block in minutes @@ -87,6 +102,9 @@ healthCheck: cardanoScanner: warnDifference: 2 # warning difference between existing and scanned blocks height criticalDifference: 600 # critical difference between existing and scanned blocks height + bitcoinScanner: + warnDifference: 2 # warning difference between existing and scanned blocks height + criticalDifference: 10 # critical difference between existing and scanned blocks height permit: warnCommitmentCount: 4 # warning remaining permits for creating commitment criticalCommitmentCount: 0 # critical remaining permits for creating commitment diff --git a/package-lock.json b/package-lock.json index dfea7c00..a7d4a11d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,22 +1,32 @@ { "name": "@rosen-bridge/watcher", - "version": "1.0.0", + "version": "3.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@rosen-bridge/watcher", - "version": "1.0.0", + "version": "3.0.0", "license": "ISC", "dependencies": { "@emurgo/cip14-js": "^3.0.1", - "@rosen-bridge/address-extractor": "^3.2.1", - "@rosen-bridge/health-check": "^3.0.1", - "@rosen-bridge/minimum-fee": "^0.1.13", - "@rosen-bridge/observation-extractor": "^4.2.1", - "@rosen-bridge/scanner": "^3.2.1", - "@rosen-bridge/watcher-data-extractor": "^4.2.3", + "@rosen-bridge/address-extractor": "^4.0.0", + "@rosen-bridge/asset-check": "^0.2.0", + "@rosen-bridge/bitcoin-esplora-scanner": "^0.1.5", + "@rosen-bridge/bitcoin-observation-extractor": "^3.0.0", + "@rosen-bridge/bitcoin-rpc-scanner": "^0.1.1", + "@rosen-bridge/health-check": "^5.0.0", + "@rosen-bridge/log-level-check": "^0.1.1", + "@rosen-bridge/minimum-fee": "^2.0.1", + "@rosen-bridge/node-sync-check": "^0.1.1", + "@rosen-bridge/observation-extractor": "^4.4.4", + "@rosen-bridge/permit-check": "^0.1.1", + "@rosen-bridge/scanner": "^4.0.0", + "@rosen-bridge/scanner-sync-check": "^0.2.0", + "@rosen-bridge/watcher-data-extractor": "^6.0.0", + "@rosen-bridge/wid-check": "^0.1.1", "@rosen-bridge/winston-logger": "0.2.1", + "@rosen-clients/cardano-koios": "^2.0.3", "axios": "^0.26.1", "bip39": "^3.1.0", "blakejs": "^1.2.1", @@ -35,14 +45,16 @@ "sqlite3": "^5.0.2", "supertest": "^6.3.0", "tsconfig-paths": "^4.0.0", - "typeorm": "^0.3.6" + "typeorm": "^0.3.20" }, "devDependencies": { + "@changesets/cli": "^2.27.1", "@rollup/plugin-commonjs": "^25.0.0", "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.0.2", "@rollup/plugin-typescript": "^11.1.1", "@rollup/plugin-virtual": "^3.0.1", + "@rosen-bridge/changeset-formatter": "^0.1.0", "@rosen-bridge/rollup-plugin-node-wasm": "^0.1.0", "@types/chai": "^4.3.0", "@types/chai-as-promised": "^7.1.5", @@ -89,18 +101,25 @@ "node": ">=0.10.0" } }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" + }, "node_modules/@apollo/client": { - "version": "3.8.8", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.8.8.tgz", - "integrity": "sha512-omjd9ryGDkadZrKW6l5ktUAdS4SNaFOccYQ4ZST0HLW83y8kQaSZOCTNlpkoBUK8cv6qP8+AxOKwLm2ho8qQ+Q==", + "version": "3.10.4", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.10.4.tgz", + "integrity": "sha512-51gk0xOwN6Ls1EbTG5svFva1kdm2APHYTzmFhaAdvUQoJFDxfc0UwQgDxGptzH84vkPlo1qunY1FuboyF9LI3Q==", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", + "@wry/caches": "^1.0.0", "@wry/equality": "^0.5.6", "@wry/trie": "^0.5.0", "graphql-tag": "^2.12.6", "hoist-non-react-statics": "^3.3.2", "optimism": "^0.18.0", "prop-types": "^15.7.2", + "rehackt": "^0.1.0", "response-iterator": "^0.2.6", "symbol-observable": "^4.0.0", "ts-invariant": "^0.10.3", @@ -108,7 +127,7 @@ "zen-observable-ts": "^1.2.5" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0", + "graphql": "^15.0.0 || ^16.0.0", "graphql-ws": "^5.5.5", "react": "^16.8.0 || ^17.0.0 || ^18.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", @@ -129,6 +148,90 @@ } } }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/generator": { "version": "7.18.2", "dev": true, @@ -144,27 +247,109 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/parser": { "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", "dev": true, + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -172,6 +357,18 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/runtime": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/types": { "version": "7.19.0", "dev": true, @@ -191,11 +388,12 @@ "license": "MIT" }, "node_modules/@blockfrost/blockfrost-js": { - "version": "5.4.0", - "license": "Apache-2.0", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@blockfrost/blockfrost-js/-/blockfrost-js-5.5.0.tgz", + "integrity": "sha512-9UZIo6jRDSkRJt1r9sU2YPlz9MC3Ndh/5nCxS04H9B2MIak/jtPoJ3jTvn5dED06P8lPSKPn0QYPsIiJQ+8Kew==", "dependencies": { - "@blockfrost/openapi": "0.1.59", - "@emurgo/cardano-serialization-lib-nodejs": "^11.4.0", + "@blockfrost/openapi": "0.1.60", + "@emurgo/cardano-serialization-lib-nodejs": "^11.5.0", "@emurgo/cip14-js": "3.0.1", "bottleneck": "^2.19.5", "form-data": "^4.0.0", @@ -207,8 +405,9 @@ } }, "node_modules/@blockfrost/openapi": { - "version": "0.1.59", - "license": "MIT", + "version": "0.1.60", + "resolved": "https://registry.npmjs.org/@blockfrost/openapi/-/openapi-0.1.60.tgz", + "integrity": "sha512-Q4hebu5NkWBi4TEn3kKNqExCDk/YYel10QfLCBbY+39pr0/RUC/AzMCq4bwAkO6I168LOnl8A3WWjJt8+iwjaQ==", "dependencies": { "ajv": "^8.11.2", "cbor": "^8.1.0", @@ -216,13 +415,14 @@ } }, "node_modules/@blockfrost/openapi/node_modules/ajv": { - "version": "8.12.0", - "license": "MIT", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.14.0.tgz", + "integrity": "sha512-oYs1UUtO97ZO2lJ4bwnWeQW8/zvOIQLGKcvPTsWmvc2SYgBb+upuNS5NxoLaMU4h8Ju3Nbj6Cq8mD2LQoqVKFA==", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "uri-js": "^4.4.1" }, "funding": { "type": "github", @@ -231,13 +431,15 @@ }, "node_modules/@blockfrost/openapi/node_modules/json-schema-traverse": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/@cardano-ogmios/client": { - "version": "6.0.0", - "license": "MPL-2.0", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@cardano-ogmios/client/-/client-6.3.0.tgz", + "integrity": "sha512-nWaZ76n/R+p8nxBfRCetOuoDH8o5QToL5zWhRUu9EwHDJqM/0rzvYEk9JYCikAcVlC1qt6+3CcG4nCpG0dsptw==", "dependencies": { - "@cardano-ogmios/schema": "6.0.0", + "@cardano-ogmios/schema": "6.3.0", "@cardanosolutions/json-bigint": "^1.0.1", "@types/json-bigint": "^1.0.1", "bech32": "^2.0.0", @@ -253,8 +455,9 @@ } }, "node_modules/@cardano-ogmios/schema": { - "version": "6.0.0", - "license": "MPL-2.0", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@cardano-ogmios/schema/-/schema-6.3.0.tgz", + "integrity": "sha512-reM7NDYV4cgMAdFCzypoIuCVgSUfR9ztRMlk6p7k0cTeqUkbMfA83ps1FVkTDxzXxFjgM4EkhqoJyRjKIKRPQA==", "engines": { "node": ">=14" } @@ -266,3969 +469,4057 @@ "bignumber.js": "^9.0.0" } }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "license": "MIT", - "engines": { - "node": ">=0.1.90" + "node_modules/@changesets/apply-release-plan": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-7.0.0.tgz", + "integrity": "sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/config": "^3.0.0", + "@changesets/get-version-range-type": "^0.4.0", + "@changesets/git": "^3.0.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "detect-indent": "^6.0.0", + "fs-extra": "^7.0.1", + "lodash.startcase": "^4.4.0", + "outdent": "^0.5.0", + "prettier": "^2.7.1", + "resolve-from": "^5.0.0", + "semver": "^7.5.3" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "devOptional": true, - "license": "MIT", + "node_modules/@changesets/apply-release-plan/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=12" - } - }, - "node_modules/@dabh/diagnostics": { - "version": "2.0.3", - "license": "MIT", - "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" + "node": ">=6 <7 || >=8" } }, - "node_modules/@emurgo/cardano-serialization-lib-nodejs": { - "version": "11.5.0", - "license": "MIT" - }, - "node_modules/@emurgo/cip14-js": { - "version": "3.0.1", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "bech32": "2.0.0", - "blake2b": "2.1.3" + "node_modules/@changesets/apply-release-plan/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.2", + "node_modules/@changesets/apply-release-plan/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "license": "MIT", - "optional": true - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "node": ">=8" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.10.4", + "node_modules/@changesets/apply-release-plan/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, "engines": { - "node": ">=10.10.0" + "node": ">= 4.0.0" } }, - "node_modules/@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", + "node_modules/@changesets/assemble-release-plan": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-6.0.0.tgz", + "integrity": "sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw==", "dev": true, - "license": "Apache-2.0", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.0.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "semver": "^7.5.3" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" + "node_modules/@changesets/changelog-git": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@changesets/changelog-git/-/changelog-git-0.2.0.tgz", + "integrity": "sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==", + "dev": true, + "dependencies": { + "@changesets/types": "^6.0.0" + } + }, + "node_modules/@changesets/cli": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.27.1.tgz", + "integrity": "sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/apply-release-plan": "^7.0.0", + "@changesets/assemble-release-plan": "^6.0.0", + "@changesets/changelog-git": "^0.2.0", + "@changesets/config": "^3.0.0", + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.0.0", + "@changesets/get-release-plan": "^4.0.0", + "@changesets/git": "^3.0.0", + "@changesets/logger": "^0.1.0", + "@changesets/pre": "^2.0.0", + "@changesets/read": "^0.6.0", + "@changesets/types": "^6.0.0", + "@changesets/write": "^0.3.0", + "@manypkg/get-packages": "^1.1.3", + "@types/semver": "^7.5.0", + "ansi-colors": "^4.1.3", + "chalk": "^2.1.0", + "ci-info": "^3.7.0", + "enquirer": "^2.3.0", + "external-editor": "^3.1.0", + "fs-extra": "^7.0.1", + "human-id": "^1.0.2", + "meow": "^6.0.0", + "outdent": "^0.5.0", + "p-limit": "^2.2.0", + "preferred-pm": "^3.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.5.3", + "spawndamnit": "^2.0.0", + "term-size": "^2.1.0", + "tty-table": "^4.1.5" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "bin": { + "changeset": "bin.js" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", + "node_modules/@changesets/cli/node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, - "license": "BSD-3-Clause" + "engines": { + "node": ">=6" + } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", + "node_modules/@changesets/cli/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", + "node_modules/@changesets/cli/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=4" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "devOptional": true, - "license": "MIT", + "node_modules/@changesets/cli/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", + "node_modules/@changesets/cli/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" + "dependencies": { + "color-name": "1.1.3" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "devOptional": true + "node_modules/@changesets/cli/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "node_modules/@changesets/cli/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" } }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.10", - "license": "BSD-3-Clause", + "node_modules/@changesets/cli/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" + "engines": { + "node": ">=6 <7 || >=8" } }, - "node_modules/@napi-rs/snappy-darwin-arm64": { - "version": "7.2.2", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@changesets/cli/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, "engines": { - "node": ">= 10" + "node": ">=4" } }, - "node_modules/@noble/hashes": { - "version": "1.3.1", - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node_modules/@changesets/cli/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", + "node_modules/@changesets/cli/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "p-try": "^2.0.0" }, "engines": { - "node": ">= 8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", + "node_modules/@changesets/cli/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", + "node_modules/@changesets/cli/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "MIT", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">= 8" + "node": ">=4" } }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "license": "ISC", - "optional": true, + "node_modules/@changesets/cli/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@changesets/config": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@changesets/config/-/config-3.0.0.tgz", + "integrity": "sha512-o/rwLNnAo/+j9Yvw9mkBQOZySDYyOr/q+wptRLcAVGlU6djOeP9v1nlalbL9MFsobuBVQbZCTp+dIzdq+CLQUA==", + "dev": true, "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.0.0", + "@changesets/logger": "^0.1.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "fs-extra": "^7.0.1", + "micromatch": "^4.0.2" } }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "license": "MIT", - "optional": true, + "node_modules/@changesets/config/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=10" + "node": ">=6 <7 || >=8" } }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "license": "BSD-3-Clause" + "node_modules/@changesets/config/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "license": "BSD-3-Clause" + "node_modules/@changesets/config/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "license": "BSD-3-Clause", + "node_modules/@changesets/errors": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@changesets/errors/-/errors-0.2.0.tgz", + "integrity": "sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==", + "dev": true, "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "extendable-error": "^0.1.5" } }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "license": "BSD-3-Clause" + "node_modules/@changesets/get-dependents-graph": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-2.0.0.tgz", + "integrity": "sha512-cafUXponivK4vBgZ3yLu944mTvam06XEn2IZGjjKc0antpenkYANXiiE6GExV/yKdsCnE8dXVZ25yGqLYZmScA==", + "dev": true, + "dependencies": { + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "chalk": "^2.1.0", + "fs-extra": "^7.0.1", + "semver": "^7.5.3" + } }, - "node_modules/@rollup/plugin-commonjs": { - "version": "25.0.0", + "node_modules/@changesets/get-dependents-graph/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "commondir": "^1.0.1", - "estree-walker": "^2.0.2", - "glob": "^8.0.3", - "is-reference": "1.2.1", - "magic-string": "^0.27.0" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.68.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "node": ">=4" } }, - "node_modules/@rollup/plugin-commonjs/node_modules/estree-walker": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@rollup/plugin-json": { - "version": "6.0.0", + "node_modules/@changesets/get-dependents-graph/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^5.0.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "node": ">=4" } }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "15.0.2", + "node_modules/@changesets/get-dependents-graph/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.1", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, + "color-name": "1.1.3" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@changesets/get-dependents-graph/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.78.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "node": ">=0.8.0" } }, - "node_modules/@rollup/plugin-typescript": { - "version": "11.1.1", + "node_modules/@changesets/get-dependents-graph/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, - "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "resolve": "^1.22.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.14.0||^3.0.0", - "tslib": "*", - "typescript": ">=3.7.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - }, - "tslib": { - "optional": true - } + "node": ">=6 <7 || >=8" } }, - "node_modules/@rollup/plugin-virtual": { - "version": "3.0.1", + "node_modules/@changesets/get-dependents-graph/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "license": "MIT", "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "node": ">=4" } }, - "node_modules/@rollup/pluginutils": { - "version": "5.0.2", + "node_modules/@changesets/get-dependents-graph/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "node": ">=4" } }, - "node_modules/@rollup/pluginutils/node_modules/estree-walker": { - "version": "2.0.2", + "node_modules/@changesets/get-dependents-graph/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "license": "MIT" - }, - "node_modules/@rosen-bridge/abstract-logger": { - "version": "0.3.0", - "license": "GPL-3.0" + "engines": { + "node": ">= 4.0.0" + } }, - "node_modules/@rosen-bridge/address-extractor": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@rosen-bridge/address-extractor/-/address-extractor-3.2.1.tgz", - "integrity": "sha512-ZGw2ILCiItgu6TVRbdfYClkM1dzV8f3ikClQfLA3CF6ko98euttoppkIP8W5RDcUGr6fLaJHU4jU6CGvW5jVpg==", + "node_modules/@changesets/get-release-plan": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-4.0.0.tgz", + "integrity": "sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w==", + "dev": true, "dependencies": { - "@rosen-bridge/logger-interface": "^0.1.0", - "@rosen-bridge/scanner": "^3.2.1", - "@rosen-clients/ergo-explorer": "^1.0.3", - "blakejs": "^1.2.1", - "ergo-lib-wasm-nodejs": "^0.24.1", - "lodash-es": "^4.17.21", - "reflect-metadata": "^0.1.13", - "sqlite3": "^5.0.9", - "typeorm": "^0.3.7" + "@babel/runtime": "^7.20.1", + "@changesets/assemble-release-plan": "^6.0.0", + "@changesets/config": "^3.0.0", + "@changesets/pre": "^2.0.0", + "@changesets/read": "^0.6.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3" } }, - "node_modules/@rosen-bridge/health-check": { - "version": "3.0.1", - "license": "GPL-3.0", + "node_modules/@changesets/get-version-range-type": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.4.0.tgz", + "integrity": "sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==", + "dev": true + }, + "node_modules/@changesets/git": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@changesets/git/-/git-3.0.0.tgz", + "integrity": "sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==", + "dev": true, "dependencies": { - "@blockfrost/blockfrost-js": "^5.4.0", - "@cardano-ogmios/client": "^6.0.0", - "@rosen-bridge/abstract-logger": "^1.0.0", - "@rosen-bridge/scanner": "^3.0.0", - "@rosen-clients/cardano-koios": "^2.0.1", - "@rosen-clients/ergo-explorer": "^1.0.3", - "@rosen-clients/ergo-node": "^1.0.4", - "lodash": "^4.17.21" + "@babel/runtime": "^7.20.1", + "@changesets/errors": "^0.2.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "is-subdir": "^1.1.1", + "micromatch": "^4.0.2", + "spawndamnit": "^2.0.0" } }, - "node_modules/@rosen-bridge/health-check/node_modules/@rosen-bridge/abstract-logger": { - "version": "1.0.0", - "license": "GPL-3.0" - }, - "node_modules/@rosen-bridge/json-bigint": { + "node_modules/@changesets/logger": { "version": "0.1.0", - "license": "GPL-3.0", + "resolved": "https://registry.npmjs.org/@changesets/logger/-/logger-0.1.0.tgz", + "integrity": "sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==", + "dev": true, "dependencies": { - "json-bigint": "^1.0.0" + "chalk": "^2.1.0" + } + }, + "node_modules/@changesets/logger/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" }, "engines": { - "node": ">=18.12.0" + "node": ">=4" } }, - "node_modules/@rosen-bridge/logger-interface": { - "version": "0.1.0", - "license": "GPL-3.0" - }, - "node_modules/@rosen-bridge/minimum-fee": { - "version": "0.1.13", - "license": "GPL-3.0", + "node_modules/@changesets/logger/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "dependencies": { - "@rosen-clients/ergo-explorer": "^1.0.2", - "ergo-lib-wasm-nodejs": "^0.24.0-alpha-1f24f53", - "json-bigint": "^1.0.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/@rosen-bridge/observation-extractor": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@rosen-bridge/observation-extractor/-/observation-extractor-4.2.1.tgz", - "integrity": "sha512-j1JXAT2Uq6LHSVmYa7tV6yNaxszNz7GOmHuLk/0/LKvPhYNtwf7AyiW7xlhx/5viBy1REtTJ5MotKuD5eEko2A==", + "node_modules/@changesets/logger/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "dependencies": { - "@cardano-ogmios/schema": "^6.0.0", - "@rosen-bridge/logger-interface": "^0.1.0", - "@rosen-bridge/rosen-extractor": "^3.2.0", - "@rosen-bridge/scanner": "^3.2.1", - "@rosen-bridge/tokens": "^1.0.0", - "blakejs": "^1.2.1", - "ergo-lib-wasm-nodejs": "^0.24.1", - "lodash-es": "^4.17.21", - "reflect-metadata": "^0.1.13", - "sqlite3": "^5.0.9", - "typeorm": "^0.3.7" + "color-name": "1.1.3" } }, - "node_modules/@rosen-bridge/rollup-plugin-node-wasm": { - "version": "0.1.0", + "node_modules/@changesets/logger/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@changesets/logger/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "license": "ISC", - "dependencies": { - "estree-walker": "^3.0.3", - "magic-string": "^0.30.0" - }, "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "rollup": "^3.22.0" + "node": ">=0.8.0" } }, - "node_modules/@rosen-bridge/rollup-plugin-node-wasm/node_modules/magic-string": { - "version": "0.30.0", + "node_modules/@changesets/logger/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/logger/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=12" + "node": ">=4" } }, - "node_modules/@rosen-bridge/rosen-extractor": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@rosen-bridge/rosen-extractor/-/rosen-extractor-3.2.0.tgz", - "integrity": "sha512-M4ahOsmYbb9K1LZP6rDoyqMuyE3sh+EtAEkW1VIX0Li1gDwrR/LCY/FTZPujQFmCelGul1Wh2FR3nwCVs2tU1Q==", + "node_modules/@changesets/parse": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@changesets/parse/-/parse-0.4.0.tgz", + "integrity": "sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==", + "dev": true, "dependencies": { - "@blockfrost/blockfrost-js": "^5.4.0", - "@cardano-ogmios/schema": "^6.0.0", - "@rosen-bridge/abstract-logger": "^0.3.0", - "@rosen-bridge/json-bigint": "^0.1.0", - "@rosen-bridge/tokens": "^1.0.0", - "ergo-lib-wasm-nodejs": "^0.24.1", - "json-bigint": "^1.0.0", - "lodash-es": "^4.17.21" + "@changesets/types": "^6.0.0", + "js-yaml": "^3.13.1" } }, - "node_modules/@rosen-bridge/scanner": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@rosen-bridge/scanner/-/scanner-3.2.2.tgz", - "integrity": "sha512-nUwyVVLm3AVBESaTYSmr7doS7k55xLVosE6jmqT+V5FJkJdGyFdQefQFjfdbrmzra5YFKlM3qBLlQxS9CArGjA==", + "node_modules/@changesets/parse/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, "dependencies": { - "@apollo/client": "^3.8.7", - "@blockfrost/blockfrost-js": "^5.4.0", - "@cardano-ogmios/client": "^6.0.0", - "@cardano-ogmios/schema": "^6.0.0", - "@rosen-bridge/json-bigint": "^0.1.0", - "@rosen-bridge/logger-interface": "^0.1.0", - "@rosen-clients/ergo-explorer": "^1.0.3", - "@rosen-clients/ergo-node": "^1.0.4", - "await-semaphore": "^0.1.3", - "axios": "^0.27.2", - "cross-fetch": "^4.0.0", - "reflect-metadata": "^0.1.13", - "sqlite3": "^5.0.9", - "typeorm": "^0.3.7" + "sprintf-js": "~1.0.2" } }, - "node_modules/@rosen-bridge/scanner/node_modules/axios": { - "version": "0.27.2", - "license": "MIT", + "node_modules/@changesets/parse/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@rosen-bridge/scanner/node_modules/cross-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", - "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "node_modules/@changesets/pre": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@changesets/pre/-/pre-2.0.0.tgz", + "integrity": "sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==", + "dev": true, "dependencies": { - "node-fetch": "^2.6.12" + "@babel/runtime": "^7.20.1", + "@changesets/errors": "^0.2.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "fs-extra": "^7.0.1" } }, - "node_modules/@rosen-bridge/scanner/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==", + "node_modules/@changesets/pre/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "dependencies": { - "whatwg-url": "^5.0.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": ">=6 <7 || >=8" } }, - "node_modules/@rosen-bridge/tokens": { - "version": "1.0.0", - "license": "GPL-3.0" + "node_modules/@changesets/pre/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } }, - "node_modules/@rosen-bridge/watcher-data-extractor": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@rosen-bridge/watcher-data-extractor/-/watcher-data-extractor-4.2.3.tgz", - "integrity": "sha512-7HXKvpemRT76WlzFHg4Z1HMtP7i0GHHhXEt6dWvCNJ3Oc41cRnkxKEWazzCkPRaYr1P2FQ7PtDKlqlBHku+83g==", + "node_modules/@changesets/pre/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@changesets/read": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@changesets/read/-/read-0.6.0.tgz", + "integrity": "sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==", + "dev": true, "dependencies": { - "@rosen-bridge/logger-interface": "^0.1.0", - "@rosen-bridge/scanner": "^3.2.2", - "@rosen-clients/ergo-explorer": "^1.0.3", - "@types/lodash-es": "^4.17.6", - "blakejs": "^1.2.1", - "ergo-lib-wasm-nodejs": "^0.24.1", - "json-bigint": "^1.0.0", - "lodash-es": "^4.17.21", - "pg": "^8.10.0", - "reflect-metadata": "^0.1.13", - "sqlite3": "^5.0.9", - "typeorm": "^0.3.7" + "@babel/runtime": "^7.20.1", + "@changesets/git": "^3.0.0", + "@changesets/logger": "^0.1.0", + "@changesets/parse": "^0.4.0", + "@changesets/types": "^6.0.0", + "chalk": "^2.1.0", + "fs-extra": "^7.0.1", + "p-filter": "^2.1.0" } }, - "node_modules/@rosen-bridge/watcher-data-extractor/node_modules/pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", + "node_modules/@changesets/read/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", - "pg-protocol": "^1.6.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" + "color-convert": "^1.9.0" }, "engines": { - "node": ">= 8.0.0" - }, - "optionalDependencies": { - "pg-cloudflare": "^1.1.1" - }, - "peerDependencies": { - "pg-native": ">=3.0.1" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } + "node": ">=4" } }, - "node_modules/@rosen-bridge/winston-logger": { - "version": "0.2.1", - "license": "GPL-3.0", + "node_modules/@changesets/read/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "dependencies": { - "@rosen-bridge/abstract-logger": "^1.0.0", - "@rosen-bridge/json-bigint": "^0.1.0", - "winston": "^3.10.0", - "winston-daily-rotate-file": "^4.7.1", - "winston-loki": "^6.0.7" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=18.12.0" + "node": ">=4" } }, - "node_modules/@rosen-bridge/winston-logger/node_modules/@rosen-bridge/abstract-logger": { - "version": "1.0.0", - "license": "GPL-3.0" + "node_modules/@changesets/read/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } }, - "node_modules/@rosen-clients/cardano-koios": { - "version": "2.0.1", - "license": "GPL-3.0", - "dependencies": { - "@types/json-bigint": "^1.0.1", - "axios": "^1.3.4", - "json-bigint": "^1.0.0" - } + "node_modules/@changesets/read/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, - "node_modules/@rosen-clients/cardano-koios/node_modules/axios": { - "version": "1.6.2", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "node_modules/@changesets/read/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" } }, - "node_modules/@rosen-clients/ergo-explorer": { - "version": "1.0.3", - "license": "GPL-3.0", + "node_modules/@changesets/read/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "dependencies": { - "@types/json-bigint": "^1.0.1", - "axios": "^1.3.4", - "json-bigint": "^1.0.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" } }, - "node_modules/@rosen-clients/ergo-explorer/node_modules/axios": { - "version": "1.5.0", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "node_modules/@changesets/read/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" } }, - "node_modules/@rosen-clients/ergo-node": { - "version": "1.0.4", - "license": "GPL-3.0", - "dependencies": { - "@types/json-bigint": "^1.0.1", - "axios": "^1.3.4", - "json-bigint": "^1.0.0" + "node_modules/@changesets/read/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@rosen-clients/ergo-node/node_modules/axios": { - "version": "1.6.2", - "license": "MIT", + "node_modules/@changesets/read/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "license": "MIT", + "node_modules/@changesets/read/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" + "node": ">= 4.0.0" } }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", + "node_modules/@changesets/types": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@changesets/types/-/types-6.0.0.tgz", + "integrity": "sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==", + "dev": true + }, + "node_modules/@changesets/write": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@changesets/write/-/write-0.3.0.tgz", + "integrity": "sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "type-detect": "4.0.8" + "@babel/runtime": "^7.20.1", + "@changesets/types": "^6.0.0", + "fs-extra": "^7.0.1", + "human-id": "^1.0.2", + "prettier": "^2.7.1" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", + "node_modules/@changesets/write/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^1.7.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" } }, - "node_modules/@sinonjs/samsam": { - "version": "6.1.1", + "node_modules/@changesets/write/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.6.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.2", + "node_modules/@changesets/write/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "license": "(Unlicense OR Apache-2.0)" - }, - "node_modules/@sqltools/formatter": { - "version": "1.2.5", - "license": "MIT" - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, "engines": { - "node": ">=10" + "node": ">= 4.0.0" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", + "node_modules/@colors/colors": { + "version": "1.5.0", "license": "MIT", - "optional": true, "engines": { - "node": ">= 6" + "node": ">=0.1.90" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", "devOptional": true, - "license": "MIT" - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "dev": true, "license": "MIT", "dependencies": { - "@types/connect": "*", - "@types/node": "*" + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", "license": "MIT", "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" } }, - "node_modules/@types/chai": { - "version": "4.3.6", - "dev": true, + "node_modules/@emurgo/cardano-serialization-lib-nodejs": { + "version": "11.5.0", "license": "MIT" }, - "node_modules/@types/chai-as-promised": { - "version": "7.1.5", - "dev": true, - "license": "MIT", + "node_modules/@emurgo/cip14-js": { + "version": "3.0.1", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@types/chai": "*" + "bech32": "2.0.0", + "blake2b": "2.1.3" } }, - "node_modules/@types/chai-spies": { - "version": "1.0.3", + "node_modules/@eslint/eslintrc": { + "version": "1.3.2", "dev": true, "license": "MIT", "dependencies": { - "@types/chai": "*" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@types/config": { - "version": "0.0.41", - "dev": true, - "license": "MIT" + "node_modules/@gar/promisify": { + "version": "1.1.3", + "license": "MIT", + "optional": true }, - "node_modules/@types/connect": { - "version": "3.4.35", - "dev": true, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", "license": "MIT", - "dependencies": { - "@types/node": "*" + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@types/cookiejar": { - "version": "2.1.2", + "node_modules/@humanwhocodes/config-array": { + "version": "0.10.4", "dev": true, - "license": "MIT" + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } }, - "node_modules/@types/cors": { - "version": "2.8.13", + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" + "license": "Apache-2.0", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@types/estree": { + "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "dev": true, - "license": "MIT" + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, - "node_modules/@types/express": { - "version": "4.17.14", + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json-bigint": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.13", - "dev": true, - "license": "MIT" + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "node_modules/@types/json5": { - "version": "0.0.29", - "dev": true, - "license": "MIT" + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "license": "MIT", + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dependencies": { - "@types/node": "*" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@types/lodash": { - "version": "4.14.191", - "license": "MIT" - }, - "node_modules/@types/lodash-es": { - "version": "4.17.6", - "license": "MIT", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dependencies": { - "@types/lodash": "*" + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@types/mime": { - "version": "3.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mocha": { - "version": "9.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "dev": true, - "license": "MIT" + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "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/@types/resolve": { - "version": "1.20.2", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", "dev": true, - "license": "MIT" - }, - "node_modules/@types/responselike": { - "version": "1.0.3", "license": "MIT", - "dependencies": { - "@types/node": "*" + "engines": { + "node": ">=8" } }, - "node_modules/@types/rollup-plugin-natives": { - "version": "0.7.1", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", "dev": true, "license": "MIT", "dependencies": { - "rollup": "^3.29.0" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@types/serve-static": { - "version": "1.15.0", - "dev": true, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "devOptional": true, "license": "MIT", - "dependencies": { - "@types/mime": "*", - "@types/node": "*" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@types/sinon": { - "version": "10.0.13", + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", "dev": true, "license": "MIT", - "dependencies": { - "@types/sinonjs__fake-timers": "*" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.2", - "dev": true, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "devOptional": true, "license": "MIT" }, - "node_modules/@types/superagent": { - "version": "4.1.15", - "dev": true, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "devOptional": true, "license": "MIT", "dependencies": { - "@types/cookiejar": "*", - "@types/node": "*" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@types/supertest": { - "version": "2.0.12", + "node_modules/@manypkg/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", "dev": true, - "license": "MIT", "dependencies": { - "@types/superagent": "*" + "@babel/runtime": "^7.5.5", + "@types/node": "^12.7.1", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0" } }, - "node_modules/@types/triple-beam": { - "version": "1.3.2", - "license": "MIT" + "node_modules/@manypkg/find-root/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.38.0", + "node_modules/@manypkg/find-root/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "5.38.0", - "@typescript-eslint/type-utils": "5.38.0", - "@typescript-eslint/utils": "5.38.0", - "debug": "^4.3.4", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.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 - } + "node": ">=8" } }, - "node_modules/@typescript-eslint/parser": { - "version": "5.38.0", + "node_modules/@manypkg/find-root/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "5.38.0", - "@typescript-eslint/types": "5.38.0", - "@typescript-eslint/typescript-estree": "5.38.0", - "debug": "^4.3.4" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "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 - } + "node": ">=6 <7 || >=8" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.38.0", + "node_modules/@manypkg/find-root/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@manypkg/find-root/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.38.0", - "@typescript-eslint/visitor-keys": "5.38.0" + "p-locate": "^4.1.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=8" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.38.0", + "node_modules/@manypkg/find-root/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "5.38.0", - "@typescript-eslint/utils": "5.38.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "p-try": "^2.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@manypkg/find-root/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": ">=8" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.38.0", + "node_modules/@manypkg/find-root/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">= 4.0.0" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.38.0", + "node_modules/@manypkg/get-packages": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@manypkg/get-packages/-/get-packages-1.1.3.tgz", + "integrity": "sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.38.0", - "@typescript-eslint/visitor-keys": "5.38.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 - } + "@babel/runtime": "^7.5.5", + "@changesets/types": "^4.0.1", + "@manypkg/find-root": "^1.1.0", + "fs-extra": "^8.1.0", + "globby": "^11.0.0", + "read-yaml-file": "^1.1.0" } }, - "node_modules/@typescript-eslint/utils": { - "version": "5.38.0", + "node_modules/@manypkg/get-packages/node_modules/@changesets/types": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@changesets/types/-/types-4.1.0.tgz", + "integrity": "sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==", + "dev": true + }, + "node_modules/@manypkg/get-packages/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, - "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.38.0", - "@typescript-eslint/types": "5.38.0", - "@typescript-eslint/typescript-estree": "5.38.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "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" + "node": ">=6 <7 || >=8" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.38.0", + "node_modules/@manypkg/get-packages/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.38.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" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", + "node_modules/@manypkg/get-packages/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "license": "ISC" - }, - "node_modules/@wry/caches": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@wry/caches/-/caches-1.0.1.tgz", - "integrity": "sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA==", - "dependencies": { - "tslib": "^2.3.0" - }, "engines": { - "node": ">=8" + "node": ">= 4.0.0" } }, - "node_modules/@wry/context": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.4.tgz", - "integrity": "sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==", + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.10", + "license": "BSD-3-Clause", "dependencies": { - "tslib": "^2.3.0" + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" }, - "engines": { - "node": ">=8" + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" } }, - "node_modules/@wry/equality": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.7.tgz", - "integrity": "sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==", - "dependencies": { - "tslib": "^2.3.0" - }, + "node_modules/@napi-rs/snappy-darwin-arm64": { + "version": "7.2.2", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=8" + "node": ">= 10" } }, - "node_modules/@wry/trie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.5.0.tgz", - "integrity": "sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA==", + "node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", "dependencies": { - "tslib": "^2.3.0" + "@noble/hashes": "1.3.2" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "license": "BSD-2-Clause" - }, - "node_modules/abbrev": { - "version": "1.1.1", - "license": "ISC" - }, - "node_modules/accepts": { - "version": "1.3.8", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, + "node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", "engines": { - "node": ">= 0.6" + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/acorn": { - "version": "8.10.0", - "devOptional": true, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=0.4.0" + "node": ">= 8" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", "dev": true, "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", - "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", - "devOptional": true, "engines": { - "node": ">=0.4.0" + "node": ">= 8" } }, - "node_modules/agent-base": { - "version": "6.0.2", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, "license": "MIT", "dependencies": { - "debug": "4" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 8" } }, - "node_modules/agentkeepalive": { - "version": "4.2.1", - "license": "MIT", + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "license": "ISC", "optional": true, "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" } }, - "node_modules/agentkeepalive/node_modules/depd": { + "node_modules/@npmcli/move-file": { "version": "1.1.2", "license": "MIT", "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "devOptional": true, - "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "node": ">=10" } }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "dev": true, - "license": "MIT", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, "engines": { - "node": ">=6" + "node": ">=14" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "license": "BSD-3-Clause" }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "license": "BSD-3-Clause" }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "license": "BSD-3-Clause" }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "license": "BSD-3-Clause", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "license": "MIT" + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "license": "BSD-3-Clause" }, - "node_modules/anymatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "license": "BSD-3-Clause" }, - "node_modules/app-module-path": { - "version": "2.2.0", - "dev": true, - "license": "BSD-2-Clause" + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "license": "BSD-3-Clause" }, - "node_modules/app-root-path": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">= 6.0.0" - } + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "license": "BSD-3-Clause" }, - "node_modules/aproba": { - "version": "2.0.0", - "license": "ISC" + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "license": "BSD-3-Clause" }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "license": "ISC", + "node_modules/@rollup/plugin-commonjs": { + "version": "25.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.27.0" }, "engines": { - "node": ">=10" + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/arg": { - "version": "4.1.3", - "devOptional": true, - "license": "MIT" - }, - "node_modules/argparse": { - "version": "2.0.1", + "node_modules/@rollup/plugin-commonjs/node_modules/estree-walker": { + "version": "2.0.2", "dev": true, - "license": "Python-2.0" - }, - "node_modules/array-flatten": { - "version": "1.1.1", "license": "MIT" }, - "node_modules/array-union": { - "version": "2.1.0", + "node_modules/@rollup/plugin-json": { + "version": "6.0.0", "dev": true, "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1" + }, "engines": { - "node": ">=8" + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/asap": { - "version": "2.0.6", - "license": "MIT" - }, - "node_modules/assertion-error": { - "version": "1.1.0", + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.0.2", + "dev": true, "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, "engines": { - "node": "*" + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/ast-module-types": { - "version": "3.0.0", + "node_modules/@rollup/plugin-typescript": { + "version": "11.1.1", "dev": true, "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "resolve": "^1.22.1" + }, "engines": { - "node": ">=6.0" + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } } }, - "node_modules/astral-regex": { - "version": "2.0.0", + "node_modules/@rollup/plugin-virtual": { + "version": "3.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/async": { - "version": "3.2.4", - "license": "MIT" - }, - "node_modules/async-exit-hook": { - "version": "2.0.1", + "node_modules/@rollup/pluginutils": { + "version": "5.0.2", + "dev": true, "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, "engines": { - "node": ">=0.12.0" + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/asynckit": { - "version": "0.4.0", + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "dev": true, "license": "MIT" }, - "node_modules/at-least-node": { - "version": "1.0.0", - "license": "ISC", + "node_modules/@rosen-bridge/abstract-extractor": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/abstract-extractor/-/abstract-extractor-0.1.0.tgz", + "integrity": "sha512-GYyPR5oAhGjrTHhS8gvNkdGCzaOYkp2FuPa8mCfl/BBMCrifmKx6n/yvDLrbhgurbOKx3MAnMJK5sLf63wAusg==", + "dependencies": { + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-clients/ergo-explorer": "^1.1.1", + "@rosen-clients/ergo-node": "^1.1.1", + "lodash-es": "^4.17.21" + }, "engines": { - "node": ">= 4.0.0" + "node": ">=20.11.0" } }, - "node_modules/await-semaphore": { - "version": "0.1.3", - "license": "MIT" + "node_modules/@rosen-bridge/abstract-logger": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/abstract-logger/-/abstract-logger-1.0.0.tgz", + "integrity": "sha512-hN/cb0HSlhqvaEjqzFPZGIYOa70gdPd+mYrS5C7uNrv1Vw6k2k4lY4US05rwBENjSQpwik1H4gdCBzUkbCcjGA==" }, - "node_modules/axios": { - "version": "0.26.1", - "license": "MIT", + "node_modules/@rosen-bridge/address-codec": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/address-codec/-/address-codec-0.2.1.tgz", + "integrity": "sha512-W7d7W0rmciMJMuq4KYh+6EeiB9dCE9RBTzu5xeFd3BLHjMnYpt1/J6vdZeXpFFySNRfxclFZwU94B5q3l6CV8Q==", "dependencies": { - "follow-redirects": "^1.14.8" + "@emurgo/cardano-serialization-lib-nodejs": "^11.5.0", + "bitcoinjs-lib": "^6.1.5", + "ergo-lib-wasm-nodejs": "^0.24.1" + }, + "engines": { + "node": ">=20.11.0" } }, - "node_modules/axios-mock-adapter": { - "version": "1.21.2", - "dev": true, - "license": "MIT", + "node_modules/@rosen-bridge/address-extractor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/address-extractor/-/address-extractor-4.0.0.tgz", + "integrity": "sha512-5IDzAh0eLWZZuSRF+X1R73tjCBCPunAsBcKz85ogvPKSY0pCo8wFHdeW9TUY04sJGQzAx7mvzzVRhPQd0C8oNw==", "dependencies": { - "fast-deep-equal": "^3.1.3", - "is-buffer": "^2.0.5" - }, - "peerDependencies": { - "axios": ">= 0.17.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "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/bech32": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/bignumber.js": { - "version": "9.1.0", - "license": "MIT", - "engines": { - "node": "*" + "@rosen-bridge/abstract-extractor": "^0.1.0", + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/scanner": "^4.0.0", + "@rosen-clients/ergo-explorer": "^1.1.1", + "blakejs": "^1.2.1", + "ergo-lib-wasm-nodejs": "^0.24.1", + "lodash-es": "^4.17.21", + "reflect-metadata": "^0.1.13", + "sqlite3": "^5.0.9", + "typeorm": "^0.3.20" } }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "dev": true, - "license": "MIT", + "node_modules/@rosen-bridge/asset-check": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/asset-check/-/asset-check-0.2.0.tgz", + "integrity": "sha512-//hVyyrpnh5MJ9s8/23osH62T/ypxjRYdb4iNZwCM12d7GOjVGCRkTYeZZaTatKKesYzuBNf2J+5g75cwoIB9A==", + "dependencies": { + "@apollo/client": "^3.9.11", + "@blockfrost/blockfrost-js": "^5.5.0", + "@rosen-bridge/health-check": "^5.0.0", + "@rosen-clients/cardano-koios": "^2.0.1", + "@rosen-clients/ergo-explorer": "^1.1.1", + "@rosen-clients/ergo-node": "^1.1.1", + "axios": "^1.6.8", + "cross-fetch": "^4.0.0" + }, "engines": { - "node": ">=8" + "node": ">=20.11.0" } }, - "node_modules/bip39": { - "version": "3.1.0", - "license": "ISC", + "node_modules/@rosen-bridge/asset-check/node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", "dependencies": { - "@noble/hashes": "^1.2.0" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/bl": { - "version": "4.1.0", - "dev": true, - "license": "MIT", + "node_modules/@rosen-bridge/asset-check/node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "node-fetch": "^2.6.12" } }, - "node_modules/blake2b": { - "version": "2.1.3", - "license": "ISC", + "node_modules/@rosen-bridge/asset-check/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==", "dependencies": { - "blake2b-wasm": "^1.1.0", - "nanoassert": "^1.0.0" + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/blake2b-wasm": { - "version": "1.1.7", - "license": "MIT", + "node_modules/@rosen-bridge/bitcoin-esplora-scanner": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@rosen-bridge/bitcoin-esplora-scanner/-/bitcoin-esplora-scanner-0.1.5.tgz", + "integrity": "sha512-p6ouaCnP+jPzCkddk8IMtQIJ9XAXjc136miTeLvLDFQtis9oiYQnboNd+X46nY6BmvgN5hDa31vtKzLwNAhqKQ==", "dependencies": { - "nanoassert": "^1.0.0" + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/scanner": "^4.0.0", + "axios": "^1.6.8" + }, + "engines": { + "node": ">=20.11.0" } }, - "node_modules/blakejs": { - "version": "1.2.1", - "license": "MIT" - }, - "node_modules/bottleneck": { - "version": "2.19.5", - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "license": "MIT", + "node_modules/@rosen-bridge/bitcoin-esplora-scanner/node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/braces": { - "version": "3.0.2", - "license": "MIT", + "node_modules/@rosen-bridge/bitcoin-observation-extractor": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/bitcoin-observation-extractor/-/bitcoin-observation-extractor-3.0.0.tgz", + "integrity": "sha512-w/bT36W+/0x22f7dJ2KCeF96AMMSvJ3FERcb6AB8v6c7GRwL3iHXnDDmJkj95tXrGqd1hDORJEcclDAeOlNjuQ==", "dependencies": { - "fill-range": "^7.0.1" + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/bitcoin-esplora-scanner": "^0.1.5", + "@rosen-bridge/bitcoin-rpc-scanner": "^0.1.1", + "@rosen-bridge/observation-extractor": "^4.4.4", + "@rosen-bridge/rosen-extractor": "^5.0.1", + "@rosen-bridge/tokens": "^1.0.0", + "typeorm": "^0.3.20" }, "engines": { - "node": ">=8" + "node": ">=20.11.0" } }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "dev": true, - "license": "ISC" - }, - "node_modules/btoa": { - "version": "1.2.1", - "license": "(MIT OR Apache-2.0)", - "bin": { - "btoa": "bin/btoa.js" + "node_modules/@rosen-bridge/bitcoin-rpc-scanner": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/bitcoin-rpc-scanner/-/bitcoin-rpc-scanner-0.1.1.tgz", + "integrity": "sha512-2CplgxHedelAnHNHB/ij/0pio6uZVHinV08S2EHaF4oyH32DXiHi66beC6iwYrwvd+03TmQo+Na//h2QZtxXJA==", + "dependencies": { + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/scanner": "^4.0.0", + "axios": "^1.6.8" }, "engines": { - "node": ">= 0.4.0" + "node": ">=20.11.0" } }, - "node_modules/buffer": { - "version": "5.7.1", - "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/@rosen-bridge/bitcoin-rpc-scanner/node_modules/axios": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz", + "integrity": "sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "license": "MIT", + "node_modules/@rosen-bridge/changeset-formatter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/changeset-formatter/-/changeset-formatter-0.1.0.tgz", + "integrity": "sha512-fRL99wHshoPebeLQiVQ392obQ8DF70DP8hByCKoMXMwH1exda5K2daYp7LaSITOlLEPKemqglSKn5ObZENheSg==", + "dev": true, "engines": { - "node": ">=4" + "node": ">=20.11.0" } }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" + "node_modules/@rosen-bridge/extended-typeorm": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@rosen-bridge/extended-typeorm/-/extended-typeorm-0.0.3.tgz", + "integrity": "sha512-YJakXDzvWsV4LnhguPccXaKjFWjVGiyasoDgnXNMF68WGfbCr4+fT7SJD9O4ASM9cmhKPN3zSjJN6EqdwUTdXw==", + "dependencies": { + "async-mutex": "^0.4.0", + "typeorm": "^0.3.20" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "sqlite3": "^5.1.6" } }, - "node_modules/bytes": { - "version": "3.1.2", - "license": "MIT", + "node_modules/@rosen-bridge/health-check": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/health-check/-/health-check-5.0.0.tgz", + "integrity": "sha512-Tbk6SAOf1e6bpJychQZCEVlwdF7XnY9S6Zapw3vmliv1oa4yY7LXHvfVXVRKT4y8ZJocCzQ1YMi+satLaojrGQ==", "engines": { - "node": ">= 0.8" + "node": ">=20.11.0" } }, - "node_modules/c8": { - "version": "7.11.3", - "dev": true, - "license": "ISC", + "node_modules/@rosen-bridge/json-bigint": { + "version": "0.1.0", + "license": "GPL-3.0", "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@istanbuljs/schema": "^0.1.3", - "find-up": "^5.0.0", - "foreground-child": "^2.0.0", - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.1.4", - "rimraf": "^3.0.2", - "test-exclude": "^6.0.0", - "v8-to-istanbul": "^9.0.0", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.9" - }, - "bin": { - "c8": "bin/c8.js" + "json-bigint": "^1.0.0" }, "engines": { - "node": ">=10.12.0" + "node": ">=18.12.0" } }, - "node_modules/cacache": { - "version": "15.3.0", - "license": "ISC", - "optional": true, + "node_modules/@rosen-bridge/log-level-check": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/log-level-check/-/log-level-check-0.1.1.tgz", + "integrity": "sha512-FcxqK3OnrPwHEgmX8oA4Xq4JGcS7m5NAVxf8YhAyxCNL+NRsROrs7EwWXyj9AVcSjK4+liWRVBTENcOy+nj+rA==", "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/health-check": "^5.0.0", + "lodash-es": "^4.17.21" }, "engines": { - "node": ">= 10" + "node": ">=20.11.0" } }, - "node_modules/cacache/node_modules/glob": { - "version": "7.2.3", - "license": "ISC", - "optional": true, + "node_modules/@rosen-bridge/minimum-fee": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/minimum-fee/-/minimum-fee-2.0.1.tgz", + "integrity": "sha512-PEEmemRWYv2xkARxbg51KleAJtGzetZHFANeeHa2qJdZtFisUzZmqRKOB1VCIn1AW0lDrFeY02Rd8e4QzFfPcw==", "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" + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/json-bigint": "^0.1.0", + "@rosen-clients/ergo-explorer": "^1.1.1", + "@rosen-clients/ergo-node": "^1.1.1", + "ergo-lib-wasm-nodejs": "^0.24.1" }, "engines": { - "node": "*" + "node": ">=18.16.1" + } + }, + "node_modules/@rosen-bridge/node-sync-check": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/node-sync-check/-/node-sync-check-0.1.1.tgz", + "integrity": "sha512-up+CJ1K96s34G+7dsz1mwSesILi1QpRNslY9ZThd3yA3sl2rc1nVihhfgP7dd7xIiTYyhgO2m3bv+FtuTKUiEQ==", + "dependencies": { + "@rosen-bridge/health-check": "^5.0.0", + "@rosen-clients/ergo-node": "^1.1.1" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=20.11.0" } }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "license": "MIT", - "engines": { - "node": ">=10.6.0" + "node_modules/@rosen-bridge/observation-extractor": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@rosen-bridge/observation-extractor/-/observation-extractor-4.4.4.tgz", + "integrity": "sha512-7DM0FUY5lsANL9r8xo4qvUW1+v4wwF5ym+Ky+UzXakUmHMKPy7fx3CWxC+uPfWMfRgvio1SUTGFfE+jagLGMJA==", + "dependencies": { + "@cardano-ogmios/schema": "^6.0.3", + "@rosen-bridge/abstract-extractor": "^0.1.0", + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/rosen-extractor": "^5.0.0", + "@rosen-bridge/scanner": "^4.0.0", + "@rosen-bridge/tokens": "^1.0.0", + "blakejs": "^1.2.1", + "ergo-lib-wasm-nodejs": "^0.24.1", + "lodash-es": "^4.17.21", + "reflect-metadata": "^0.1.13", + "sqlite3": "^5.0.9", + "typeorm": "^0.3.20" } }, - "node_modules/cacheable-request": { - "version": "7.0.4", - "license": "MIT", + "node_modules/@rosen-bridge/permit-check": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/permit-check/-/permit-check-0.1.1.tgz", + "integrity": "sha512-n7vPePreTaOCaK+Cr2VzZJtfTTmp8N+y2ileTouRyfMC1W7RC8xdApBZy4332YAeIRW9YCn7ns/EGxiFvcGiKg==", "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" + "@rosen-bridge/health-check": "^5.0.0", + "@rosen-clients/ergo-explorer": "^1.1.1", + "@rosen-clients/ergo-node": "^1.1.1", + "ergo-lib-wasm-nodejs": "^0.24.1" }, "engines": { - "node": ">=8" + "node": ">=20.11.0" } }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "license": "MIT", + "node_modules/@rosen-bridge/rollup-plugin-node-wasm": { + "version": "0.1.0", + "dev": true, + "license": "ISC", "dependencies": { - "pump": "^3.0.0" + "estree-walker": "^3.0.3", + "magic-string": "^0.30.0" }, "engines": { - "node": ">=8" + "node": ">=18.12.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "rollup": "^3.22.0" } }, - "node_modules/call-bind": { - "version": "1.0.2", + "node_modules/@rosen-bridge/rollup-plugin-node-wasm/node_modules/magic-string": { + "version": "0.30.0", + "dev": true, "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "@jridgewell/sourcemap-codec": "^1.4.13" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "license": "MIT", "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/@rosen-bridge/rosen-extractor": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/rosen-extractor/-/rosen-extractor-5.0.1.tgz", + "integrity": "sha512-+2i2/1fFodJSrTsaXEKOY60/lBUlpxoAxrwfW1pnxIHA5aATAOqXunk0QJJCMPiSUVhfzFa0vxZN3ZjCWROfnQ==", + "dependencies": { + "@blockfrost/blockfrost-js": "^5.4.0", + "@cardano-ogmios/schema": "^6.0.3", + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/address-codec": "^0.2.1", + "@rosen-bridge/json-bigint": "^0.1.0", + "@rosen-bridge/tokens": "^1.0.0", + "bitcoinjs-lib": "^6.1.5", + "ergo-lib-wasm-nodejs": "^0.24.1", + "ethers": "^6.11.1", + "json-bigint": "^1.0.0", + "lodash-es": "^4.17.21" } }, - "node_modules/cbor": { - "version": "8.1.0", - "license": "MIT", + "node_modules/@rosen-bridge/scanner": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/scanner/-/scanner-4.0.0.tgz", + "integrity": "sha512-ZHFRfsv3YRyFEZY4VzEEeHRJm0bsAiocaq0HNuWOubSHydiaLra62NUfI1mdNDU+ql5c+JyE+cmv/1zm7tdPaw==", "dependencies": { - "nofilter": "^3.1.0" + "@apollo/client": "^3.8.7", + "@blockfrost/blockfrost-js": "^5.4.0", + "@cardano-ogmios/client": "^6.3.0", + "@cardano-ogmios/schema": "^6.3.0", + "@rosen-bridge/abstract-extractor": "^0.1.0", + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/json-bigint": "^0.1.0", + "@rosen-clients/ergo-explorer": "^1.1.1", + "@rosen-clients/ergo-node": "^1.1.1", + "await-semaphore": "^0.1.3", + "axios": "^1.6.8", + "cross-fetch": "^4.0.0", + "lodash-es": "^4.17.21", + "reflect-metadata": "^0.1.13", + "sqlite3": "^5.0.9", + "typeorm": "^0.3.20" + } + }, + "node_modules/@rosen-bridge/scanner-sync-check": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/scanner-sync-check/-/scanner-sync-check-0.2.0.tgz", + "integrity": "sha512-sHrug14huk7q5Da1kYJPRyyWEehi9Rj1+lA2lhN12ZJWGAbUyvCbO8U4zfQFDEUbsC4UDus+vodOCTPmKM8BzA==", + "dependencies": { + "@apollo/client": "^3.9.11", + "@blockfrost/blockfrost-js": "^5.5.0", + "@cardano-ogmios/client": "^6.3.0", + "@rosen-bridge/health-check": "^5.0.0", + "@rosen-bridge/scanner": "^4.0.0", + "@rosen-clients/ergo-explorer": "^1.1.1", + "@rosen-clients/ergo-node": "^1.1.1", + "axios": "^1.6.8", + "cross-fetch": "^4.0.0", + "typeorm": "^0.3.20" }, "engines": { - "node": ">=12.19" + "node": ">=20.11.0" } }, - "node_modules/chai": { - "version": "4.3.10", - "license": "MIT", + "node_modules/@rosen-bridge/scanner-sync-check/node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - }, - "engines": { - "node": ">=4" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/chai-as-promised": { - "version": "7.1.1", - "dev": true, - "license": "WTFPL", + "node_modules/@rosen-bridge/scanner-sync-check/node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", "dependencies": { - "check-error": "^1.0.2" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 5" + "node-fetch": "^2.6.12" } }, - "node_modules/chai-spies": { - "version": "1.0.0", - "license": "MIT", + "node_modules/@rosen-bridge/scanner-sync-check/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==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { - "node": ">= 4.0.0" + "node": "4.x || >=6.0.0" }, "peerDependencies": { - "chai": "*" + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/chalk": { - "version": "4.1.2", + "node_modules/@rosen-bridge/scanner/node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/@rosen-bridge/scanner/node_modules/cross-fetch": { + "version": "4.0.0", "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-fetch": "^2.6.12" } }, - "node_modules/check-error": { - "version": "1.0.3", + "node_modules/@rosen-bridge/scanner/node_modules/node-fetch": { + "version": "2.7.0", "license": "MIT", "dependencies": { - "get-func-name": "^2.0.2" + "whatwg-url": "^5.0.0" }, "engines": { - "node": "*" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/chokidar": { - "version": "3.5.3", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "node_modules/@rosen-bridge/tokens": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/tokens/-/tokens-1.1.0.tgz", + "integrity": "sha512-Ott48bFRKoK4h+ePUuPmWFUtOCGcuWiAbPrZ7h9BgX6GRj3/NTpzPFQgnaXk62oyJrZgWubgpcuQTf1yieTS+Q==" + }, + "node_modules/@rosen-bridge/watcher-data-extractor": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/watcher-data-extractor/-/watcher-data-extractor-6.0.0.tgz", + "integrity": "sha512-8LVgFWNuhp/xi3TR2kMVAQgPVsfab1T7sL9gwv/ZtIiSDTaoqmAIrM6KwUeaXiS+2p+Rme4Iwq9Ecb7B/DvBbA==", + "dependencies": { + "@rosen-bridge/abstract-extractor": "^0.1.0", + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/extended-typeorm": "^0.0.3", + "@rosen-bridge/json-bigint": "^0.1.0", + "@rosen-bridge/scanner": "^4.0.0", + "@rosen-clients/ergo-explorer": "^1.1.1", + "@types/lodash-es": "^4.17.6", + "blakejs": "^1.2.1", + "ergo-lib-wasm-nodejs": "^0.24.1", + "json-bigint": "^1.0.0", + "lodash-es": "^4.17.21", + "pg": "^8.10.0", + "reflect-metadata": "^0.1.13", + "sqlite3": "^5.0.9", + "typeorm": "^0.3.20" + } + }, + "node_modules/@rosen-bridge/watcher-data-extractor/node_modules/pg": { + "version": "8.11.3", "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "buffer-writer": "2.0.0", + "packet-reader": "1.0.0", + "pg-connection-string": "^2.6.2", + "pg-pool": "^3.6.1", + "pg-protocol": "^1.6.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 8.0.0" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "pg-cloudflare": "^1.1.1" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } } }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", + "node_modules/@rosen-bridge/wid-check": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/wid-check/-/wid-check-0.1.1.tgz", + "integrity": "sha512-wcvtkj+lzXKg86UjYpbPurY4Ykm3jftzwt7I8Y5DXrH883OxcS87BiceWeCvmuFShyPxsy/xwZKCAKuMMC3vgA==", "dependencies": { - "is-glob": "^4.0.1" + "@rosen-bridge/health-check": "^5.0.0", + "@rosen-clients/ergo-explorer": "^1.1.1", + "@rosen-clients/ergo-node": "^1.1.1", + "ergo-lib-wasm-nodejs": "^0.24.1", + "lodash-es": "^4.17.21" }, "engines": { - "node": ">= 6" + "node": ">=20.11.0" } }, - "node_modules/chownr": { - "version": "2.0.0", - "license": "ISC", + "node_modules/@rosen-bridge/winston-logger": { + "version": "0.2.1", + "license": "GPL-3.0", + "dependencies": { + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/json-bigint": "^0.1.0", + "winston": "^3.10.0", + "winston-daily-rotate-file": "^4.7.1", + "winston-loki": "^6.0.7" + }, "engines": { - "node": ">=10" + "node": ">=18.12.0" } }, - "node_modules/ci-info": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "devOptional": true, - "license": "MIT", + "node_modules/@rosen-clients/axios": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@rosen-clients/axios/-/axios-0.1.0.tgz", + "integrity": "sha512-pCSGorduI2naHAnYB+qwQ5hBakBPAFIPXK/LJ+Fml5xmZjFpsylnqS1K6tg3oQi1OQAVDa5uv4XsbUSqYsMtDg==", + "dependencies": { + "axios": "^1.6.8", + "json-bigint": "^1.0.0" + }, "engines": { - "node": ">=6" + "node": ">=18.11.0" } }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "dev": true, - "license": "MIT", + "node_modules/@rosen-clients/axios/node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/cli-highlight": { - "version": "2.1.11", - "license": "ISC", + "node_modules/@rosen-clients/cardano-koios": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@rosen-clients/cardano-koios/-/cardano-koios-2.0.3.tgz", + "integrity": "sha512-Xd+42r7OlZH59uvJl257BEsUUeaBExGNfozq472Juj+zDTd/el2gQ3maEWR6PKrySKk20OwtzMrApyn//ModsQ==", "dependencies": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "highlight": "bin/highlight" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" + "@rosen-clients/axios": "^0.1.0" } }, - "node_modules/cli-spinners": { - "version": "2.7.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/@rosen-clients/ergo-explorer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rosen-clients/ergo-explorer/-/ergo-explorer-1.1.1.tgz", + "integrity": "sha512-xvDM15MhHV1HLg3e9/0fETDKs9ZFT1MT6pip1KWaLmPbCYetI88iPPcLPCaO0RwY+Iqf5qm+gHbKeroFdA+juw==", + "dependencies": { + "@rosen-clients/axios": "^0.1.0" } }, - "node_modules/cli-truncate": { - "version": "3.1.0", - "dev": true, - "license": "MIT", + "node_modules/@rosen-clients/ergo-node": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rosen-clients/ergo-node/-/ergo-node-1.1.1.tgz", + "integrity": "sha512-o/hZByzn4PLHL3ciODZilK0oS9lV3JstTF9xwBsOGczIMfMnr/WytkGtPXQVuNJkAy9KEFsys1I1KjgjX/42iw==", "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@rosen-clients/axios": "^0.1.0" } }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.0.1", - "dev": true, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", "license": "MIT", "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "9.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "5.1.2", + "node_modules/@sinonjs/commons": { + "version": "1.8.3", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type-detect": "4.0.8" } }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.0.1", + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "@sinonjs/commons": "^1.7.0" } }, - "node_modules/cliui": { - "version": "7.0.4", - "license": "ISC", + "node_modules/@sinonjs/samsam": { + "version": "6.1.1", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" } }, - "node_modules/clone": { - "version": "1.0.4", + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.2", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } + "license": "(Unlicense OR Apache-2.0)" }, - "node_modules/clone-response": { - "version": "1.0.3", + "node_modules/@sqltools/formatter": { + "version": "1.2.5", + "license": "MIT" + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", "license": "MIT", "dependencies": { - "mimic-response": "^1.0.0" + "defer-to-connect": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10" } }, - "node_modules/clone-response/node_modules/mimic-response": { - "version": "1.0.1", + "node_modules/@tootallnate/once": { + "version": "1.1.2", "license": "MIT", + "optional": true, "engines": { - "node": ">=4" + "node": ">= 6" } }, - "node_modules/color": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "devOptional": true, + "license": "MIT" }, - "node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "devOptional": true, + "license": "MIT" }, - "node_modules/color-name": { - "version": "1.1.4", + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "devOptional": true, "license": "MIT" }, - "node_modules/color-string": { - "version": "1.9.1", + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "dev": true, "license": "MIT", "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/color-support": { - "version": "1.1.3", - "license": "ISC", - "bin": { - "color-support": "bin.js" + "@types/connect": "*", + "@types/node": "*" } }, - "node_modules/color/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/@types/cacheable-request": { + "version": "6.0.3", "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" } }, - "node_modules/color/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.19", + "node_modules/@types/chai": { + "version": "4.3.6", "dev": true, "license": "MIT" }, - "node_modules/colorspace": { - "version": "1.1.4", + "node_modules/@types/chai-as-promised": { + "version": "7.1.5", + "dev": true, "license": "MIT", "dependencies": { - "color": "^3.1.3", - "text-hex": "1.0.x" + "@types/chai": "*" } }, - "node_modules/combined-stream": { - "version": "1.0.8", + "node_modules/@types/chai-spies": { + "version": "1.0.3", + "dev": true, "license": "MIT", "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" + "@types/chai": "*" } }, - "node_modules/commander": { - "version": "7.2.0", + "node_modules/@types/config": { + "version": "0.0.41", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/connect": { + "version": "3.4.35", "dev": true, "license": "MIT", - "engines": { - "node": ">= 10" + "dependencies": { + "@types/node": "*" } }, - "node_modules/commondir": { - "version": "1.0.1", + "node_modules/@types/cookiejar": { + "version": "2.1.2", "dev": true, "license": "MIT" }, - "node_modules/component-emitter": { - "version": "1.3.0", - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "license": "MIT" - }, - "node_modules/config": { - "version": "3.3.8", + "node_modules/@types/cors": { + "version": "2.8.13", + "dev": true, "license": "MIT", "dependencies": { - "json5": "^2.2.1" - }, - "engines": { - "node": ">= 10.0.0" + "@types/node": "*" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "license": "ISC" + "node_modules/@types/estree": { + "version": "1.0.1", + "dev": true, + "license": "MIT" }, - "node_modules/content-disposition": { - "version": "0.5.4", + "node_modules/@types/express": { + "version": "4.17.14", + "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" } }, - "node_modules/content-type": { - "version": "1.0.5", + "node_modules/@types/express-serve-static-core": { + "version": "4.17.31", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" } }, - "node_modules/convert-source-map": { - "version": "1.8.0", + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-bigint": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.13", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", "dev": true, + "license": "MIT" + }, + "node_modules/@types/keyv": { + "version": "3.1.4", "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.1" + "@types/node": "*" } }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, + "node_modules/@types/lodash": { + "version": "4.14.191", "license": "MIT" }, - "node_modules/cookie": { - "version": "0.5.0", + "node_modules/@types/lodash-es": { + "version": "4.17.6", "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "@types/lodash": "*" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", + "node_modules/@types/mime": { + "version": "3.0.1", + "dev": true, "license": "MIT" }, - "node_modules/cookiejar": { - "version": "2.1.4", + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true + }, + "node_modules/@types/mocha": { + "version": "9.1.1", + "dev": true, "license": "MIT" }, - "node_modules/core-util-is": { - "version": "1.0.3", + "node_modules/@types/node": { + "version": "17.0.45", + "license": "MIT" + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", "dev": true, "license": "MIT" }, - "node_modules/cors": { - "version": "2.8.5", + "node_modules/@types/range-parser": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/responselike": { + "version": "1.0.3", "license": "MIT", "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" + "@types/node": "*" } }, - "node_modules/create-require": { - "version": "1.1.1", - "devOptional": true, - "license": "MIT" + "node_modules/@types/rollup-plugin-natives": { + "version": "0.7.1", + "dev": true, + "license": "MIT", + "dependencies": { + "rollup": "^3.29.0" + } }, - "node_modules/cross-fetch": { - "version": "3.1.5", + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "node_modules/@types/serve-static": { + "version": "1.15.0", + "dev": true, "license": "MIT", "dependencies": { - "node-fetch": "2.6.7" + "@types/mime": "*", + "@types/node": "*" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", + "node_modules/@types/sinon": { + "version": "10.0.13", "dev": true, "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" + "@types/sinonjs__fake-timers": "*" } }, - "node_modules/date-fns": { - "version": "2.29.3", + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/superagent": { + "version": "4.1.15", + "dev": true, "license": "MIT", - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" + "dependencies": { + "@types/cookiejar": "*", + "@types/node": "*" } }, - "node_modules/debug": { - "version": "4.3.4", + "node_modules/@types/supertest": { + "version": "2.0.12", + "dev": true, "license": "MIT", "dependencies": { - "ms": "2.1.2" + "@types/superagent": "*" + } + }, + "node_modules/@types/triple-beam": { + "version": "1.3.2", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.38.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "5.38.0", + "@typescript-eslint/type-utils": "5.38.0", + "@typescript-eslint/utils": "5.38.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" }, "engines": { - "node": ">=6.0" + "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": { - "supports-color": { + "typescript": { "optional": true } } }, - "node_modules/decamelize": { - "version": "4.0.0", + "node_modules/@typescript-eslint/parser": { + "version": "5.38.0", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.38.0", + "@typescript-eslint/types": "5.38.0", + "@typescript-eslint/typescript-estree": "5.38.0", + "debug": "^4.3.4" + }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/decompress-response": { - "version": "6.0.0", + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.38.0", + "dev": true, "license": "MIT", "dependencies": { - "mimic-response": "^3.1.0" + "@typescript-eslint/types": "5.38.0", + "@typescript-eslint/visitor-keys": "5.38.0" }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/deep-eql": { - "version": "4.1.3", + "node_modules/@typescript-eslint/type-utils": { + "version": "5.38.0", + "dev": true, "license": "MIT", "dependencies": { - "type-detect": "^4.0.0" + "@typescript-eslint/typescript-estree": "5.38.0", + "@typescript-eslint/utils": "5.38.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" }, "engines": { - "node": ">=6" + "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 + } } }, - "node_modules/deep-extend": { - "version": "0.6.0", + "node_modules/@typescript-eslint/types": { + "version": "5.38.0", "dev": true, "license": "MIT", "engines": { - "node": ">=4.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/deep-is": { - "version": "0.1.4", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.38.0", "dev": true, - "license": "MIT" + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.38.0", + "@typescript-eslint/visitor-keys": "5.38.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 + } + } }, - "node_modules/deepmerge": { - "version": "4.3.1", + "node_modules/@typescript-eslint/utils": { + "version": "5.38.0", "dev": true, "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.38.0", + "@typescript-eslint/types": "5.38.0", + "@typescript-eslint/typescript-estree": "5.38.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "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" } }, - "node_modules/defaults": { - "version": "1.0.3", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.38.0", "dev": true, "license": "MIT", "dependencies": { - "clone": "^1.0.2" + "@typescript-eslint/types": "5.38.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" } }, - "node_modules/defer-to-connect": { - "version": "2.0.1", + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "dev": true, + "license": "ISC" + }, + "node_modules/@wry/caches": { + "version": "1.0.1", "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", + "node_modules/@wry/context": { + "version": "0.7.4", "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/delegates": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/denque": { - "version": "2.1.0", - "license": "Apache-2.0", - "optional": true, - "peer": true, + "node_modules/@wry/equality": { + "version": "0.5.7", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, "engines": { - "node": ">=0.10" + "node": ">=8" } }, - "node_modules/depd": { - "version": "2.0.0", + "node_modules/@wry/trie": { + "version": "0.5.0", "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/dependency-tree": { - "version": "8.1.2", - "dev": true, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "license": "BSD-2-Clause" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "license": "ISC" + }, + "node_modules/accepts": { + "version": "1.3.8", "license": "MIT", "dependencies": { - "commander": "^2.20.3", - "debug": "^4.3.1", - "filing-cabinet": "^3.0.1", - "precinct": "^8.0.0", - "typescript": "^3.9.7" - }, - "bin": { - "dependency-tree": "bin/cli.js" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { - "node": "^10.13 || ^12 || >=14" + "node": ">= 0.6" } }, - "node_modules/dependency-tree/node_modules/commander": { - "version": "2.20.3", - "dev": true, - "license": "MIT" - }, - "node_modules/dependency-tree/node_modules/typescript": { - "version": "3.9.10", - "dev": true, - "license": "Apache-2.0", + "node_modules/acorn": { + "version": "8.10.0", + "devOptional": true, + "license": "MIT", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "acorn": "bin/acorn" }, "engines": { - "node": ">=4.2.0" + "node": ">=0.4.0" } }, - "node_modules/destroy": { - "version": "1.2.0", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/detect-libc": { - "version": "2.0.1", - "license": "Apache-2.0", + "node_modules/acorn-walk": { + "version": "8.3.1", + "devOptional": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.4.0" } }, - "node_modules/detective-amd": { - "version": "3.1.2", - "dev": true, + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "node_modules/agent-base": { + "version": "6.0.2", "license": "MIT", "dependencies": { - "ast-module-types": "^3.0.0", - "escodegen": "^2.0.0", - "get-amd-module-type": "^3.0.0", - "node-source-walk": "^4.2.0" - }, - "bin": { - "detective-amd": "bin/cli.js" + "debug": "4" }, "engines": { - "node": ">=6.0" + "node": ">= 6.0.0" } }, - "node_modules/detective-cjs": { - "version": "3.1.3", - "dev": true, + "node_modules/agentkeepalive": { + "version": "4.2.1", "license": "MIT", + "optional": true, "dependencies": { - "ast-module-types": "^3.0.0", - "node-source-walk": "^4.0.0" + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" }, "engines": { - "node": ">=6.0" + "node": ">= 8.0.0" } }, - "node_modules/detective-es6": { - "version": "2.2.2", - "dev": true, + "node_modules/agentkeepalive/node_modules/depd": { + "version": "1.1.2", "license": "MIT", - "dependencies": { - "node-source-walk": "^4.0.0" - }, + "optional": true, "engines": { - "node": ">=6.0" + "node": ">= 0.6" } }, - "node_modules/detective-less": { - "version": "1.0.2", - "dev": true, + "node_modules/aggregate-error": { + "version": "3.1.0", + "devOptional": true, "license": "MIT", "dependencies": { - "debug": "^4.0.0", - "gonzales-pe": "^4.2.3", - "node-source-walk": "^4.0.0" - }, - "engines": { - "node": ">= 6.0" - } - }, - "node_modules/detective-postcss": { - "version": "5.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "is-url": "^1.2.4", - "postcss": "^8.4.6", - "postcss-values-parser": "^5.0.0" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, "engines": { - "node": "12.x || 14.x || 16.x" + "node": ">=8" } }, - "node_modules/detective-sass": { - "version": "3.0.2", + "node_modules/ajv": { + "version": "6.12.6", "dev": true, "license": "MIT", "dependencies": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^4.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=6.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/detective-scss": { - "version": "2.0.2", + "node_modules/ansi-colors": { + "version": "4.1.1", "dev": true, "license": "MIT", - "dependencies": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^4.0.0" - }, "engines": { - "node": ">=6.0" + "node": ">=6" } }, - "node_modules/detective-stylus": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/detective-typescript": { - "version": "7.0.2", + "node_modules/ansi-escapes": { + "version": "4.3.2", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "^4.33.0", - "ast-module-types": "^2.7.1", - "node-source-walk": "^4.2.0", - "typescript": "^3.9.10" + "type-fest": "^0.21.3" }, "engines": { - "node": "^10.13 || >=12.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/detective-typescript/node_modules/@typescript-eslint/types": { - "version": "4.33.0", + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", "dev": true, - "license": "MIT", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/detective-typescript/node_modules/@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "license": "MIT", "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=8" } }, - "node_modules/detective-typescript/node_modules/@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "dev": true, + "node_modules/ansi-styles": { + "version": "4.3.0", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/detective-typescript/node_modules/ast-module-types": { - "version": "2.7.1", - "dev": true, + "node_modules/any-promise": { + "version": "1.3.0", "license": "MIT" }, - "node_modules/detective-typescript/node_modules/eslint-visitor-keys": { - "version": "2.1.0", + "node_modules/anymatch": { + "version": "3.1.2", "dev": true, - "license": "Apache-2.0", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, "engines": { - "node": ">=10" + "node": ">= 8" } }, - "node_modules/detective-typescript/node_modules/typescript": { - "version": "3.9.10", + "node_modules/app-module-path": { + "version": "2.2.0", "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, + "license": "BSD-2-Clause" + }, + "node_modules/app-root-path": { + "version": "3.1.0", + "license": "MIT", "engines": { - "node": ">=4.2.0" + "node": ">= 6.0.0" } }, - "node_modules/dezalgo": { - "version": "1.0.4", + "node_modules/aproba": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", "license": "ISC", "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/diff": { - "version": "5.0.0", + "node_modules/arg": { + "version": "4.1.3", + "devOptional": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", "dev": true, - "license": "BSD-3-Clause", + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, "engines": { - "node": ">=0.3.1" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dir-glob": { - "version": "3.0.1", + "node_modules/array-flatten": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", "dev": true, "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/doctrine": { - "version": "3.0.0", + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dotenv": { - "version": "16.3.1", - "license": "BSD-2-Clause", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, - "license": "MIT" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "license": "MIT" + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/enabled": { - "version": "2.0.0", + "node_modules/asap": { + "version": "2.0.6", "license": "MIT" }, - "node_modules/encodeurl": { - "version": "1.0.2", + "node_modules/assertion-error": { + "version": "1.1.0", "license": "MIT", "engines": { - "node": ">= 0.8" + "node": "*" } }, - "node_modules/encoding": { - "version": "0.1.13", + "node_modules/ast-module-types": { + "version": "3.0.0", + "dev": true, "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" + "engines": { + "node": ">=6.0" } }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", + "node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" + "node": ">=8" } }, - "node_modules/enhanced-resolve": { - "version": "5.10.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } + "node_modules/async": { + "version": "3.2.4", + "license": "MIT" }, - "node_modules/env-paths": { - "version": "2.2.1", + "node_modules/async-exit-hook": { + "version": "2.0.1", "license": "MIT", - "optional": true, "engines": { - "node": ">=6" + "node": ">=0.12.0" } }, - "node_modules/ergo-lib-wasm-nodejs": { - "version": "0.24.1", - "license": "CC0-1.0" - }, - "node_modules/err-code": { - "version": "2.0.3", - "license": "MIT", - "optional": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=6" + "node_modules/async-mutex": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.1.tgz", + "integrity": "sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==", + "dependencies": { + "tslib": "^2.4.0" } }, - "node_modules/escape-html": { - "version": "1.0.3", + "node_modules/asynckit": { + "version": "0.4.0", "license": "MIT" }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", + "node_modules/at-least-node": { + "version": "1.0.0", + "license": "ISC", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 4.0.0" } }, - "node_modules/escodegen": { - "version": "2.0.0", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "possible-typed-array-names": "^1.0.0" }, "engines": { - "node": ">=6.0" + "node": ">= 0.4" }, - "optionalDependencies": { - "source-map": "~0.6.1" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" + "node_modules/await-semaphore": { + "version": "0.1.3", + "license": "MIT" + }, + "node_modules/axios": { + "version": "0.26.1", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.14.8" } }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", + "node_modules/axios-mock-adapter": { + "version": "1.21.2", "dev": true, "license": "MIT", "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "fast-deep-equal": "^3.1.3", + "is-buffer": "^2.0.5" }, - "engines": { - "node": ">= 0.8.0" + "peerDependencies": { + "axios": ">= 0.17.0" } }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", + "node_modules/balanced-match": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "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/bech32": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/better-path-resolve": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", + "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", "dev": true, - "license": "MIT", "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "is-windows": "^1.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=4" } }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "dev": true, + "node_modules/bignumber.js": { + "version": "9.1.0", + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": "*" } }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", + "node_modules/binary-extensions": { + "version": "2.2.0", "dev": true, "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/eslint": { - "version": "8.23.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint/eslintrc": "^1.3.2", - "@humanwhocodes/config-array": "^0.10.4", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", - "@humanwhocodes/module-importer": "^1.0.1", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, + "node_modules/bip174": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bip174/-/bip174-2.1.1.tgz", + "integrity": "sha512-mdFV5+/v0XyNYXjBS6CQPLo9ekCx4gtKZFnJm5PMto7Fs9hTTDpkkzOB7/FtluRI6JbUUAu+snTYfJRgHLZbZQ==", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=8.0.0" } }, - "node_modules/eslint-config-prettier": { - "version": "8.5.0", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" + "node_modules/bip39": { + "version": "3.1.0", + "license": "ISC", + "dependencies": { + "@noble/hashes": "^1.2.0" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/bitcoinjs-lib": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.5.tgz", + "integrity": "sha512-yuf6xs9QX/E8LWE2aMJPNd0IxGofwfuVOiYdNUESkc+2bHHVKjhJd8qewqapeoolh9fihzHGoDCB5Vkr57RZCQ==", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "@noble/hashes": "^1.2.0", + "bech32": "^2.0.0", + "bip174": "^2.1.1", + "bs58check": "^3.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.1.2" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", + "node_modules/bl": { + "version": "4.1.0", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node_modules/blake2b": { + "version": "2.1.3", + "license": "ISC", + "dependencies": { + "blake2b-wasm": "^1.1.0", + "nanoassert": "^1.0.0" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/blake2b-wasm": { + "version": "1.1.7", + "license": "MIT", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "nanoassert": "^1.0.0" } }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } + "node_modules/blakejs": { + "version": "1.2.1", + "license": "MIT" }, - "node_modules/espree": { - "version": "9.4.0", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/bottleneck": { + "version": "2.19.5", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "license": "MIT", "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/esprima": { - "version": "4.0.1", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "node_modules/braces": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/esquery": { - "version": "1.4.0", + "node_modules/breakword": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.6.tgz", + "integrity": "sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" + "wcwidth": "^1.0.1" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", + "node_modules/browser-stdout": { + "version": "1.3.1", "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } + "license": "ISC" }, - "node_modules/esrecurse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" + "base-x": "^4.0.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" + "node_modules/bs58check": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz", + "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==", + "dependencies": { + "@noble/hashes": "^1.2.0", + "bs58": "^5.0.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/btoa": { + "version": "1.2.1", + "license": "(MIT OR Apache-2.0)", + "bin": { + "btoa": "bin/btoa.js" + }, "engines": { - "node": ">=4.0" + "node": ">= 0.4.0" } }, - "node_modules/estree-walker": { - "version": "3.0.3", + "node_modules/buffer": { + "version": "5.7.1", "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", "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/etag": { - "version": "1.8.1", + "node_modules/buffer-writer": { + "version": "2.0.0", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=4" } }, - "node_modules/execa": { - "version": "6.1.0", + "node_modules/builtin-modules": { + "version": "3.3.0", "dev": true, "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=6" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/execa/node_modules/mimic-fn": { - "version": "4.0.0", - "dev": true, + "node_modules/bytes": { + "version": "3.1.2", "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.8" } }, - "node_modules/execa/node_modules/onetime": { - "version": "6.0.0", + "node_modules/c8": { + "version": "7.11.3", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "mimic-fn": "^4.0.0" + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" }, - "engines": { - "node": ">=12" + "bin": { + "c8": "bin/c8.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10.12.0" } }, - "node_modules/expand-template": { - "version": "2.0.3", - "dev": true, - "license": "(MIT OR WTFPL)", + "node_modules/cacache": { + "version": "15.3.0", + "license": "ISC", + "optional": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, "engines": { - "node": ">=6" + "node": ">= 10" } }, - "node_modules/express": { - "version": "4.18.1", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "node_modules/cacache/node_modules/glob": { + "version": "7.2.3", + "license": "ISC", + "optional": true, + "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": ">= 0.10.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/express-validator": { - "version": "6.14.2", + "node_modules/cacheable-lookup": { + "version": "5.0.4", "license": "MIT", - "dependencies": { - "lodash": "^4.17.21", - "validator": "^13.7.0" - }, "engines": { - "node": ">= 8.0.0" + "node": ">=10.6.0" } }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.0", + "node_modules/cacheable-request": { + "version": "7.0.4", "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=8" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", "license": "MIT", "dependencies": { - "ms": "2.0.0" + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "license": "MIT", + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "node_modules/fast-glob": { - "version": "3.2.12", + "node_modules/camelcase": { + "version": "6.3.0", "dev": true, "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, "engines": { - "node": ">=8.6.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, - "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" }, "engines": { - "node": ">= 6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=6" + } }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", + "node_modules/camelcase-keys/node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true, - "license": "MIT" - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "license": "MIT" + "engines": { + "node": ">=8" + } }, - "node_modules/fastq": { - "version": "1.13.0", - "license": "ISC", + "node_modules/cbor": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", + "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", "dependencies": { - "reusify": "^1.0.4" + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=12.19" } }, - "node_modules/fecha": { - "version": "4.2.3", - "license": "MIT" - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "dev": true, + "node_modules/chai": { + "version": "4.3.10", "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=4" } }, - "node_modules/file-stream-rotator": { - "version": "0.6.1", - "license": "MIT", + "node_modules/chai-as-promised": { + "version": "7.1.1", + "dev": true, + "license": "WTFPL", "dependencies": { - "moment": "^2.29.1" + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 5" } }, - "node_modules/filing-cabinet": { - "version": "3.3.0", - "dev": true, + "node_modules/chai-spies": { + "version": "1.0.0", "license": "MIT", - "dependencies": { - "app-module-path": "^2.2.0", - "commander": "^2.20.3", - "debug": "^4.3.3", - "enhanced-resolve": "^5.8.3", - "is-relative-path": "^1.0.2", - "module-definition": "^3.3.1", - "module-lookup-amd": "^7.0.1", - "resolve": "^1.21.0", - "resolve-dependency-path": "^2.0.0", - "sass-lookup": "^3.0.0", - "stylus-lookup": "^3.0.1", - "tsconfig-paths": "^3.10.1", - "typescript": "^3.9.7" + "engines": { + "node": ">= 4.0.0" }, - "bin": { - "filing-cabinet": "bin/cli.js" + "peerDependencies": { + "chai": "*" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/filing-cabinet/node_modules/commander": { - "version": "2.20.3", - "dev": true, - "license": "MIT" + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true }, - "node_modules/filing-cabinet/node_modules/json5": { - "version": "1.0.2", - "dev": true, + "node_modules/check-error": { + "version": "1.0.3", "license": "MIT", "dependencies": { - "minimist": "^1.2.0" + "get-func-name": "^2.0.2" }, - "bin": { - "json5": "lib/cli.js" + "engines": { + "node": "*" } }, - "node_modules/filing-cabinet/node_modules/tsconfig-paths": { - "version": "3.14.1", + "node_modules/chokidar": { + "version": "3.5.3", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "license": "MIT", "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/filing-cabinet/node_modules/typescript": { - "version": "3.9.10", + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" }, "engines": { - "node": ">=4.2.0" + "node": ">= 6" } }, - "node_modules/fill-range": { - "version": "7.0.1", + "node_modules/chownr": { + "version": "2.0.0", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "restore-cursor": "^3.1.0" }, "engines": { "node": ">=8" } }, - "node_modules/finalhandler": { - "version": "1.2.0", - "license": "MIT", + "node_modules/cli-highlight": { + "version": "2.1.11", + "license": "ISC", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" }, "engines": { - "node": ">= 0.8" + "node": ">=8.0.0", + "npm": ">=5.0.0" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", + "node_modules/cli-spinners": { + "version": "2.7.0", + "dev": true, "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/find-up": { - "version": "5.0.0", + "node_modules/cli-truncate": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-yarn-workspace-root": { - "version": "2.0.0", - "license": "Apache-2.0", - "dependencies": { - "micromatch": "^4.0.2" + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/flat": { - "version": "5.0.2", + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "9.2.2", "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } + "license": "MIT" }, - "node_modules/flat-cache": { - "version": "3.0.4", + "node_modules/cli-truncate/node_modules/string-width": { + "version": "5.1.2", "dev": true, "license": "MIT", "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/flatted": { - "version": "3.2.7", - "dev": true, - "license": "ISC" - }, - "node_modules/flatten": { - "version": "1.0.3", + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.0.1", "dev": true, - "license": "MIT" - }, - "node_modules/fn.name": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "node": ">=4.0" + "node": ">=12" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/foreground-child": { - "version": "2.0.0", - "dev": true, + "node_modules/cliui": { + "version": "7.0.4", "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/form-data": { - "version": "4.0.0", + "node_modules/clone": { + "version": "1.0.4", + "dev": true, "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, "engines": { - "node": ">= 6" + "node": ">=0.8" } }, - "node_modules/formidable": { - "version": "2.1.2", + "node_modules/clone-response": { + "version": "1.0.3", "license": "MIT", "dependencies": { - "dezalgo": "^1.0.4", - "hexoid": "^1.0.0", - "once": "^1.4.0", - "qs": "^6.11.0" + "mimic-response": "^1.0.0" }, "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/formidable/node_modules/qs": { - "version": "6.11.2", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, + "node_modules/clone-response/node_modules/mimic-response": { + "version": "1.0.1", + "license": "MIT", "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/forwarded": { - "version": "0.2.0", + "node_modules/color": { + "version": "3.2.1", "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" } }, - "node_modules/fresh": { - "version": "0.5.2", + "node_modules/color-convert": { + "version": "2.0.1", "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">= 0.6" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "node": ">=7.0.0" } }, - "node_modules/from2/node_modules/isarray": { - "version": "1.0.0", - "dev": true, + "node_modules/color-name": { + "version": "1.1.4", "license": "MIT" }, - "node_modules/from2/node_modules/readable-stream": { - "version": "2.3.8", - "dev": true, + "node_modules/color-string": { + "version": "1.9.1", "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" } }, - "node_modules/from2/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" + "node_modules/color-support": { + "version": "1.1.3", + "license": "ISC", + "bin": { + "color-support": "bin.js" + } }, - "node_modules/from2/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, + "node_modules/color/node_modules/color-convert": { + "version": "1.9.3", "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "color-name": "1.1.3" } }, - "node_modules/fs-constants": { - "version": "1.0.0", + "node_modules/color/node_modules/color-name": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.19", "dev": true, "license": "MIT" }, - "node_modules/fs-extra": { - "version": "9.1.0", + "node_modules/colorspace": { + "version": "1.1.4", "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" + "color": "^3.1.3", + "text-hex": "1.0.x" } }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "license": "ISC", + "node_modules/combined-stream": { + "version": "1.0.8", + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "delayed-stream": "~1.0.0" }, "engines": { - "node": ">= 8" + "node": ">= 0.8" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", + "node_modules/commander": { + "version": "7.2.0", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">= 10" } }, - "node_modules/function-bind": { - "version": "1.1.1", + "node_modules/commondir": { + "version": "1.0.1", + "dev": true, "license": "MIT" }, - "node_modules/gauge": { - "version": "3.0.2", - "license": "ISC", + "node_modules/component-emitter": { + "version": "1.3.0", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "license": "MIT" + }, + "node_modules/config": { + "version": "3.3.8", + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" + "json5": "^2.2.1" }, "engines": { - "node": ">=10" + "node": ">= 10.0.0" } }, - "node_modules/generate-function": { - "version": "2.3.1", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "is-property": "^1.0.2" - } + "node_modules/console-control-strings": { + "version": "1.1.0", + "license": "ISC" }, - "node_modules/get-amd-module-type": { - "version": "3.0.2", - "dev": true, + "node_modules/content-disposition": { + "version": "0.5.4", "license": "MIT", "dependencies": { - "ast-module-types": "^3.0.0", - "node-source-walk": "^4.2.2" + "safe-buffer": "5.2.1" }, "engines": { - "node": ">=6.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">= 0.6" } }, - "node_modules/get-func-name": { - "version": "2.0.2", + "node_modules/content-type": { + "version": "1.0.5", "license": "MIT", "engines": { - "node": "*" + "node": ">= 0.6" } }, - "node_modules/get-intrinsic": { - "version": "1.1.3", + "node_modules/convert-source-map": { + "version": "1.8.0", + "dev": true, "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "safe-buffer": "~5.1.1" } }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/get-stream": { - "version": "6.0.1", - "dev": true, + "node_modules/cookie": { + "version": "0.5.0", "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.6" } }, - "node_modules/github-from-package": { - "version": "0.0.0", - "dev": true, + "node_modules/cookie-signature": { + "version": "1.0.6", "license": "MIT" }, - "node_modules/glob": { - "version": "8.1.0", - "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/cookiejar": { + "version": "2.1.4", + "license": "MIT" }, - "node_modules/glob-parent": { - "version": "6.0.2", + "node_modules/core-util-is": { + "version": "1.0.3", "dev": true, - "license": "ISC", + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.5", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.3" + "object-assign": "^4", + "vary": "^1" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.10" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", + "node_modules/create-require": { + "version": "1.1.1", + "devOptional": true, + "license": "MIT" + }, + "node_modules/cross-fetch": { + "version": "3.1.5", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "node-fetch": "2.6.7" } }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.6", - "license": "ISC", + "node_modules/cross-spawn": { + "version": "7.0.3", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">= 8" } }, - "node_modules/globals": { - "version": "13.17.0", + "node_modules/csv": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/csv/-/csv-5.5.3.tgz", + "integrity": "sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==", "dev": true, - "license": "MIT", "dependencies": { - "type-fest": "^0.20.2" + "csv-generate": "^3.4.3", + "csv-parse": "^4.16.3", + "csv-stringify": "^5.6.5", + "stream-transform": "^2.1.3" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.1.90" } }, - "node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", + "node_modules/csv-generate": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.3.tgz", + "integrity": "sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==", + "dev": true + }, + "node_modules/csv-parse": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.16.3.tgz", + "integrity": "sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==", + "dev": true + }, + "node_modules/csv-stringify": { + "version": "5.6.5", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.5.tgz", + "integrity": "sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==", + "dev": true + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "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" + "ms": "2.1.2" }, "engines": { - "node": ">=10" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/gonzales-pe": { - "version": "4.3.0", + "node_modules/decamelize": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "gonzales": "bin/gonzales.js" - }, "engines": { - "node": ">=0.6.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/got": { - "version": "11.8.6", - "license": "MIT", + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "engines": { - "node": ">=10.19.0" + "node": ">=0.10.0" }, "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "license": "ISC" - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", + "node_modules/decamelize-keys/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/graphql": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", - "peer": true, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + "node": ">=0.10.0" } }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "node_modules/decompress-response": { + "version": "6.0.0", + "license": "MIT", "dependencies": { - "tslib": "^2.1.0" + "mimic-response": "^3.1.0" }, "engines": { "node": ">=10" }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/graphviz": { - "version": "0.0.9", - "dev": true, - "license": "GPL-3.0", + "node_modules/deep-eql": { + "version": "4.1.3", + "license": "MIT", "dependencies": { - "temp": "~0.4.0" + "type-detect": "^4.0.0" }, "engines": { - "node": ">=0.6.8" + "node": ">=6" } }, - "node_modules/growl": { - "version": "1.10.5", + "node_modules/deep-extend": { + "version": "0.6.0", "dev": true, "license": "MIT", "engines": { - "node": ">=4.x" + "node": ">=4.0.0" } }, - "node_modules/has": { + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { "version": "1.0.3", + "dev": true, "license": "MIT", "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" + "clone": "^1.0.2" } }, - "node_modules/has-flag": { - "version": "4.0.0", + "node_modules/defer-to-connect": { + "version": "2.0.1", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "license": "MIT", + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, "engines": { "node": ">= 0.4" }, @@ -4236,4108 +4527,4196 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "license": "ISC" - }, - "node_modules/he": { - "version": "1.2.0", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hexoid": { + "node_modules/delayed-stream": { "version": "1.0.0", "license": "MIT", "engines": { - "node": ">=8" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "license": "BSD-3-Clause", - "engines": { - "node": "*" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" + "node": ">=0.4.0" } }, - "node_modules/html-escaper": { - "version": "2.0.2", - "dev": true, + "node_modules/delegates": { + "version": "1.0.0", "license": "MIT" }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "license": "BSD-2-Clause" + "node_modules/denque": { + "version": "2.1.0", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10" + } }, - "node_modules/http-errors": { + "node_modules/depd": { "version": "2.0.0", "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, "engines": { "node": ">= 0.8" } }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", + "node_modules/dependency-tree": { + "version": "8.1.2", + "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "commander": "^2.20.3", + "debug": "^4.3.1", + "filing-cabinet": "^3.0.1", + "precinct": "^8.0.0", + "typescript": "^3.9.7" + }, + "bin": { + "dependency-tree": "bin/cli.js" }, "engines": { - "node": ">= 6" + "node": "^10.13 || ^12 || >=14" } }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" + "node_modules/dependency-tree/node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "node_modules/dependency-tree/node_modules/typescript": { + "version": "3.9.10", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=10.19.0" + "node": ">=4.2.0" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", + "node_modules/destroy": { + "version": "1.2.0", "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, "engines": { - "node": ">= 6" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/human-signals": { - "version": "3.0.1", + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=12.20.0" + "node": ">=8" } }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "license": "MIT", - "optional": true, - "dependencies": { - "ms": "^2.0.0" + "node_modules/detect-libc": { + "version": "2.0.1", + "license": "Apache-2.0", + "engines": { + "node": ">=8" } }, - "node_modules/husky": { - "version": "8.0.1", + "node_modules/detective-amd": { + "version": "3.1.2", "dev": true, "license": "MIT", + "dependencies": { + "ast-module-types": "^3.0.0", + "escodegen": "^2.0.0", + "get-amd-module-type": "^3.0.0", + "node-source-walk": "^4.2.0" + }, "bin": { - "husky": "lib/bin.js" + "detective-amd": "bin/cli.js" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" + "node": ">=6.0" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", + "node_modules/detective-cjs": { + "version": "3.1.3", + "dev": true, "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "ast-module-types": "^3.0.0", + "node-source-walk": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "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": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.2.4", + "node_modules/detective-es6": { + "version": "2.2.2", "dev": true, "license": "MIT", + "dependencies": { + "node-source-walk": "^4.0.0" + }, "engines": { - "node": ">= 4" + "node": ">=6.0" } }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/import-fresh": { - "version": "3.3.0", + "node_modules/detective-less": { + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" + "debug": "^4.0.0", + "gonzales-pe": "^4.2.3", + "node-source-walk": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "devOptional": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 6.0" } }, - "node_modules/indexes-of": { - "version": "1.0.1", + "node_modules/detective-postcss": { + "version": "5.1.1", "dev": true, - "license": "MIT" - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "license": "ISC", - "optional": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "is-url": "^1.2.4", + "postcss": "^8.4.6", + "postcss-values-parser": "^5.0.0" + }, + "engines": { + "node": "12.x || 14.x || 16.x" } }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "dev": true, - "license": "ISC" - }, - "node_modules/into-stream": { - "version": "6.0.0", + "node_modules/detective-sass": { + "version": "3.0.2", "dev": true, "license": "MIT", "dependencies": { - "from2": "^2.3.0", - "p-is-promise": "^3.0.0" + "gonzales-pe": "^4.3.0", + "node-source-walk": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.0" } }, - "node_modules/ip": { - "version": "2.0.0", - "license": "MIT", - "optional": true - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", + "node_modules/detective-scss": { + "version": "2.0.2", + "dev": true, "license": "MIT", + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^4.0.0" + }, "engines": { - "node": ">= 0.10" + "node": ">=6.0" } }, - "node_modules/is-arrayish": { - "version": "0.3.2", + "node_modules/detective-stylus": { + "version": "1.0.3", + "dev": true, "license": "MIT" }, - "node_modules/is-binary-path": { - "version": "2.1.0", + "node_modules/detective-typescript": { + "version": "7.0.2", "dev": true, "license": "MIT", "dependencies": { - "binary-extensions": "^2.0.0" + "@typescript-eslint/typescript-estree": "^4.33.0", + "ast-module-types": "^2.7.1", + "node-source-walk": "^4.2.0", + "typescript": "^3.9.10" }, "engines": { - "node": ">=8" + "node": "^10.13 || >=12.0.0" } }, - "node_modules/is-buffer": { - "version": "2.0.5", + "node_modules/detective-typescript/node_modules/@typescript-eslint/types": { + "version": "4.33.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", "engines": { - "node": ">=4" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/is-builtin-module": { - "version": "3.2.1", + "node_modules/detective-typescript/node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "builtin-modules": "^3.3.0" + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { - "node": ">=6" + "node": "^10.12.0 || >=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "ci-info": "^2.0.0" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, - "bin": { - "is-ci": "bin.js" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/is-core-module": { - "version": "2.10.0", + "node_modules/detective-typescript/node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", "dev": true, "license": "MIT", "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "license": "MIT", - "bin": { - "is-docker": "cli.js" + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=8" + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/is-extglob": { - "version": "2.1.1", + "node_modules/detective-typescript/node_modules/ast-module-types": { + "version": "2.7.1", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", + "node_modules/detective-typescript/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/is-glob": { - "version": "4.0.3", + "node_modules/detective-typescript/node_modules/typescript": { + "version": "3.9.10", "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=0.10.0" + "node": ">=4.2.0" } }, - "node_modules/is-interactive": { - "version": "1.0.0", + "node_modules/dezalgo": { + "version": "1.0.4", + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff": { + "version": "5.0.0", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "engines": { - "node": ">=8" + "node": ">=0.3.1" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "license": "MIT", - "optional": true - }, - "node_modules/is-module": { - "version": "1.0.0", + "node_modules/dir-glob": { + "version": "3.0.1", "dev": true, - "license": "MIT" - }, - "node_modules/is-number": { - "version": "7.0.0", "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, "engines": { - "node": ">=0.12.0" + "node": ">=8" } }, - "node_modules/is-obj": { - "version": "1.0.1", + "node_modules/doctrine": { + "version": "3.0.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" } }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "dev": true, - "license": "MIT", + "node_modules/dotenv": { + "version": "16.3.1", + "license": "BSD-2-Clause", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" } }, - "node_modules/is-property": { + "node_modules/eastasianwidth": { + "version": "0.2.0", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "license": "MIT" + }, + "node_modules/enabled": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/encodeurl": { "version": "1.0.2", "license": "MIT", - "optional": true, - "peer": true + "engines": { + "node": ">= 0.8" + } }, - "node_modules/is-reference": { - "version": "1.2.1", - "dev": true, + "node_modules/encoding": { + "version": "0.1.13", "license": "MIT", + "optional": true, "dependencies": { - "@types/estree": "*" + "iconv-lite": "^0.6.2" } }, - "node_modules/is-regexp": { - "version": "1.0.0", - "dev": true, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-relative-path": { - "version": "1.0.2", - "dev": true, - "license": "MIT" + "node_modules/end-of-stream": { + "version": "1.4.4", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } }, - "node_modules/is-stream": { - "version": "3.0.0", + "node_modules/enhanced-resolve": { + "version": "5.10.0", "dev": true, "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10.13.0" } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", "license": "MIT", + "optional": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/is-url": { - "version": "1.2.4", - "dev": true, - "license": "MIT" + "node_modules/ergo-lib-wasm-nodejs": { + "version": "0.24.1", + "license": "CC0-1.0" }, - "node_modules/is-url-superb": { - "version": "4.0.0", - "dev": true, + "node_modules/err-code": { + "version": "2.0.3", "license": "MIT", + "optional": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-ex/node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/es-abstract": { + "version": "1.22.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz", + "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.1", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.0", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.5", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.14" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-wsl": { - "version": "2.2.0", - "license": "MIT", + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dependencies": { - "is-docker": "^2.0.0" + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/isarray": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "license": "ISC" - }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "license": "MIT", - "peerDependencies": { - "ws": "*" + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "hasown": "^2.0.0" } }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { - "semver": "^7.5.3" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, + "node_modules/escalade": { + "version": "3.1.1", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/js-sdsl": { - "version": "4.1.4", - "dev": true, + "node_modules/escape-html": { + "version": "1.0.3", "license": "MIT" }, - "node_modules/js-tokens": { + "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", "dev": true, "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" + "engines": { + "node": ">=10" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jsesc": { - "version": "2.5.2", + "node_modules/escodegen": { + "version": "2.0.0", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, "bin": { - "jsesc": "bin/jsesc" + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": ">=4" - } - }, - "node_modules/json-bigint": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "bignumber.js": "^9.0.0" + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, + "license": "BSD-2-Clause", "engines": { - "node": ">=6" + "node": ">=4.0" } }, - "node_modules/jsonfile": { - "version": "6.1.0", + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "dev": true, "license": "MIT", "dependencies": { - "universalify": "^2.0.0" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/just-extend": { - "version": "4.2.1", + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", "dev": true, - "license": "MIT" - }, - "node_modules/keyv": { - "version": "4.5.4", - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/klaw-sync": { - "version": "6.0.0", "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.11" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/kuler": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/levn": { - "version": "0.4.1", + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/lilconfig": { - "version": "2.0.5", + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", "dev": true, "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, "engines": { - "node": ">=10" + "node": ">= 0.8.0" } }, - "node_modules/lint-staged": { - "version": "13.0.3", + "node_modules/eslint": { + "version": "8.23.1", "dev": true, "license": "MIT", "dependencies": { - "cli-truncate": "^3.1.0", - "colorette": "^2.0.17", - "commander": "^9.3.0", - "debug": "^4.3.4", - "execa": "^6.1.0", - "lilconfig": "2.0.5", - "listr2": "^4.0.5", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.2", - "pidtree": "^0.6.0", - "string-argv": "^0.3.1", - "yaml": "^2.1.1" + "@eslint/eslintrc": "^1.3.2", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@humanwhocodes/module-importer": "^1.0.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" }, "bin": { - "lint-staged": "bin/lint-staged.js" + "eslint": "bin/eslint.js" }, "engines": { - "node": "^14.13.1 || >=16.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/lint-staged" + "url": "https://opencollective.com/eslint" } }, - "node_modules/lint-staged/node_modules/commander": { - "version": "9.4.0", + "node_modules/eslint-config-prettier": { + "version": "8.5.0", "dev": true, "license": "MIT", - "engines": { - "node": "^12.20.0 || >=14" + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/listr2": { - "version": "4.0.5", + "node_modules/eslint-scope": { + "version": "5.1.1", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.5.5", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">=12" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } + "node": ">=8.0.0" } }, - "node_modules/listr2/node_modules/cli-truncate": { - "version": "2.1.0", + "node_modules/eslint-utils": { + "version": "3.0.0", "dev": true, "license": "MIT", "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=8" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/listr2/node_modules/slice-ansi": { - "version": "3.0.0", + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/locate-path": { - "version": "6.0.0", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, + "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/lodash": { - "version": "4.17.21", - "license": "MIT" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "license": "MIT" - }, - "node_modules/lodash.get": { - "version": "4.4.2", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", "dev": true, - "license": "MIT" + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } }, - "node_modules/lodash.merge": { - "version": "4.6.2", + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", "dev": true, - "license": "MIT" + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } }, - "node_modules/log-symbols": { - "version": "4.1.0", + "node_modules/espree": { + "version": "9.4.0", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/log-update": { - "version": "4.0.0", + "node_modules/esprima": { + "version": "4.0.1", "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" + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", + "node_modules/esquery": { + "version": "1.4.0", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">=0.10" } }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8" + "node": ">=4.0" } }, - "node_modules/logform": { - "version": "2.5.1", - "license": "MIT", - "dependencies": { - "@colors/colors": "1.5.0", - "@types/triple-beam": "^1.3.2", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" } }, - "node_modules/long": { - "version": "4.0.0", - "license": "Apache-2.0", - "optional": true, - "peer": true + "node_modules/estraverse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "node_modules/estree-walker": { + "version": "3.0.3", + "dev": true, + "license": "MIT", "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" + "@types/estree": "^1.0.0" } }, - "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dependencies": { - "get-func-name": "^2.0.1" + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/lowercase-keys": { - "version": "2.0.0", + "node_modules/etag": { + "version": "1.8.1", "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", + "node_modules/ethers": { + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.12.1.tgz", + "integrity": "sha512-j6wcVoZf06nqEcBbDWkKg8Fp895SS96dSnTCjiXT+8vt2o02raTn4Lo9ERUuIVU5bAjoPYeA+7ytQFexFmLuVw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], "dependencies": { - "yallist": "^4.0.0" + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" }, "engines": { - "node": ">=10" + "node": ">=14.0.0" } }, - "node_modules/madge": { - "version": "5.0.1", + "node_modules/ethers/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/ethers/node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "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/execa": { + "version": "6.1.0", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.1.1", - "commander": "^7.2.0", - "commondir": "^1.0.1", - "debug": "^4.3.1", - "dependency-tree": "^8.1.1", - "detective-amd": "^3.1.0", - "detective-cjs": "^3.1.1", - "detective-es6": "^2.2.0", - "detective-less": "^1.0.2", - "detective-postcss": "^5.0.0", - "detective-sass": "^3.0.1", - "detective-scss": "^2.0.1", - "detective-stylus": "^1.0.0", - "detective-typescript": "^7.0.0", - "graphviz": "0.0.9", - "ora": "^5.4.1", - "pluralize": "^8.0.0", - "precinct": "^8.1.0", - "pretty-ms": "^7.0.1", - "rc": "^1.2.7", - "typescript": "^3.9.5", - "walkdir": "^0.4.1" - }, - "bin": { - "madge": "bin/cli.js" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^10.13 || ^12 || >=14" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "type": "individual", - "url": "https://www.paypal.me/pahen" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/madge/node_modules/typescript": { - "version": "3.9.10", + "node_modules/execa/node_modules/mimic-fn": { + "version": "4.0.0", "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, + "license": "MIT", "engines": { - "node": ">=4.2.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/magic-string": { - "version": "0.27.0", + "node_modules/execa/node_modules/onetime": { + "version": "6.0.0", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "mimic-fn": "^4.0.0" }, "engines": { "node": ">=12" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/expand-template": { + "version": "2.0.3", + "dev": true, + "license": "(MIT OR WTFPL)", + "engines": { + "node": ">=6" } }, - "node_modules/make-error": { - "version": "1.3.6", - "devOptional": true, - "license": "ISC" - }, - "node_modules/make-fetch-happen": { - "version": "9.1.0", - "license": "ISC", - "optional": true, + "node_modules/express": { + "version": "4.18.1", + "license": "MIT", "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" }, "engines": { - "node": ">= 10" + "node": ">= 0.10.0" } }, - "node_modules/media-typer": { - "version": "0.3.0", + "node_modules/express-validator": { + "version": "6.14.2", "license": "MIT", + "dependencies": { + "lodash": "^4.17.21", + "validator": "^13.7.0" + }, "engines": { - "node": ">= 0.6" + "node": ">= 8.0.0" } }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "dev": true, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.0", "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, "engines": { - "node": ">= 8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/methods": { - "version": "1.1.2", + "node_modules/express/node_modules/debug": { + "version": "2.6.9", "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/micromatch": { - "version": "4.0.5", + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", "license": "MIT", "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" }, "engines": { - "node": ">=8.6" + "node": ">= 0.8" } }, - "node_modules/mime": { - "version": "1.6.0", - "license": "MIT", - "bin": { - "mime": "cli.js" + "node_modules/extendable-error": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/extendable-error/-/extendable-error-0.1.7.tgz", + "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==", + "dev": true + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" }, "engines": { "node": ">=4" } }, - "node_modules/mime-db": { - "version": "1.52.0", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "dev": true, "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, "engines": { - "node": ">= 0.6" + "node": ">=8.6.0" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", "dependencies": { - "mime-db": "1.52.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">= 6" } }, - "node_modules/mimic-fn": { + "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } + "license": "MIT" }, - "node_modules/mimic-response": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" }, - "node_modules/minimatch": { - "version": "3.1.2", + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.13.0", "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "reusify": "^1.0.4" } }, - "node_modules/minimist": { - "version": "1.2.6", + "node_modules/fecha": { + "version": "4.2.3", "license": "MIT" }, - "node_modules/minipass": { - "version": "3.3.4", - "license": "ISC", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=8" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "license": "ISC", - "optional": true, + "node_modules/file-stream-rotator": { + "version": "0.6.1", + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" + "moment": "^2.29.1" } }, - "node_modules/minipass-fetch": { - "version": "1.4.1", + "node_modules/filing-cabinet": { + "version": "3.3.0", + "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" + "app-module-path": "^2.2.0", + "commander": "^2.20.3", + "debug": "^4.3.3", + "enhanced-resolve": "^5.8.3", + "is-relative-path": "^1.0.2", + "module-definition": "^3.3.1", + "module-lookup-amd": "^7.0.1", + "resolve": "^1.21.0", + "resolve-dependency-path": "^2.0.0", + "sass-lookup": "^3.0.0", + "stylus-lookup": "^3.0.1", + "tsconfig-paths": "^3.10.1", + "typescript": "^3.9.7" }, - "engines": { - "node": ">=8" + "bin": { + "filing-cabinet": "bin/cli.js" }, - "optionalDependencies": { - "encoding": "^0.1.12" + "engines": { + "node": ">=10.13.0" } }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "license": "ISC", - "optional": true, + "node_modules/filing-cabinet/node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "node_modules/filing-cabinet/node_modules/json5": { + "version": "1.0.2", + "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "minimist": "^1.2.0" }, - "engines": { - "node": ">= 8" + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "license": "ISC", - "optional": true, + "node_modules/filing-cabinet/node_modules/tsconfig-paths": { + "version": "3.14.1", + "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/filing-cabinet/node_modules/typescript": { + "version": "3.9.10", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=8" + "node": ">=4.2.0" } }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "license": "ISC", - "optional": true, + "node_modules/fill-range": { + "version": "7.0.1", + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "to-regex-range": "^5.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/minizlib": { - "version": "2.1.2", + "node_modules/finalhandler": { + "version": "1.2.0", "license": "MIT", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" }, "engines": { - "node": ">= 8" + "node": ">= 0.8" } }, - "node_modules/mkdirp": { - "version": "1.0.4", + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "dev": true, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", "license": "MIT" }, - "node_modules/mocha": { - "version": "9.2.2", + "node_modules/find-up": { + "version": "5.0.0", "dev": true, "license": "MIT", "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.3", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "4.2.1", - "ms": "2.1.3", - "nanoid": "3.3.1", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 12.0.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/debug": { - "version": "4.3.3", + "node_modules/find-yarn-workspace-root": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "micromatch": "^4.0.2" + } + }, + "node_modules/find-yarn-workspace-root2": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", + "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", + "dev": true, + "dependencies": { + "micromatch": "^4.0.2", + "pkg-dir": "^4.2.0" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.1.2" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/mocha/node_modules/debug/node_modules/ms": { - "version": "2.1.2", + "node_modules/flatted": { + "version": "3.2.7", "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", + "node_modules/flatten": { + "version": "1.0.3", "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, + "license": "MIT" + }, + "node_modules/fn.name": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { - "node": "*" + "node": ">=4.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "is-callable": "^1.1.3" } }, - "node_modules/mocha/node_modules/minimatch": { - "version": "4.2.1", + "node_modules/foreground-child": { + "version": "2.0.0", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" }, "engines": { - "node": ">=10" + "node": ">=8.0.0" } }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, + "node_modules/form-data": { + "version": "4.0.0", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">= 6" } }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "20.2.4", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" + "node_modules/formidable": { + "version": "2.1.2", + "license": "MIT", + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" } }, - "node_modules/module-definition": { - "version": "3.4.0", - "dev": true, - "license": "MIT", + "node_modules/formidable/node_modules/qs": { + "version": "6.11.2", + "license": "BSD-3-Clause", "dependencies": { - "ast-module-types": "^3.0.0", - "node-source-walk": "^4.0.0" + "side-channel": "^1.0.4" }, - "bin": { - "module-definition": "bin/cli.js" + "engines": { + "node": ">=0.6" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "license": "MIT", "engines": { - "node": ">=6.0" + "node": ">= 0.6" } }, - "node_modules/module-lookup-amd": { - "version": "7.0.1", + "node_modules/fresh": { + "version": "0.5.2", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", "dev": true, "license": "MIT", "dependencies": { - "commander": "^2.8.1", - "debug": "^4.1.0", - "glob": "^7.1.6", - "requirejs": "^2.3.5", - "requirejs-config-file": "^4.0.0" - }, - "bin": { - "lookup-amd": "bin/cli.js" - }, - "engines": { - "node": ">=10.13.0" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, - "node_modules/module-lookup-amd/node_modules/commander": { - "version": "2.20.3", + "node_modules/from2/node_modules/isarray": { + "version": "1.0.0", "dev": true, "license": "MIT" }, - "node_modules/module-lookup-amd/node_modules/glob": { - "version": "7.2.3", + "node_modules/from2/node_modules/readable-stream": { + "version": "2.3.8", "dev": true, - "license": "ISC", + "license": "MIT", "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" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/moment": { - "version": "2.29.4", + "node_modules/from2/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/from2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, "license": "MIT", - "engines": { - "node": "*" + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "node_modules/ms": { - "version": "2.1.2", + "node_modules/fs-constants": { + "version": "1.0.0", + "dev": true, "license": "MIT" }, - "node_modules/multistream": { - "version": "4.1.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" - } - ], + "node_modules/fs-extra": { + "version": "9.1.0", "license": "MIT", "dependencies": { - "once": "^1.4.0", - "readable-stream": "^3.6.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/mysql2": { - "version": "2.3.3", - "license": "MIT", - "optional": true, - "peer": true, + "node_modules/fs-minipass": { + "version": "2.1.0", + "license": "ISC", "dependencies": { - "denque": "^2.0.1", - "generate-function": "^2.3.1", - "iconv-lite": "^0.6.3", - "long": "^4.0.0", - "lru-cache": "^6.0.0", - "named-placeholders": "^1.1.2", - "seq-queue": "^0.0.5", - "sqlstring": "^2.3.2" + "minipass": "^3.0.0" }, "engines": { - "node": ">= 8.0" + "node": ">= 8" } }, - "node_modules/mysql2/node_modules/iconv-lite": { - "version": "0.6.3", + "node_modules/fs.realpath": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "dev": true, "license": "MIT", "optional": true, - "peer": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mz": { - "version": "2.7.0", - "license": "MIT", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "3.0.2", + "license": "ISC", "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" } }, - "node_modules/named-placeholders": { - "version": "1.1.3", + "node_modules/generate-function": { + "version": "2.3.1", "license": "MIT", "optional": true, "peer": true, "dependencies": { - "lru-cache": "^7.14.1" + "is-property": "^1.0.2" + } + }, + "node_modules/get-amd-module-type": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-module-types": "^3.0.0", + "node-source-walk": "^4.2.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=6.0" } }, - "node_modules/named-placeholders/node_modules/lru-cache": { - "version": "7.18.3", + "node_modules/get-caller-file": { + "version": "2.0.5", "license": "ISC", - "optional": true, - "peer": true, "engines": { - "node": ">=12" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/nanoassert": { - "version": "1.1.0", - "license": "ISC" - }, - "node_modules/nanoid": { - "version": "3.3.1", + "node_modules/get-func-name": { + "version": "2.0.2", "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": "*" } }, - "node_modules/napi-build-utils": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "license": "MIT", + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/nice-try": { - "version": "1.0.5", - "license": "MIT" - }, - "node_modules/nise": { - "version": "5.1.1", + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": ">=5", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" - } + "license": "ISC" }, - "node_modules/nise/node_modules/path-to-regexp": { - "version": "1.8.0", + "node_modules/get-stream": { + "version": "6.0.1", "dev": true, "license": "MIT", - "dependencies": { - "isarray": "0.0.1" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/node-abi": { - "version": "3.40.0", + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, - "license": "MIT", "dependencies": { - "semver": "^7.3.5" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/node-addon-api": { - "version": "4.3.0", + "node_modules/github-from-package": { + "version": "0.0.0", + "dev": true, "license": "MIT" }, - "node_modules/node-fetch": { - "version": "2.6.7", - "license": "MIT", + "node_modules/glob": { + "version": "8.1.0", + "dev": true, + "license": "ISC", "dependencies": { - "whatwg-url": "^5.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" + "node": ">=12" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/node-gyp": { - "version": "8.4.1", - "license": "MIT", - "optional": true, + "node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 10.12.0" + "node": ">=10.13.0" } }, - "node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.1", - "license": "ISC", - "optional": true, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "balanced-match": "^1.0.0" } }, - "node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.4", + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.6", + "dev": true, "license": "ISC", - "optional": true, "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=10" } }, - "node_modules/node-gyp/node_modules/glob": { - "version": "7.2.3", - "license": "ISC", - "optional": true, + "node_modules/globals": { + "version": "13.17.0", + "dev": true, + "license": "MIT", "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" + "type-fest": "^0.20.2" }, "engines": { - "node": "*" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.2", - "license": "ISC", - "optional": true, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "define-properties": "^1.1.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/node-source-walk": { - "version": "4.3.0", + "node_modules/globby": { + "version": "11.1.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.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": ">=6.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nodemon": { - "version": "2.0.22", + "node_modules/gonzales-pe": { + "version": "4.3.0", "dev": true, "license": "MIT", "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" + "minimist": "^1.2.5" }, "bin": { - "nodemon": "bin/nodemon.js" + "gonzales": "bin/gonzales.js" }, "engines": { - "node": ">=8.10.0" + "node": ">=0.6.0" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/nodemon/node_modules/debug": { - "version": "3.2.7", - "dev": true, + "node_modules/got": { + "version": "11.8.6", "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" } }, - "node_modules/nodemon/node_modules/has-flag": { - "version": "3.0.0", + "node_modules/graceful-fs": { + "version": "4.2.10", + "license": "ISC" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", "dev": true, + "license": "MIT" + }, + "node_modules/graphql": { + "version": "16.8.1", "license": "MIT", + "peer": true, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, - "node_modules/nodemon/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/nodemon/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, + "node_modules/graphql-tag": { + "version": "2.12.6", "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "tslib": "^2.1.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/nofilter": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=12.19" + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/nopt": { - "version": "5.0.0", - "license": "ISC", + "node_modules/graphviz": { + "version": "0.0.9", + "dev": true, + "license": "GPL-3.0", "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" + "temp": "~0.4.0" }, "engines": { - "node": ">=6" + "node": ">=0.6.8" } }, - "node_modules/normalize-path": { - "version": "3.0.0", + "node_modules/growl": { + "version": "1.10.5", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=4.x" } }, - "node_modules/normalize-url": { - "version": "6.1.0", - "license": "MIT", + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/npm-run-path": { - "version": "5.1.0", + "node_modules/has": { + "version": "1.0.3", "dev": true, "license": "MIT", "dependencies": { - "path-key": "^4.0.0" + "function-bind": "^1.1.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm-run-path/node_modules/path-key": { + "node_modules/has-flag": { "version": "4.0.0", - "dev": true, "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/npmlog": { - "version": "5.0.1", - "license": "ISC", + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-hash": { - "version": "2.2.0", + "node_modules/has-symbols": { + "version": "1.0.3", "license": "MIT", "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "license": "MIT", + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/on-finished": { - "version": "2.4.1", - "license": "MIT", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, "dependencies": { - "ee-first": "1.1.1" + "has-symbols": "^1.0.3" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } + "node_modules/has-unicode": { + "version": "2.0.1", + "license": "ISC" }, - "node_modules/one-time": { - "version": "1.0.0", - "license": "MIT", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { - "fn.name": "1.x.x" + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/onetime": { - "version": "5.1.2", + "node_modules/he": { + "version": "1.2.0", "dev": true, "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "he": "bin/he" } }, - "node_modules/open": { - "version": "7.4.2", + "node_modules/hexoid": { + "version": "1.0.0", "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/optimism": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.18.0.tgz", - "integrity": "sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ==", - "dependencies": { - "@wry/caches": "^1.0.0", - "@wry/context": "^0.7.0", - "@wry/trie": "^0.4.3", - "tslib": "^2.3.0" + "node_modules/highlight.js": { + "version": "10.7.3", + "license": "BSD-3-Clause", + "engines": { + "node": "*" } }, - "node_modules/optimism/node_modules/@wry/trie": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.4.3.tgz", - "integrity": "sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w==", + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "license": "BSD-3-Clause", "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" + "react-is": "^16.7.0" } }, - "node_modules/optionator": { - "version": "0.9.3", + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", "dev": true, + "license": "MIT" + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "license": "BSD-2-Clause" + }, + "node_modules/http-errors": { + "version": "2.0.0", "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.8" } }, - "node_modules/ora": { - "version": "5.4.1", - "dev": true, + "node_modules/http-proxy-agent": { + "version": "4.0.1", "license": "MIT", + "optional": true, "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 6" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", + "node_modules/http2-wrapper": { + "version": "1.0.3", "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10.19.0" } }, - "node_modules/p-cancelable": { - "version": "2.1.1", + "node_modules/https-proxy-agent": { + "version": "5.0.1", "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/p-is-promise": { - "version": "3.0.0", + "node_modules/human-id": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/human-id/-/human-id-1.0.2.tgz", + "integrity": "sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==", + "dev": true + }, + "node_modules/human-signals": { + "version": "3.0.1", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=12.20.0" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "dev": true, + "node_modules/humanize-ms": { + "version": "1.2.1", "license": "MIT", + "optional": true, "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "ms": "^2.0.0" } }, - "node_modules/p-locate": { - "version": "5.0.0", + "node_modules/husky": { + "version": "8.0.1", "dev": true, "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" + "bin": { + "husky": "lib/bin.js" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/typicode" } }, - "node_modules/p-map": { - "version": "4.0.0", - "devOptional": true, + "node_modules/iconv-lite": { + "version": "0.4.24", "license": "MIT", "dependencies": { - "aggregate-error": "^3.0.0" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/packet-reader": { - "version": "1.0.0", - "license": "MIT" + "node_modules/ieee754": { + "version": "1.2.1", + "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": "BSD-3-Clause" }, - "node_modules/parent-module": { + "node_modules/ignore": { + "version": "5.2.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-by-default": { "version": "1.0.1", "dev": true, + "license": "ISC" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, "license": "MIT", "dependencies": { - "callsites": "^3.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse-ms": { - "version": "2.1.0", - "dev": true, + "node_modules/imurmurhash": { + "version": "0.1.4", + "devOptional": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=0.8.19" } }, - "node_modules/parse5": { - "version": "5.1.1", - "license": "MIT" - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", + "node_modules/indent-string": { + "version": "4.0.0", + "devOptional": true, "license": "MIT", - "dependencies": { - "parse5": "^6.0.1" + "engines": { + "node": ">=8" } }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "6.0.1", + "node_modules/indexes-of": { + "version": "1.0.1", + "dev": true, "license": "MIT" }, - "node_modules/parseurl": { - "version": "1.3.3", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } + "node_modules/infer-owner": { + "version": "1.0.4", + "license": "ISC", + "optional": true }, - "node_modules/patch-package": { - "version": "6.5.1", - "license": "MIT", + "node_modules/inflight": { + "version": "1.0.6", + "license": "ISC", "dependencies": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^4.1.2", - "cross-spawn": "^6.0.5", - "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^9.0.0", - "is-ci": "^2.0.0", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.6", - "open": "^7.4.2", - "rimraf": "^2.6.3", - "semver": "^5.6.0", - "slash": "^2.0.0", - "tmp": "^0.0.33", - "yaml": "^1.10.2" - }, - "bin": { - "patch-package": "index.js" - }, - "engines": { - "node": ">=10", - "npm": ">5" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/patch-package/node_modules/cross-spawn": { - "version": "6.0.5", - "license": "MIT", + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" }, "engines": { - "node": ">=4.8" + "node": ">= 0.4" } }, - "node_modules/patch-package/node_modules/glob": { - "version": "7.2.3", - "license": "ISC", + "node_modules/into-stream": { + "version": "6.0.0", + "dev": true, + "license": "MIT", "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" + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" }, "engines": { - "node": "*" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/patch-package/node_modules/path-key": { - "version": "2.0.1", + "node_modules/ip": { + "version": "2.0.0", + "license": "MIT", + "optional": true + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 0.10" } }, - "node_modules/patch-package/node_modules/rimraf": { - "version": "2.7.1", - "license": "ISC", + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, "dependencies": { - "glob": "^7.1.3" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/patch-package/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } + "node_modules/is-arrayish": { + "version": "0.3.2", + "license": "MIT" }, - "node_modules/patch-package/node_modules/shebang-command": { - "version": "1.2.0", - "license": "MIT", + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, "dependencies": { - "shebang-regex": "^1.0.0" + "has-bigints": "^1.0.1" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/patch-package/node_modules/shebang-regex": { - "version": "1.0.0", + "node_modules/is-binary-path": { + "version": "2.1.0", + "dev": true, "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/patch-package/node_modules/slash": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=6" - } + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/patch-package/node_modules/which": { - "version": "1.3.1", - "license": "ISC", + "node_modules/is-buffer": { + "version": "2.0.5", + "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", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "dev": true, + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "ci-info": "^2.0.0" }, "bin": { - "which": "bin/which" + "is-ci": "bin.js" } }, - "node_modules/patch-package/node_modules/yaml": { - "version": "1.10.2", - "license": "ISC", + "node_modules/is-core-module": { + "version": "2.10.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/path-exists": { - "version": "4.0.0", + "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-extglob": { + "version": "2.1.1", "dev": true, "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/path-key": { - "version": "3.1.1", + "node_modules/is-interactive": { + "version": "1.0.0", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "dev": true, - "license": "MIT" + "node_modules/is-lambda": { + "version": "1.0.1", + "license": "MIT", + "optional": true }, - "node_modules/path-to-regexp": { - "version": "0.1.7", + "node_modules/is-module": { + "version": "1.0.0", + "dev": true, "license": "MIT" }, - "node_modules/path-type": { - "version": "4.0.0", + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pathval": { - "version": "1.1.1", + "node_modules/is-number": { + "version": "7.0.0", "license": "MIT", "engines": { - "node": "*" + "node": ">=0.12.0" } }, - "node_modules/pg": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz", - "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==", + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.5.1", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "pg-native": ">=2.0.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pg-cloudflare": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", - "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", - "optional": true - }, - "node_modules/pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" - }, - "node_modules/pg-int8": { + "node_modules/is-obj": { "version": "1.0.1", - "license": "ISC", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", - "peerDependencies": { - "pg": ">=8.0" + "node": ">=0.10.0" } }, - "node_modules/pg-protocol": { - "version": "1.6.0", - "license": "MIT" - }, - "node_modules/pg-types": { - "version": "2.2.0", + "node_modules/is-plain-obj": { + "version": "2.1.0", + "dev": true, "license": "MIT", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/pgpass": { - "version": "1.0.5", + "node_modules/is-property": { + "version": "1.0.2", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/is-reference": { + "version": "1.2.1", + "dev": true, "license": "MIT", "dependencies": { - "split2": "^4.1.0" + "@types/estree": "*" } }, - "node_modules/picocolors": { - "version": "1.0.0", + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=8.6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pidtree": { - "version": "0.6.0", + "node_modules/is-regexp": { + "version": "1.0.0", "dev": true, "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, "engines": { - "node": ">=0.10" + "node": ">=0.10.0" } }, - "node_modules/pkg": { - "version": "5.8.1", + "node_modules/is-relative-path": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/generator": "7.18.2", - "@babel/parser": "7.18.4", - "@babel/types": "7.19.0", - "chalk": "^4.1.2", - "fs-extra": "^9.1.0", - "globby": "^11.1.0", - "into-stream": "^6.0.0", - "is-core-module": "2.9.0", - "minimist": "^1.2.6", - "multistream": "^4.1.0", - "pkg-fetch": "3.4.2", - "prebuild-install": "7.1.1", - "resolve": "^1.22.0", - "stream-meter": "^1.0.4" - }, - "bin": { - "pkg": "lib-es5/bin.js" + "call-bind": "^1.0.7" }, - "peerDependencies": { - "node-notifier": ">=9.0.1" + "engines": { + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pkg-fetch": { - "version": "3.4.2", + "node_modules/is-stream": { + "version": "3.0.0", "dev": true, "license": "MIT", - "dependencies": { - "chalk": "^4.1.2", - "fs-extra": "^9.1.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.6", - "progress": "^2.0.3", - "semver": "^7.3.5", - "tar-fs": "^2.1.1", - "yargs": "^16.2.0" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "bin": { - "pkg-fetch": "lib-es5/bin.js" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg/node_modules/@babel/parser": { - "version": "7.18.4", + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" + "dependencies": { + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/pkg/node_modules/is-core-module": { - "version": "2.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pluralize": { - "version": "8.0.0", + "node_modules/is-subdir": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", + "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", "dev": true, - "license": "MIT", + "dependencies": { + "better-path-resolve": "1.0.0" + }, "engines": { "node": ">=4" } }, - "node_modules/postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "has-symbols": "^1.0.2" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss-values-parser": { - "version": "5.0.0", + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, - "license": "MPL-2.0", "dependencies": { - "color-name": "^1.1.4", - "is-url-superb": "^4.0.0", - "quote-unquote": "^1.0.0" + "which-typed-array": "^1.1.14" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, - "peerDependencies": { - "postcss": "^8.0.9" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "node_modules/is-unicode-supported": { + "version": "0.1.0", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/postgres-array": { - "version": "2.0.0", "license": "MIT", "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "node_modules/is-url": { + "version": "1.2.4", + "dev": true, + "license": "MIT" }, - "node_modules/postgres-date": { - "version": "1.0.7", + "node_modules/is-url-superb": { + "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "license": "MIT", + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, "dependencies": { - "xtend": "^4.0.0" + "call-bind": "^1.0.2" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/prebuild-install": { - "version": "7.1.1", - "dev": true, + "node_modules/is-wsl": { + "version": "2.2.0", "license": "MIT", "dependencies": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" + "is-docker": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/precinct": { - "version": "8.3.1", + "node_modules/isarray": { + "version": "0.0.1", "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/isomorphic-ws": { + "version": "4.0.1", "license": "MIT", - "dependencies": { - "commander": "^2.20.3", - "debug": "^4.3.3", - "detective-amd": "^3.1.0", - "detective-cjs": "^3.1.1", - "detective-es6": "^2.2.1", - "detective-less": "^1.0.2", - "detective-postcss": "^4.0.0", - "detective-sass": "^3.0.1", - "detective-scss": "^2.0.1", - "detective-stylus": "^1.0.0", - "detective-typescript": "^7.0.0", - "module-definition": "^3.3.1", - "node-source-walk": "^4.2.0" - }, - "bin": { - "precinct": "bin/cli.js" - }, - "engines": { - "node": "^10.13 || ^12 || >=14" + "peerDependencies": { + "ws": "*" } }, - "node_modules/precinct/node_modules/commander": { - "version": "2.20.3", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } }, - "node_modules/precinct/node_modules/detective-postcss": { - "version": "4.0.0", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", "dev": true, - "license": "Apache-2.0", + "license": "BSD-3-Clause", "dependencies": { - "debug": "^4.1.1", - "is-url": "^1.2.4", - "postcss": "^8.1.7", - "postcss-values-parser": "^2.0.1" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=10" } }, - "node_modules/precinct/node_modules/postcss-values-parser": { - "version": "2.0.1", + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "semver": "^7.5.3" }, "engines": { - "node": ">=6.14.4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.7.1", + "node_modules/istanbul-reports": { + "version": "3.1.6", "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "node": ">=8" } }, - "node_modules/pretty-ms": { - "version": "7.0.1", - "dev": true, - "license": "MIT", + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dependencies": { - "parse-ms": "^2.1.0" + "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", + "node_modules/js-sdsl": { + "version": "4.1.4", "dev": true, "license": "MIT" }, - "node_modules/progress": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "license": "ISC", - "optional": true + "node_modules/js-tokens": { + "version": "4.0.0", + "license": "MIT" }, - "node_modules/promise-retry": { - "version": "2.0.1", + "node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" + "argparse": "^2.0.1" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/protobufjs": { - "version": "7.2.5", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" + "node_modules/jsesc": { + "version": "2.5.2", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": ">=12.0.0" + "node": ">=4" } }, - "node_modules/protobufjs/node_modules/long": { - "version": "5.2.3", - "license": "Apache-2.0" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", + "node_modules/json-bigint": { + "version": "1.0.0", "license": "MIT", "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" + "bignumber.js": "^9.0.0" } }, - "node_modules/proxy-from-env": { - "version": "1.1.0", + "node_modules/json-buffer": { + "version": "3.0.1", "license": "MIT" }, - "node_modules/pstree.remy": { - "version": "1.1.8", + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", "dev": true, "license": "MIT" }, - "node_modules/pump": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" }, - "node_modules/punycode": { - "version": "2.1.1", + "node_modules/json5": { + "version": "2.2.3", "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.10.3", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" + "bin": { + "json5": "lib/cli.js" }, "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "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/quick-lru": { - "version": "5.1.1", + "node_modules/jsonfile": { + "version": "6.1.0", "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "universalify": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/quote-unquote": { - "version": "1.0.0", + "node_modules/just-extend": { + "version": "4.2.1", "dev": true, "license": "MIT" }, - "node_modules/randombytes": { - "version": "2.1.0", - "dev": true, + "node_modules/keyv": { + "version": "4.5.4", "license": "MIT", "dependencies": { - "safe-buffer": "^5.1.0" + "json-buffer": "3.0.1" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "license": "MIT", + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/rc": { - "version": "1.2.8", - "dev": true, - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "node_modules/klaw-sync": { + "version": "6.0.0", + "license": "MIT", "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" + "graceful-fs": "^4.1.11" } }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "node_modules/kuler": { + "version": "2.0.0", + "license": "MIT" }, - "node_modules/readable-stream": { - "version": "3.6.0", + "node_modules/levn": { + "version": "0.4.1", + "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">= 6" + "node": ">= 0.8.0" } }, - "node_modules/readdirp": { - "version": "3.6.0", + "node_modules/lilconfig": { + "version": "2.0.5", "dev": true, "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, "engines": { - "node": ">=8.10.0" + "node": ">=10" } }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "license": "Apache-2.0" - }, - "node_modules/regexpp": { - "version": "3.2.0", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/lint-staged": { + "version": "13.0.3", "dev": true, "license": "MIT", + "dependencies": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.17", + "commander": "^9.3.0", + "debug": "^4.3.4", + "execa": "^6.1.0", + "lilconfig": "2.0.5", + "listr2": "^4.0.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.2", + "pidtree": "^0.6.0", + "string-argv": "^0.3.1", + "yaml": "^2.1.1" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, "engines": { - "node": ">=8" + "node": "^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "url": "https://opencollective.com/lint-staged" } }, - "node_modules/requirejs": { - "version": "2.3.6", + "node_modules/lint-staged/node_modules/commander": { + "version": "9.4.0", "dev": true, "license": "MIT", - "bin": { - "r_js": "bin/r.js", - "r.js": "bin/r.js" - }, "engines": { - "node": ">=0.4.0" + "node": "^12.20.0 || >=14" } }, - "node_modules/requirejs-config-file": { - "version": "4.0.0", + "node_modules/listr2": { + "version": "4.0.5", "dev": true, "license": "MIT", "dependencies": { - "esprima": "^4.0.0", - "stringify-object": "^3.2.1" + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.5", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=12" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } } }, - "node_modules/resolve": { - "version": "1.22.1", + "node_modules/listr2/node_modules/cli-truncate": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" }, - "bin": { - "resolve": "bin/resolve" + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "license": "MIT" - }, - "node_modules/resolve-dependency-path": { - "version": "2.0.0", + "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": ">=6.0.0" + "node": ">=8" } }, - "node_modules/resolve-from": { - "version": "4.0.0", + "node_modules/load-yaml-file": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", + "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", "dev": true, - "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.5", + "js-yaml": "^3.13.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0" + }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/response-iterator": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", - "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==", - "engines": { - "node": ">=0.8" + "node_modules/load-yaml-file/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" } }, - "node_modules/responselike": { - "version": "2.0.1", - "license": "MIT", + "node_modules/load-yaml-file/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, "dependencies": { - "lowercase-keys": "^2.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", + "node_modules/locate-path": { + "version": "6.0.0", "dev": true, "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/retry": { - "version": "0.12.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 4" - } + "node_modules/lodash": { + "version": "4.17.21", + "license": "MIT" }, - "node_modules/reusify": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } + "node_modules/lodash-es": { + "version": "4.17.21", + "license": "MIT" }, - "node_modules/rfdc": { - "version": "1.3.0", + "node_modules/lodash.get": { + "version": "4.4.2", "dev": true, "license": "MIT" }, - "node_modules/rimraf": { - "version": "3.0.2", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "license": "ISC", + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "dev": true, + "license": "MIT", "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" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": "*" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/rollup": { - "version": "3.29.2", + "node_modules/log-update": { + "version": "4.0.0", "dev": true, "license": "MIT", - "bin": { - "rollup": "dist/bin/rollup" + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" + "node": ">=10" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/rollup-plugin-natives": { - "version": "0.7.6", + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "fs-extra": "^10.1.0", - "magic-string": "^0.25.9" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, - "peerDependencies": { - "rollup": ">=0.56.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/rollup-plugin-natives/node_modules/fs-extra": { - "version": "10.1.0", + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/rollup-plugin-natives/node_modules/magic-string": { - "version": "0.25.9", - "dev": true, - "license": "MIT", + "node_modules/logform": { + "version": "2.5.1", + "license": "MIT", "dependencies": { - "sourcemap-codec": "^1.4.8" + "@colors/colors": "1.5.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" } }, - "node_modules/rollup-plugin-node-externals": { - "version": "6.0.1", - "dev": true, + "node_modules/long": { + "version": "4.0.0", + "license": "Apache-2.0", + "optional": true, + "peer": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", "license": "MIT", - "engines": { - "node": ">=16.0.0" + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" }, - "peerDependencies": { - "rollup": "^3.0.0" + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/run-parallel": { - "version": "1.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" - } - ], + "node_modules/loupe": { + "version": "2.3.7", "license": "MIT", "dependencies": { - "queue-microtask": "^1.2.2" + "get-func-name": "^2.0.1" } }, - "node_modules/rxjs": { - "version": "7.5.7", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" + "node_modules/lowercase-keys": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "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/safe-stable-stringify": { - "version": "2.4.0", - "license": "MIT", + "node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { "node": ">=10" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/sass-lookup": { - "version": "3.0.0", + "node_modules/madge": { + "version": "5.0.1", "dev": true, "license": "MIT", "dependencies": { - "commander": "^2.16.0" + "chalk": "^4.1.1", + "commander": "^7.2.0", + "commondir": "^1.0.1", + "debug": "^4.3.1", + "dependency-tree": "^8.1.1", + "detective-amd": "^3.1.0", + "detective-cjs": "^3.1.1", + "detective-es6": "^2.2.0", + "detective-less": "^1.0.2", + "detective-postcss": "^5.0.0", + "detective-sass": "^3.0.1", + "detective-scss": "^2.0.1", + "detective-stylus": "^1.0.0", + "detective-typescript": "^7.0.0", + "graphviz": "0.0.9", + "ora": "^5.4.1", + "pluralize": "^8.0.0", + "precinct": "^8.1.0", + "pretty-ms": "^7.0.1", + "rc": "^1.2.7", + "typescript": "^3.9.5", + "walkdir": "^0.4.1" }, "bin": { - "sass-lookup": "bin/cli.js" + "madge": "bin/cli.js" }, "engines": { - "node": ">=6.0.0" + "node": "^10.13 || ^12 || >=14" + }, + "funding": { + "type": "individual", + "url": "https://www.paypal.me/pahen" } }, - "node_modules/sass-lookup/node_modules/commander": { - "version": "2.20.3", + "node_modules/madge/node_modules/typescript": { + "version": "3.9.10", "dev": true, - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.5.4", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "Apache-2.0", "bin": { - "semver": "bin/semver.js" + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=10" + "node": ">=4.2.0" } }, - "node_modules/send": { - "version": "0.18.0", + "node_modules/magic-string": { + "version": "0.27.0", + "dev": true, "license": "MIT", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "@jridgewell/sourcemap-codec": "^1.4.13" }, "engines": { - "node": ">= 0.8.0" + "node": ">=12" } }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", + "node_modules/make-dir": { + "version": "3.1.0", "license": "MIT", "dependencies": { - "ms": "2.0.0" + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "license": "MIT" + "node_modules/make-error": { + "version": "1.3.6", + "devOptional": true, + "license": "ISC" }, - "node_modules/seq-queue": { - "version": "0.0.5", + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "license": "ISC", "optional": true, - "peer": true + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } }, - "node_modules/serialize-javascript": { - "version": "6.0.0", + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/serve-static": { - "version": "1.15.0", + "node_modules/media-typer": { + "version": "0.3.0", "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/meow": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", + "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", + "dev": true, "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "^4.0.2", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "license": "ISC" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" + "node_modules/meow/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" } }, - "node_modules/shebang-command": { - "version": "2.0.0", + "node_modules/meow/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", + "node_modules/meow/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/side-channel": { - "version": "1.0.4", - "license": "MIT", + "node_modules/meow/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=6" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "license": "ISC" - }, - "node_modules/simple-concat": { + "node_modules/merge-descriptors": { "version": "1.0.1", + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.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/simple-get": { - "version": "4.0.1", + "node_modules/merge2": { + "version": "1.4.1", "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", - "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "engines": { + "node": ">= 8" } }, - "node_modules/simple-swizzle": { - "version": "0.2.2", + "node_modules/methods": { + "version": "1.1.2", "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" + "engines": { + "node": ">= 0.6" } }, - "node_modules/simple-update-notifier": { - "version": "1.1.0", - "dev": true, + "node_modules/micromatch": { + "version": "4.0.5", "license": "MIT", "dependencies": { - "semver": "~7.0.0" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=8.10.0" + "node": ">=8.6" } }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "dev": true, - "license": "ISC", + "node_modules/mime": { + "version": "1.6.0", + "license": "MIT", "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/sinon": { - "version": "14.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^9.1.2", - "@sinonjs/samsam": "^6.1.1", - "diff": "^5.0.0", - "nise": "^5.1.1", - "supports-color": "^7.2.0" + "mime": "cli.js" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" + "engines": { + "node": ">=4" } }, - "node_modules/slash": { - "version": "3.0.0", - "dev": true, + "node_modules/mime-db": { + "version": "1.52.0", "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/sleep-promise": { - "version": "9.1.0", - "license": "MIT" - }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "dev": true, + "node_modules/mime-types": { + "version": "2.1.35", "license": "MIT", "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "mime-db": "1.52.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">= 0.6" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.1.1", + "node_modules/mimic-fn": { + "version": "2.1.0", "dev": true, "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=6" } }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "dev": true, + "node_modules/mimic-response": { + "version": "3.1.0", "license": "MIT", "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/snappy": { - "version": "7.2.2", - "license": "MIT", - "optional": true, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, "engines": { - "node": ">= 10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "optionalDependencies": { - "@napi-rs/snappy-android-arm-eabi": "7.2.2", - "@napi-rs/snappy-android-arm64": "7.2.2", - "@napi-rs/snappy-darwin-arm64": "7.2.2", - "@napi-rs/snappy-darwin-x64": "7.2.2", - "@napi-rs/snappy-freebsd-x64": "7.2.2", - "@napi-rs/snappy-linux-arm-gnueabihf": "7.2.2", - "@napi-rs/snappy-linux-arm64-gnu": "7.2.2", - "@napi-rs/snappy-linux-arm64-musl": "7.2.2", - "@napi-rs/snappy-linux-x64-gnu": "7.2.2", - "@napi-rs/snappy-linux-x64-musl": "7.2.2", - "@napi-rs/snappy-win32-arm64-msvc": "7.2.2", - "@napi-rs/snappy-win32-ia32-msvc": "7.2.2", - "@napi-rs/snappy-win32-x64-msvc": "7.2.2" + "node": ">=4" } }, - "node_modules/socks": { - "version": "2.7.0", - "license": "MIT", - "optional": true, + "node_modules/minimatch": { + "version": "3.1.2", + "license": "ISC", "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" + "node": "*" } }, - "node_modules/socks-proxy-agent": { - "version": "6.2.1", - "license": "MIT", - "optional": true, + "node_modules/minimist": { + "version": "1.2.6", + "license": "MIT" + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" }, "engines": { - "node": ">= 10" + "node": ">= 6" } }, - "node_modules/source-map": { - "version": "0.6.1", + "node_modules/minimist-options/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, - "license": "BSD-3-Clause", - "optional": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/source-map-js": { - "version": "1.0.2", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/minipass": { + "version": "3.3.4", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "dev": true, - "license": "MIT" - }, - "node_modules/split2": { - "version": "4.1.0", + "node_modules/minipass-collect": { + "version": "1.0.2", "license": "ISC", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/sqlite3": { - "version": "5.1.6", - "hasInstallScript": true, - "license": "BSD-3-Clause", + "optional": true, "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^4.2.0", - "tar": "^6.1.11" - }, - "optionalDependencies": { - "node-gyp": "8.x" - }, - "peerDependencies": { - "node-gyp": "8.x" + "minipass": "^3.0.0" }, - "peerDependenciesMeta": { - "node-gyp": { - "optional": true - } + "engines": { + "node": ">= 8" } }, - "node_modules/sqlstring": { - "version": "2.3.3", + "node_modules/minipass-fetch": { + "version": "1.4.1", "license": "MIT", "optional": true, - "peer": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" } }, - "node_modules/ssri": { - "version": "8.0.1", + "node_modules/minipass-flush": { + "version": "1.0.5", "license": "ISC", "optional": true, "dependencies": { - "minipass": "^3.1.1" + "minipass": "^3.0.0" }, "engines": { "node": ">= 8" } }, - "node_modules/stack-trace": { - "version": "0.0.10", - "license": "MIT", + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/statuses": { - "version": "2.0.1", - "license": "MIT", + "node_modules/minipass-sized": { + "version": "1.0.3", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/stream-meter": { - "version": "1.0.4", - "dev": true, + "node_modules/minizlib": { + "version": "2.1.2", "license": "MIT", "dependencies": { - "readable-stream": "^2.1.4" + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/stream-meter/node_modules/isarray": { - "version": "1.0.0", + "node_modules/mixme": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.10.tgz", + "integrity": "sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==", "dev": true, - "license": "MIT" + "engines": { + "node": ">= 8.0.0" + } }, - "node_modules/stream-meter/node_modules/readable-stream": { - "version": "2.3.8", - "dev": true, + "node_modules/mkdirp": { + "version": "1.0.4", "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/stream-meter/node_modules/safe-buffer": { - "version": "5.1.2", + "node_modules/mkdirp-classic": { + "version": "0.5.3", "dev": true, "license": "MIT" }, - "node_modules/stream-meter/node_modules/string_decoder": { - "version": "1.1.1", + "node_modules/mocha": { + "version": "9.2.2", "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.3", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "4.2.1", + "ms": "2.1.3", + "nanoid": "3.3.1", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "workerpool": "6.2.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" } }, - "node_modules/string_decoder": { - "version": "1.3.0", + "node_modules/mocha/node_modules/debug": { + "version": "4.3.3", + "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/string-argv": { - "version": "0.3.1", + "node_modules/mocha/node_modules/debug/node_modules/ms": { + "version": "2.1.2", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.19" - } + "license": "MIT" }, - "node_modules/string-width": { - "version": "4.2.3", - "license": "MIT", + "node_modules/mocha/node_modules/glob": { + "version": "7.2.0", + "dev": true, + "license": "ISC", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=8" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/stringify-object": { - "version": "3.3.0", + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", "dev": true, - "license": "BSD-2-Clause", + "license": "ISC", "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=4" + "node": "*" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "license": "MIT", + "node_modules/mocha/node_modules/minimatch": { + "version": "4.2.1", + "dev": true, + "license": "ISC", "dependencies": { - "ansi-regex": "^5.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" }, - "node_modules/strip-final-newline": { - "version": "3.0.0", + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", "dev": true, "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", + "node_modules/mocha/node_modules/yargs-parser": { + "version": "20.2.4", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "node_modules/stylus-lookup": { - "version": "3.0.2", + "node_modules/module-definition": { + "version": "3.4.0", "dev": true, "license": "MIT", "dependencies": { - "commander": "^2.8.1", - "debug": "^4.1.0" + "ast-module-types": "^3.0.0", + "node-source-walk": "^4.0.0" }, "bin": { - "stylus-lookup": "bin/cli.js" + "module-definition": "bin/cli.js" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.0" } }, - "node_modules/stylus-lookup/node_modules/commander": { - "version": "2.20.3", + "node_modules/module-lookup-amd": { + "version": "7.0.1", "dev": true, - "license": "MIT" - }, - "node_modules/superagent": { - "version": "8.0.2", "license": "MIT", "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.3", - "debug": "^4.3.4", - "fast-safe-stringify": "^2.1.1", - "form-data": "^4.0.0", - "formidable": "^2.0.1", - "methods": "^1.1.2", - "mime": "2.6.0", - "qs": "^6.11.0", - "semver": "^7.3.7" + "commander": "^2.8.1", + "debug": "^4.1.0", + "glob": "^7.1.6", + "requirejs": "^2.3.5", + "requirejs-config-file": "^4.0.0" }, - "engines": { - "node": ">=6.4.0 <13 || >=14" - } - }, - "node_modules/superagent/node_modules/mime": { - "version": "2.6.0", - "license": "MIT", "bin": { - "mime": "cli.js" + "lookup-amd": "bin/cli.js" }, "engines": { - "node": ">=4.0.0" + "node": ">=10.13.0" } }, - "node_modules/superagent/node_modules/qs": { - "version": "6.11.0", - "license": "BSD-3-Clause", + "node_modules/module-lookup-amd/node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "node_modules/module-lookup-amd/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", "dependencies": { - "side-channel": "^1.0.4" + "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": ">=0.6" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/supertest": { - "version": "6.3.0", + "node_modules/moment": { + "version": "2.29.4", "license": "MIT", - "dependencies": { - "methods": "^1.1.2", - "superagent": "^8.0.0" - }, "engines": { - "node": ">=6.4.0" + "node": "*" } }, - "node_modules/supports-color": { - "version": "7.2.0", + "node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/multistream": { + "version": "4.1.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", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "once": "^1.4.0", + "readable-stream": "^3.6.0" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "dev": true, + "node_modules/mysql2": { + "version": "2.3.3", "license": "MIT", - "engines": { - "node": ">= 0.4" + "optional": true, + "peer": true, + "dependencies": { + "denque": "^2.0.1", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^4.0.0", + "lru-cache": "^6.0.0", + "named-placeholders": "^1.1.2", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", "engines": { - "node": ">=0.10" + "node": ">= 8.0" } }, - "node_modules/tapable": { - "version": "2.2.1", - "dev": true, + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.1.11", - "license": "ISC", + "optional": true, + "peer": true, "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">= 10" + "node": ">=0.10.0" } }, - "node_modules/tar-fs": { - "version": "2.1.1", - "dev": true, + "node_modules/mz": { + "version": "2.7.0", "license": "MIT", "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" } }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "dev": true, - "license": "ISC" - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "dev": true, + "node_modules/named-placeholders": { + "version": "1.1.3", "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" + "lru-cache": "^7.14.1" }, "engines": { - "node": ">=6" + "node": ">=12.0.0" } }, - "node_modules/temp": { - "version": "0.4.0", - "dev": true, - "engines": [ - "node >=0.4.0" - ] - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "dev": true, + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "7.18.3", "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, + "optional": true, + "peer": true, "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/test-exclude/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" + "node_modules/nanoassert": { + "version": "1.1.0", + "license": "ISC" + }, + "node_modules/nanoid": { + "version": "3.3.1", + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/text-hex": { - "version": "1.0.0", + "node_modules/napi-build-utils": { + "version": "1.0.2", + "dev": true, "license": "MIT" }, - "node_modules/text-table": { - "version": "0.2.0", + "node_modules/natural-compare": { + "version": "1.4.0", "dev": true, "license": "MIT" }, - "node_modules/thenify": { - "version": "3.3.1", + "node_modules/negotiator": { + "version": "0.6.3", "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" + "engines": { + "node": ">= 0.6" } }, - "node_modules/thenify-all": { - "version": "1.6.0", - "license": "MIT", + "node_modules/nice-try": { + "version": "1.0.5", + "license": "MIT" + }, + "node_modules/nise": { + "version": "5.1.1", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": ">=5", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" } }, - "node_modules/through": { - "version": "2.3.8", + "node_modules/nise/node_modules/path-to-regexp": { + "version": "1.8.0", "dev": true, - "license": "MIT" - }, - "node_modules/tmp": { - "version": "0.0.33", "license": "MIT", "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" + "isarray": "0.0.1" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", + "node_modules/node-abi": { + "version": "3.40.0", "dev": true, "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", + "node_modules/node-addon-api": { + "version": "4.3.0", + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.6.7", "license": "MIT", "dependencies": { - "is-number": "^7.0.0" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=8.0" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/toidentifier": { - "version": "1.0.1", + "node_modules/node-gyp": { + "version": "8.4.1", "license": "MIT", + "optional": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, "engines": { - "node": ">=0.6" + "node": ">= 10.12.0" } }, - "node_modules/touch": { - "version": "3.1.0", - "dev": true, + "node_modules/node-gyp/node_modules/are-we-there-yet": { + "version": "3.0.1", "license": "ISC", + "optional": true, "dependencies": { - "nopt": "~1.0.10" + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" }, - "bin": { - "nodetouch": "bin/nodetouch.js" + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/touch/node_modules/nopt": { - "version": "1.0.10", - "dev": true, - "license": "MIT", + "node_modules/node-gyp/node_modules/gauge": { + "version": "4.0.4", + "license": "ISC", + "optional": true, "dependencies": { - "abbrev": "1" + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" }, - "bin": { - "nopt": "bin/nopt.js" + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "node_modules/triple-beam": { - "version": "1.3.0", - "license": "MIT" - }, - "node_modules/ts-custom-error": { - "version": "3.3.1", - "license": "MIT", + "node_modules/node-gyp/node_modules/glob": { + "version": "7.2.3", + "license": "ISC", + "optional": true, + "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": ">=14.0.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ts-invariant": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", - "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", + "node_modules/node-gyp/node_modules/npmlog": { + "version": "6.0.2", + "license": "ISC", + "optional": true, "dependencies": { - "tslib": "^2.1.0" + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/ts-mockito": { - "version": "2.6.1", + "node_modules/node-source-walk": { + "version": "4.3.0", "dev": true, "license": "MIT", "dependencies": { - "lodash": "^4.17.5" + "@babel/parser": "^7.0.0" + }, + "engines": { + "node": ">=6.0" } }, - "node_modules/ts-node": { - "version": "10.9.1", - "devOptional": true, + "node_modules/nodemon": { + "version": "2.0.22", + "dev": true, "license": "MIT", "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" }, "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "nodemon": "bin/nodemon.js" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "devOptional": true, - "license": "BSD-3-Clause", "engines": { - "node": ">=0.3.1" + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" } }, - "node_modules/tsconfig-paths": { - "version": "4.1.0", + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "dev": true, "license": "MIT", "dependencies": { - "json5": "^2.2.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" + "ms": "^2.1.1" } }, - "node_modules/tslib": { - "version": "2.5.0", - "license": "0BSD" - }, - "node_modules/tsutils": { - "version": "3.21.0", + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", "dev": true, "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "node": ">=4" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", + "node_modules/nodemon/node_modules/semver": { + "version": "5.7.1", "dev": true, - "license": "0BSD" + "license": "ISC", + "bin": { + "semver": "bin/semver" + } }, - "node_modules/tunnel-agent": { - "version": "0.6.0", + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "safe-buffer": "^5.0.1" + "has-flag": "^3.0.0" }, "engines": { - "node": "*" + "node": ">=4" } }, - "node_modules/type-check": { - "version": "0.4.0", - "dev": true, - "license": "MIT", + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "engines": { + "node": ">=12.19" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "license": "ISC", "dependencies": { - "prelude-ls": "^1.2.1" + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" }, "engines": { - "node": ">= 0.8.0" + "node": ">=6" } }, - "node_modules/type-detect": { - "version": "4.0.8", + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "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/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "dev": true, - "license": "(MIT OR CC0-1.0)", + "node_modules/normalize-url": { + "version": "6.1.0", + "license": "MIT", "engines": { "node": ">=10" }, @@ -8345,867 +8724,5074 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/type-is": { - "version": "1.6.18", + "node_modules/npm-run-path": { + "version": "5.1.0", + "dev": true, "license": "MIT", "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "path-key": "^4.0.0" }, "engines": { - "node": ">= 0.6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typeorm": { - "version": "0.3.17", + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "@sqltools/formatter": "^1.2.5", - "app-root-path": "^3.1.0", - "buffer": "^6.0.3", - "chalk": "^4.1.2", - "cli-highlight": "^2.1.11", - "date-fns": "^2.29.3", - "debug": "^4.3.4", - "dotenv": "^16.0.3", - "glob": "^8.1.0", - "mkdirp": "^2.1.3", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.5.0", - "uuid": "^9.0.0", - "yargs": "^17.6.2" - }, - "bin": { - "typeorm": "cli.js", - "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", - "typeorm-ts-node-esm": "cli-ts-node-esm.js" - }, "engines": { - "node": ">= 12.9.0" + "node": ">=12" }, "funding": { - "url": "https://opencollective.com/typeorm" - }, - "peerDependencies": { - "@google-cloud/spanner": "^5.18.0", - "@sap/hana-client": "^2.12.25", - "better-sqlite3": "^7.1.2 || ^8.0.0", - "hdb-pool": "^0.1.6", - "ioredis": "^5.0.4", - "mongodb": "^5.2.0", - "mssql": "^9.1.1", - "mysql2": "^2.2.5 || ^3.0.1", - "oracledb": "^5.1.0", - "pg": "^8.5.1", - "pg-native": "^3.0.0", - "pg-query-stream": "^4.0.0", - "redis": "^3.1.1 || ^4.0.0", - "sql.js": "^1.4.0", - "sqlite3": "^5.0.3", - "ts-node": "^10.7.0", - "typeorm-aurora-data-api-driver": "^2.0.0" - }, - "peerDependenciesMeta": { - "@google-cloud/spanner": { - "optional": true - }, - "@sap/hana-client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "hdb-pool": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "pg-query-stream": { - "optional": true - }, - "redis": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "ts-node": { - "optional": true - }, - "typeorm-aurora-data-api-driver": { - "optional": true - } + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typeorm/node_modules/buffer": { - "version": "6.0.3", - "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/npmlog": { + "version": "5.0.1", + "license": "ISC", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" } }, - "node_modules/typeorm/node_modules/cliui": { - "version": "8.0.1", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, + "node_modules/object-assign": { + "version": "4.1.1", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/typeorm/node_modules/mkdirp": { - "version": "2.1.6", + "node_modules/object-hash": { + "version": "2.2.0", "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typeorm/node_modules/yargs": { - "version": "17.7.2", + "node_modules/on-finished": { + "version": "2.4.1", "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" + "ee-first": "1.1.1" }, "engines": { - "node": ">=12" + "node": ">= 0.8" } }, - "node_modules/typeorm/node_modules/yargs-parser": { - "version": "21.1.1", + "node_modules/once": { + "version": "1.4.0", "license": "ISC", - "engines": { - "node": ">=12" + "dependencies": { + "wrappy": "1" } }, - "node_modules/typescript": { - "version": "4.8.3", - "devOptional": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" + "node_modules/one-time": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" } }, - "node_modules/undefsafe": { - "version": "2.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/uniq": { - "version": "1.0.1", + "node_modules/onetime": { + "version": "5.1.2", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/unique-filename": { - "version": "1.1.1", - "license": "ISC", - "optional": true, + "node_modules/open": { + "version": "7.4.2", + "license": "MIT", "dependencies": { - "unique-slug": "^2.0.0" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/unique-slug": { - "version": "2.0.2", - "license": "ISC", - "optional": true, + "node_modules/optimism": { + "version": "0.18.0", + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4" + "@wry/caches": "^1.0.0", + "@wry/context": "^0.7.0", + "@wry/trie": "^0.4.3", + "tslib": "^2.3.0" } }, - "node_modules/universalify": { - "version": "2.0.0", + "node_modules/optimism/node_modules/@wry/trie": { + "version": "0.4.3", "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, "engines": { - "node": ">= 10.0.0" + "node": ">=8" } }, - "node_modules/unpipe": { - "version": "1.0.0", + "node_modules/optionator": { + "version": "0.9.3", + "dev": true, "license": "MIT", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, "engines": { - "node": ">= 0.8" + "node": ">= 0.8.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", + "node_modules/ora": { + "version": "5.4.1", + "dev": true, + "license": "MIT", "dependencies": { - "punycode": "^2.1.0" + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/url-polyfill": { - "version": "1.1.12", - "license": "MIT" - }, - "node_modules/util-deprecate": { + "node_modules/os-tmpdir": { "version": "1.0.2", - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", "license": "MIT", "engines": { - "node": ">= 0.4.0" + "node": ">=0.10.0" } }, - "node_modules/uuid": { - "version": "9.0.0", + "node_modules/outdent": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz", + "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==", + "dev": true + }, + "node_modules/p-cancelable": { + "version": "2.1.1", "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "engines": { + "node": ">=8" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "devOptional": true, - "license": "MIT" - }, - "node_modules/v8-to-istanbul": { - "version": "9.0.1", + "node_modules/p-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", "dev": true, - "license": "ISC", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "p-map": "^2.0.0" }, "engines": { - "node": ">=10.12.0" + "node": ">=8" } }, - "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.15", + "node_modules/p-filter/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/validator": { - "version": "13.7.0", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=6" } }, - "node_modules/walkdir": { - "version": "0.4.1", + "node_modules/p-is-promise": { + "version": "3.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/wcwidth": { - "version": "1.0.1", + "node_modules/p-limit": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "defaults": "^1.0.3" + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-url": { + "node_modules/p-locate": { "version": "5.0.0", + "dev": true, "license": "MIT", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/which": { - "version": "2.0.2", + "node_modules/p-map": { + "version": "4.0.0", "devOptional": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "aggregate-error": "^3.0.0" }, "engines": { - "node": ">= 8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/wide-align": { - "version": "1.1.5", - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" } }, - "node_modules/winston": { - "version": "3.11.0", + "node_modules/packet-reader": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, "license": "MIT", "dependencies": { - "@colors/colors": "^1.6.0", - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.4.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" + "callsites": "^3.0.0" }, "engines": { - "node": ">= 12.0.0" + "node": ">=6" } }, - "node_modules/winston-daily-rotate-file": { - "version": "4.7.1", - "license": "MIT", + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, "dependencies": { - "file-stream-rotator": "^0.6.1", - "object-hash": "^2.0.1", - "triple-beam": "^1.3.0", - "winston-transport": "^4.4.0" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { "node": ">=8" }, - "peerDependencies": { - "winston": "^3" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/winston-loki": { - "version": "6.0.8", + "node_modules/parse-ms": { + "version": "2.1.0", + "dev": true, "license": "MIT", - "dependencies": { - "async-exit-hook": "2.0.1", - "btoa": "^1.2.1", - "protobufjs": "^7.2.4", - "url-polyfill": "^1.1.12", - "winston-transport": "^4.3.0" - }, - "optionalDependencies": { - "snappy": "^7.2.2" + "engines": { + "node": ">=6" } }, - "node_modules/winston-transport": { - "version": "4.5.0", + "node_modules/parse5": { + "version": "5.1.1", + "license": "MIT" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", "license": "MIT", "dependencies": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 6.4.0" + "parse5": "^6.0.1" } }, - "node_modules/winston/node_modules/@colors/colors": { - "version": "1.6.0", + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "license": "MIT" + }, + "node_modules/parseurl": { + "version": "1.3.3", "license": "MIT", "engines": { - "node": ">=0.1.90" + "node": ">= 0.8" } }, - "node_modules/winston/node_modules/is-stream": { - "version": "2.0.1", + "node_modules/patch-package": { + "version": "6.5.1", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@yarnpkg/lockfile": "^1.1.0", + "chalk": "^4.1.2", + "cross-spawn": "^6.0.5", + "find-yarn-workspace-root": "^2.0.0", + "fs-extra": "^9.0.0", + "is-ci": "^2.0.0", + "klaw-sync": "^6.0.0", + "minimist": "^1.2.6", + "open": "^7.4.2", + "rimraf": "^2.6.3", + "semver": "^5.6.0", + "slash": "^2.0.0", + "tmp": "^0.0.33", + "yaml": "^1.10.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "patch-package": "index.js" + }, + "engines": { + "node": ">=10", + "npm": ">5" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "dev": true, + "node_modules/patch-package/node_modules/cross-spawn": { + "version": "6.0.5", "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4.8" } }, - "node_modules/workerpool": { - "version": "6.2.0", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "license": "MIT", + "node_modules/patch-package/node_modules/glob": { + "version": "7.2.3", + "license": "ISC", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "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": ">=10" + "node": "*" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" - }, - "node_modules/ws": { - "version": "7.5.9", + "node_modules/patch-package/node_modules/path-key": { + "version": "2.0.1", "license": "MIT", "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "node": ">=4" + } + }, + "node_modules/patch-package/node_modules/rimraf": { + "version": "2.7.1", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "bin": { + "rimraf": "bin.js" } }, - "node_modules/xtend": { - "version": "4.0.2", + "node_modules/patch-package/node_modules/semver": { + "version": "5.7.1", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/patch-package/node_modules/shebang-command": { + "version": "1.2.0", "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, "engines": { - "node": ">=0.4" + "node": ">=0.10.0" } }, - "node_modules/y18n": { - "version": "5.0.8", - "license": "ISC", + "node_modules/patch-package/node_modules/shebang-regex": { + "version": "1.0.0", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.3.1", - "license": "ISC", + "node_modules/patch-package/node_modules/slash": { + "version": "2.0.0", + "license": "MIT", "engines": { - "node": ">= 14" + "node": ">=6" } }, - "node_modules/yargs": { - "version": "16.2.0", - "license": "MIT", + "node_modules/patch-package/node_modules/which": { + "version": "1.3.1", + "license": "ISC", "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "isexe": "^2.0.0" }, - "engines": { - "node": ">=10" + "bin": { + "which": "bin/which" } }, - "node_modules/yargs-parser": { - "version": "20.2.9", + "node_modules/patch-package/node_modules/yaml": { + "version": "1.10.2", "license": "ISC", "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/yargs-unparser": { - "version": "2.0.0", + "node_modules/path-exists": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/yn": { + "node_modules/path-is-absolute": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { "version": "3.1.1", - "devOptional": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", + "node_modules/path-parse": { + "version": "1.0.7", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "engines": { + "node": "14 || >=16.14" + } }, - "node_modules/zen-observable-ts": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", - "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", - "dependencies": { - "zen-observable": "0.8.15" + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" } }, - "packages/transactions/commitment-tx": { - "name": "@rosen-bridge/commitment-tx", - "version": "0.1.0", - "extraneous": true, - "license": "GPL-3.0", - "dependencies": { - "@rosen-bridge/abstract-logger": "^1.0.0", - "@rosen-bridge/ergo-box-selection": "^0.3.0", - "@rosen-bridge/json-bigint": "^0.1.0", - "@rosen-bridge/observation-extractor": "^4.1.1", - "@rosen-bridge/rwt-repo": "^2.0.0", - "blakejs": "^1.2.1", - "ergo-lib-wasm-nodejs": "^0.24.1" - }, - "devDependencies": { - "@types/node": "^18.11.18", - "@typescript-eslint/eslint-plugin": "^6.7.0", - "@typescript-eslint/parser": "^6.7.0", - "@vitest/coverage-c8": "^0.26.3", - "@vitest/coverage-istanbul": "^0.34.6", - "eslint": "^8.16.0", - "eslint-config-prettier": "^8.5.0", - "prettier": "2.7.1", - "typescript": "^5.0.0", - "vitest": "^0.34.6" - }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=18.12.0" + "node": ">=8" } }, - "packages/transactions/permit": { - "name": "@rosen-bridge/permit-tx", - "version": "0.1.0", - "extraneous": true, - "license": "GPL-3.0", - "dependencies": { - "@rosen-bridge/abstract-logger": "^1.0.0", - "@rosen-bridge/rwt-repo": "^2.0.0" - }, - "devDependencies": { - "@types/node": "^18.11.18", - "@typescript-eslint/eslint-plugin": "^6.7.0", - "@typescript-eslint/parser": "^6.7.0", - "@vitest/coverage-c8": "^0.26.3", - "@vitest/coverage-istanbul": "^0.34.6", - "eslint": "^8.16.0", - "eslint-config-prettier": "^8.5.0", - "prettier": "2.7.1", - "typescript": "^5.0.0", - "vitest": "^0.34.6" - }, + "node_modules/pathval": { + "version": "1.1.1", + "license": "MIT", "engines": { - "node": ">=18.12.0" + "node": "*" } }, - "packages/transactions/trigger": { - "name": "@rosen-bridge/trigger-tx", - "version": "0.1.0", - "extraneous": true, - "license": "GPL-3.0", + "node_modules/pg": { + "version": "8.7.3", + "license": "MIT", "dependencies": { - "@rosen-bridge/abstract-logger": "^1.0.0", - "@rosen-bridge/json-bigint": "^0.1.0", - "@rosen-bridge/observation-extractor": "^4.1.1", - "@rosen-bridge/rwt-repo": "^2.0.0", - "blakejs": "^1.2.1", - "ergo-lib-wasm-nodejs": "^0.26.0" - }, - "devDependencies": { - "@types/node": "^18.11.18", - "@typescript-eslint/eslint-plugin": "^6.7.0", - "@typescript-eslint/parser": "^6.7.0", - "@vitest/coverage-c8": "^0.26.3", - "@vitest/coverage-istanbul": "^0.34.6", - "eslint": "^8.16.0", - "eslint-config-prettier": "^8.5.0", - "prettier": "2.7.1", - "typescript": "^5.0.0", - "vitest": "^0.34.6" + "buffer-writer": "2.0.0", + "packet-reader": "1.0.0", + "pg-connection-string": "^2.5.0", + "pg-pool": "^3.5.1", + "pg-protocol": "^1.5.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" }, "engines": { - "node": ">=18.12.0" + "node": ">= 8.0.0" + }, + "peerDependencies": { + "pg-native": ">=2.0.0" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } } }, - "services/watcher": { - "name": "@rosen-bridge/watcher", - "version": "1.0.0", - "extraneous": true, + "node_modules/pg-cloudflare": { + "version": "1.1.1", + "license": "MIT", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.6.2", + "license": "MIT" + }, + "node_modules/pg-int8": { + "version": "1.0.1", "license": "ISC", - "dependencies": { - "@emurgo/cip14-js": "^3.0.1", - "@rosen-bridge/address-extractor": "^3.2.1", - "@rosen-bridge/health-check": "^3.0.1", - "@rosen-bridge/minimum-fee": "^0.1.13", - "@rosen-bridge/observation-extractor": "^4.2.1", - "@rosen-bridge/scanner": "^3.2.1", - "@rosen-bridge/watcher-data-extractor": "^4.2.3", - "@rosen-bridge/winston-logger": "0.2.1", - "axios": "^0.26.1", - "bip39": "^3.1.0", - "blakejs": "^1.2.1", - "chai-spies": "^1.0.0", - "config": "^3.3.7", - "cors": "^2.8.5", - "ergo-lib-wasm-nodejs": "^0.24.0", - "express": "^4.17.3", - "express-validator": "^6.14.2", - "json-bigint": "^1.0.0", - "lodash-es": "^4.17.21", - "pg": "^8.7.3", - "reflect-metadata": "^0.1.13", - "sleep-promise": "^9.1.0", - "sqlite3": "^5.0.2", - "supertest": "^6.3.0", - "tsconfig-paths": "^4.0.0", - "typeorm": "^0.3.6" - }, - "devDependencies": { - "@rollup/plugin-commonjs": "^25.0.0", - "@rollup/plugin-json": "^6.0.0", - "@rollup/plugin-node-resolve": "^15.0.2", - "@rollup/plugin-typescript": "^11.1.1", - "@rollup/plugin-virtual": "^3.0.1", - "@rosen-bridge/rollup-plugin-node-wasm": "^0.1.0", - "@types/chai": "^4.3.0", - "@types/chai-as-promised": "^7.1.5", - "@types/chai-spies": "^1.0.3", - "@types/config": "^0.0.41", - "@types/cors": "^2.8.13", - "@types/express": "^4.17.13", - "@types/json-bigint": "^1.0.1", - "@types/lodash-es": "^4.17.6", - "@types/mocha": "^9.1.0", - "@types/node": "^17.0.21", - "@types/rollup-plugin-natives": "^0.7.1", - "@types/sinon": "^10.0.11", - "@types/supertest": "^2.0.12", - "@typescript-eslint/eslint-plugin": "^5.28.0", - "@typescript-eslint/parser": "^5.26.0", - "axios-mock-adapter": "^1.20.0", - "c8": "7.11.3", - "chai": "^4.3.6", - "chai-as-promised": "^7.1.1", - "eslint": "^8.16.0", - "eslint-config-prettier": "^8.5.0", - "lint-staged": "^13.0.3", - "madge": "^5.0.1", - "mocha": "^9.2.2", - "nodemon": "^2.0.15", - "pkg": "^5.8.1", - "prettier": "^2.7.1", - "rollup": "^3.21.6", - "rollup-plugin-natives": "^0.7.6", - "rollup-plugin-node-externals": "^6.0.1", - "sinon": "^14.0.0", - "ts-mockito": "^2.6.1", - "ts-node": "^10.7.0", - "typescript": "^4.7.2" + "engines": { + "node": ">=4.0.0" } - } - }, - "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "dev": true }, - "@apollo/client": { - "version": "3.8.8", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.8.8.tgz", - "integrity": "sha512-omjd9ryGDkadZrKW6l5ktUAdS4SNaFOccYQ4ZST0HLW83y8kQaSZOCTNlpkoBUK8cv6qP8+AxOKwLm2ho8qQ+Q==", - "requires": { - "@graphql-typed-document-node/core": "^3.1.1", - "@wry/equality": "^0.5.6", - "@wry/trie": "^0.5.0", - "graphql-tag": "^2.12.6", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.18.0", - "prop-types": "^15.7.2", - "response-iterator": "^0.2.6", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.10.3", - "tslib": "^2.3.0", - "zen-observable-ts": "^1.2.5" + "node_modules/pg-pool": { + "version": "3.6.1", + "license": "MIT", + "peerDependencies": { + "pg": ">=8.0" } }, - "@babel/generator": { - "version": "7.18.2", - "dev": true, - "requires": { - "@babel/types": "^7.18.2", - "@jridgewell/gen-mapping": "^0.3.0", - "jsesc": "^2.5.1" + "node_modules/pg-protocol": { + "version": "1.6.0", + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" } }, - "@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true + "node_modules/pgpass": { + "version": "1.0.5", + "license": "MIT", + "dependencies": { + "split2": "^4.1.0" + } }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true + "node_modules/picocolors": { + "version": "1.0.0", + "dev": true, + "license": "ISC" }, - "@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", - "dev": true + "node_modules/picomatch": { + "version": "2.3.1", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "@babel/types": { - "version": "7.19.0", + "node_modules/pidtree": { + "version": "0.6.0", "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" } }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "@blockfrost/blockfrost-js": { - "version": "5.4.0", - "requires": { - "@blockfrost/openapi": "0.1.59", - "@emurgo/cardano-serialization-lib-nodejs": "^11.4.0", - "@emurgo/cip14-js": "3.0.1", - "bottleneck": "^2.19.5", - "form-data": "^4.0.0", - "got": "^11.8.6", - "json-bigint": "^1.0.0" + "node_modules/pkg": { + "version": "5.8.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/generator": "7.18.2", + "@babel/parser": "7.18.4", + "@babel/types": "7.19.0", + "chalk": "^4.1.2", + "fs-extra": "^9.1.0", + "globby": "^11.1.0", + "into-stream": "^6.0.0", + "is-core-module": "2.9.0", + "minimist": "^1.2.6", + "multistream": "^4.1.0", + "pkg-fetch": "3.4.2", + "prebuild-install": "7.1.1", + "resolve": "^1.22.0", + "stream-meter": "^1.0.4" + }, + "bin": { + "pkg": "lib-es5/bin.js" + }, + "peerDependencies": { + "node-notifier": ">=9.0.1" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "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", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "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", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-fetch": { + "version": "3.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "fs-extra": "^9.1.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.6", + "progress": "^2.0.3", + "semver": "^7.3.5", + "tar-fs": "^2.1.1", + "yargs": "^16.2.0" + }, + "bin": { + "pkg-fetch": "lib-es5/bin.js" + } + }, + "node_modules/pkg/node_modules/@babel/parser": { + "version": "7.18.4", + "dev": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pkg/node_modules/is-core-module": { + "version": "2.9.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.32", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-values-parser": { + "version": "5.0.0", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "color-name": "^1.1.4", + "is-url-superb": "^4.0.0", + "quote-unquote": "^1.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.3.7", + "dev": true, + "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/postgres-array": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prebuild-install": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/precinct": { + "version": "8.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^2.20.3", + "debug": "^4.3.3", + "detective-amd": "^3.1.0", + "detective-cjs": "^3.1.1", + "detective-es6": "^2.2.1", + "detective-less": "^1.0.2", + "detective-postcss": "^4.0.0", + "detective-sass": "^3.0.1", + "detective-scss": "^2.0.1", + "detective-stylus": "^1.0.0", + "detective-typescript": "^7.0.0", + "module-definition": "^3.3.1", + "node-source-walk": "^4.2.0" + }, + "bin": { + "precinct": "bin/cli.js" + }, + "engines": { + "node": "^10.13 || ^12 || >=14" + } + }, + "node_modules/precinct/node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "node_modules/precinct/node_modules/detective-postcss": { + "version": "4.0.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.1", + "is-url": "^1.2.4", + "postcss": "^8.1.7", + "postcss-values-parser": "^2.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/precinct/node_modules/postcss-values-parser": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=6.14.4" + } + }, + "node_modules/preferred-pm": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.1.3.tgz", + "integrity": "sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0", + "find-yarn-workspace-root2": "1.2.16", + "path-exists": "^4.0.0", + "which-pm": "2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.7.1", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-ms": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "license": "ISC", + "optional": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "license": "MIT", + "optional": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/protobufjs": { + "version": "7.2.5", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/protobufjs/node_modules/long": { + "version": "5.2.3", + "license": "Apache-2.0" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.10.3", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "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/quick-lru": { + "version": "5.1.1", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/quote-unquote": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "license": "MIT" + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-yaml-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-1.1.0.tgz", + "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.5", + "js-yaml": "^3.6.1", + "pify": "^4.0.1", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-yaml-file/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/read-yaml-file/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "license": "Apache-2.0" + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/rehackt": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/rehackt/-/rehackt-0.1.0.tgz", + "integrity": "sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw==", + "peerDependencies": { + "@types/react": "*", + "react": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + } + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requirejs": { + "version": "2.3.6", + "dev": true, + "license": "MIT", + "bin": { + "r_js": "bin/r.js", + "r.js": "bin/r.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/requirejs-config-file": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "esprima": "^4.0.0", + "stringify-object": "^3.2.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "license": "MIT" + }, + "node_modules/resolve-dependency-path": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/response-iterator": { + "version": "0.2.6", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/responselike": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "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/rollup": { + "version": "3.29.2", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-natives": { + "version": "0.7.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fs-extra": "^10.1.0", + "magic-string": "^0.25.9" + }, + "peerDependencies": { + "rollup": ">=0.56.0" + } + }, + "node_modules/rollup-plugin-natives/node_modules/fs-extra": { + "version": "10.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/rollup-plugin-natives/node_modules/magic-string": { + "version": "0.25.9", + "dev": true, + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/rollup-plugin-node-externals": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "rollup": "^3.0.0" + } + }, + "node_modules/run-parallel": { + "version": "1.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", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.5.7", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "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/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.0", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/sass-lookup": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^2.16.0" + }, + "bin": { + "sass-lookup": "bin/cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/sass-lookup/node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "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/send": { + "version": "0.18.0", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "license": "MIT" + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "optional": true, + "peer": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "license": "ISC" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "license": "ISC" + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "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/simple-get": { + "version": "4.0.1", + "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", + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-update-notifier": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "~7.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/sinon": { + "version": "14.0.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^9.1.2", + "@sinonjs/samsam": "^6.1.1", + "diff": "^5.0.0", + "nise": "^5.1.1", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sleep-promise": { + "version": "9.1.0", + "license": "MIT" + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/smartwrap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-2.0.2.tgz", + "integrity": "sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==", + "dev": true, + "dependencies": { + "array.prototype.flat": "^1.2.3", + "breakword": "^1.0.5", + "grapheme-splitter": "^1.0.4", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1", + "yargs": "^15.1.0" + }, + "bin": { + "smartwrap": "src/terminal-adapter.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/smartwrap/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/smartwrap/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/smartwrap/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/smartwrap/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smartwrap/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smartwrap/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smartwrap/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smartwrap/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smartwrap/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/smartwrap/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smartwrap/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/snappy": { + "version": "7.2.2", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@napi-rs/snappy-android-arm-eabi": "7.2.2", + "@napi-rs/snappy-android-arm64": "7.2.2", + "@napi-rs/snappy-darwin-arm64": "7.2.2", + "@napi-rs/snappy-darwin-x64": "7.2.2", + "@napi-rs/snappy-freebsd-x64": "7.2.2", + "@napi-rs/snappy-linux-arm-gnueabihf": "7.2.2", + "@napi-rs/snappy-linux-arm64-gnu": "7.2.2", + "@napi-rs/snappy-linux-arm64-musl": "7.2.2", + "@napi-rs/snappy-linux-x64-gnu": "7.2.2", + "@napi-rs/snappy-linux-x64-musl": "7.2.2", + "@napi-rs/snappy-win32-arm64-msvc": "7.2.2", + "@napi-rs/snappy-win32-ia32-msvc": "7.2.2", + "@napi-rs/snappy-win32-x64-msvc": "7.2.2" + } + }, + "node_modules/socks": { + "version": "2.7.0", + "license": "MIT", + "optional": true, + "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": "6.2.1", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "dev": true, + "license": "MIT" + }, + "node_modules/spawndamnit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-2.0.0.tgz", + "integrity": "sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==", + "dev": true, + "dependencies": { + "cross-spawn": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "node_modules/spawndamnit/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/spawndamnit/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/spawndamnit/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawndamnit/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawndamnit/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/spawndamnit/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "dev": true + }, + "node_modules/split2": { + "version": "4.1.0", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/sqlite3": { + "version": "5.1.6", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.0", + "node-addon-api": "^4.2.0", + "tar": "^6.1.11" + }, + "optionalDependencies": { + "node-gyp": "8.x" + }, + "peerDependencies": { + "node-gyp": "8.x" + }, + "peerDependenciesMeta": { + "node-gyp": { + "optional": true + } + } + }, + "node_modules/sqlstring": { + "version": "2.3.3", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stream-meter": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.1.4" + } + }, + "node_modules/stream-meter/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-meter/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/stream-meter/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-meter/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/stream-transform": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.3.tgz", + "integrity": "sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==", + "dev": true, + "dependencies": { + "mixme": "^0.5.1" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-argv": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "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/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "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.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylus-lookup": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^2.8.1", + "debug": "^4.1.0" + }, + "bin": { + "stylus-lookup": "bin/cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/stylus-lookup/node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "node_modules/superagent": { + "version": "8.0.2", + "license": "MIT", + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.3", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.0.1", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/superagent/node_modules/qs": { + "version": "6.11.0", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/supertest": { + "version": "6.3.0", + "license": "MIT", + "dependencies": { + "methods": "^1.1.2", + "superagent": "^8.0.0" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "dev": true, + "license": "ISC" + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/temp": { + "version": "0.4.0", + "dev": true, + "engines": [ + "node >=0.4.0" + ] + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/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/text-hex": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "dev": true, + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.0.33", + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/touch/node_modules/nopt": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/triple-beam": { + "version": "1.3.0", + "license": "MIT" + }, + "node_modules/ts-custom-error": { + "version": "3.3.1", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ts-invariant": { + "version": "0.10.3", + "license": "MIT", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-mockito": { + "version": "2.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.5" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "devOptional": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "json5": "^2.2.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/tty-table": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.2.3.tgz", + "integrity": "sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "csv": "^5.5.3", + "kleur": "^4.1.5", + "smartwrap": "^2.0.2", + "strip-ansi": "^6.0.1", + "wcwidth": "^1.0.1", + "yargs": "^17.7.1" + }, + "bin": { + "tty-table": "adapters/terminal-adapter.js" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/tty-table/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/tty-table/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "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/tty-table/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", + "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typeforce": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", + "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" + }, + "node_modules/typeorm": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.20.tgz", + "integrity": "sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==", + "dependencies": { + "@sqltools/formatter": "^1.2.5", + "app-root-path": "^3.1.0", + "buffer": "^6.0.3", + "chalk": "^4.1.2", + "cli-highlight": "^2.1.11", + "dayjs": "^1.11.9", + "debug": "^4.3.4", + "dotenv": "^16.0.3", + "glob": "^10.3.10", + "mkdirp": "^2.1.3", + "reflect-metadata": "^0.2.1", + "sha.js": "^2.4.11", + "tslib": "^2.5.0", + "uuid": "^9.0.0", + "yargs": "^17.6.2" + }, + "bin": { + "typeorm": "cli.js", + "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", + "typeorm-ts-node-esm": "cli-ts-node-esm.js" + }, + "engines": { + "node": ">=16.13.0" + }, + "funding": { + "url": "https://opencollective.com/typeorm" + }, + "peerDependencies": { + "@google-cloud/spanner": "^5.18.0", + "@sap/hana-client": "^2.12.25", + "better-sqlite3": "^7.1.2 || ^8.0.0 || ^9.0.0", + "hdb-pool": "^0.1.6", + "ioredis": "^5.0.4", + "mongodb": "^5.8.0", + "mssql": "^9.1.1 || ^10.0.1", + "mysql2": "^2.2.5 || ^3.0.1", + "oracledb": "^6.3.0", + "pg": "^8.5.1", + "pg-native": "^3.0.0", + "pg-query-stream": "^4.0.0", + "redis": "^3.1.1 || ^4.0.0", + "sql.js": "^1.4.0", + "sqlite3": "^5.0.3", + "ts-node": "^10.7.0", + "typeorm-aurora-data-api-driver": "^2.0.0" + }, + "peerDependenciesMeta": { + "@google-cloud/spanner": { + "optional": true + }, + "@sap/hana-client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "hdb-pool": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "mongodb": { + "optional": true + }, + "mssql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "oracledb": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "pg-query-stream": { + "optional": true + }, + "redis": { + "optional": true + }, + "sql.js": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "ts-node": { + "optional": true + }, + "typeorm-aurora-data-api-driver": { + "optional": true + } + } + }, + "node_modules/typeorm/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typeorm/node_modules/buffer": { + "version": "6.0.3", + "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", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/typeorm/node_modules/cliui": { + "version": "8.0.1", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/typeorm/node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typeorm/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typeorm/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typeorm/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/typeorm/node_modules/mkdirp": { + "version": "2.1.6", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typeorm/node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" + }, + "node_modules/typeorm/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typeorm/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/typeorm/node_modules/yargs-parser": { + "version": "21.1.1", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/typescript": { + "version": "4.8.3", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/uniq": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "license": "ISC", + "optional": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "license": "ISC", + "optional": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-polyfill": { + "version": "1.1.12", + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.0", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "devOptional": true, + "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.15", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validator": { + "version": "13.7.0", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/varuint-bitcoin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz", + "integrity": "sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw==", + "dependencies": { + "safe-buffer": "^5.1.1" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walkdir": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "node_modules/which-pm": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", + "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", + "dev": true, + "dependencies": { + "load-yaml-file": "^0.2.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8.15" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/winston": { + "version": "3.11.0", + "license": "MIT", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.5.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-daily-rotate-file": { + "version": "4.7.1", + "license": "MIT", + "dependencies": { + "file-stream-rotator": "^0.6.1", + "object-hash": "^2.0.1", + "triple-beam": "^1.3.0", + "winston-transport": "^4.4.0" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "winston": "^3" + } + }, + "node_modules/winston-loki": { + "version": "6.0.8", + "license": "MIT", + "dependencies": { + "async-exit-hook": "2.0.1", + "btoa": "^1.2.1", + "protobufjs": "^7.2.4", + "url-polyfill": "^1.1.12", + "winston-transport": "^4.3.0" + }, + "optionalDependencies": { + "snappy": "^7.2.2" + } + }, + "node_modules/winston-transport": { + "version": "4.5.0", + "license": "MIT", + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 6.4.0" + } + }, + "node_modules/winston/node_modules/@colors/colors": { + "version": "1.6.0", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/winston/node_modules/is-stream": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.0", + "dev": true, + "license": "Apache-2.0" + }, + "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/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "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/wrappy": { + "version": "1.0.2", + "license": "ISC" + }, + "node_modules/ws": { + "version": "7.5.9", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.3.1", + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zen-observable": { + "version": "0.8.15", + "license": "MIT" + }, + "node_modules/zen-observable-ts": { + "version": "1.2.5", + "license": "MIT", + "dependencies": { + "zen-observable": "0.8.15" + } + } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "dev": true + }, + "@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" + }, + "@apollo/client": { + "version": "3.10.4", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.10.4.tgz", + "integrity": "sha512-51gk0xOwN6Ls1EbTG5svFva1kdm2APHYTzmFhaAdvUQoJFDxfc0UwQgDxGptzH84vkPlo1qunY1FuboyF9LI3Q==", + "requires": { + "@graphql-typed-document-node/core": "^3.1.1", + "@wry/caches": "^1.0.0", + "@wry/equality": "^0.5.6", + "@wry/trie": "^0.5.0", + "graphql-tag": "^2.12.6", + "hoist-non-react-statics": "^3.3.2", + "optimism": "^0.18.0", + "prop-types": "^15.7.2", + "rehackt": "^0.1.0", + "response-iterator": "^0.2.6", + "symbol-observable": "^4.0.0", + "ts-invariant": "^0.10.3", + "tslib": "^2.3.0", + "zen-observable-ts": "^1.2.5" + } + }, + "@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/generator": { + "version": "7.18.2", + "dev": true, + "requires": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "dev": true + }, + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.23.6", + "dev": true + }, + "@babel/runtime": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@babel/types": { + "version": "7.19.0", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true + }, + "@blockfrost/blockfrost-js": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@blockfrost/blockfrost-js/-/blockfrost-js-5.5.0.tgz", + "integrity": "sha512-9UZIo6jRDSkRJt1r9sU2YPlz9MC3Ndh/5nCxS04H9B2MIak/jtPoJ3jTvn5dED06P8lPSKPn0QYPsIiJQ+8Kew==", + "requires": { + "@blockfrost/openapi": "0.1.60", + "@emurgo/cardano-serialization-lib-nodejs": "^11.5.0", + "@emurgo/cip14-js": "3.0.1", + "bottleneck": "^2.19.5", + "form-data": "^4.0.0", + "got": "^11.8.6", + "json-bigint": "^1.0.0" + } + }, + "@blockfrost/openapi": { + "version": "0.1.60", + "resolved": "https://registry.npmjs.org/@blockfrost/openapi/-/openapi-0.1.60.tgz", + "integrity": "sha512-Q4hebu5NkWBi4TEn3kKNqExCDk/YYel10QfLCBbY+39pr0/RUC/AzMCq4bwAkO6I168LOnl8A3WWjJt8+iwjaQ==", + "requires": { + "ajv": "^8.11.2", + "cbor": "^8.1.0", + "yaml": "^2.2.1" + }, + "dependencies": { + "ajv": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.14.0.tgz", + "integrity": "sha512-oYs1UUtO97ZO2lJ4bwnWeQW8/zvOIQLGKcvPTsWmvc2SYgBb+upuNS5NxoLaMU4h8Ju3Nbj6Cq8mD2LQoqVKFA==", + "requires": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + } + } + }, + "@cardano-ogmios/client": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@cardano-ogmios/client/-/client-6.3.0.tgz", + "integrity": "sha512-nWaZ76n/R+p8nxBfRCetOuoDH8o5QToL5zWhRUu9EwHDJqM/0rzvYEk9JYCikAcVlC1qt6+3CcG4nCpG0dsptw==", + "requires": { + "@cardano-ogmios/schema": "6.3.0", + "@cardanosolutions/json-bigint": "^1.0.1", + "@types/json-bigint": "^1.0.1", + "bech32": "^2.0.0", + "cross-fetch": "^3.1.4", + "fastq": "^1.11.0", + "isomorphic-ws": "^4.0.1", + "nanoid": "^3.1.31", + "ts-custom-error": "^3.2.0", + "ws": "^7.4.6" + } + }, + "@cardano-ogmios/schema": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@cardano-ogmios/schema/-/schema-6.3.0.tgz", + "integrity": "sha512-reM7NDYV4cgMAdFCzypoIuCVgSUfR9ztRMlk6p7k0cTeqUkbMfA83ps1FVkTDxzXxFjgM4EkhqoJyRjKIKRPQA==" + }, + "@cardanosolutions/json-bigint": { + "version": "1.0.1", + "requires": { + "bignumber.js": "^9.0.0" + } + }, + "@changesets/apply-release-plan": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-7.0.0.tgz", + "integrity": "sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.20.1", + "@changesets/config": "^3.0.0", + "@changesets/get-version-range-type": "^0.4.0", + "@changesets/git": "^3.0.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "detect-indent": "^6.0.0", + "fs-extra": "^7.0.1", + "lodash.startcase": "^4.4.0", + "outdent": "^0.5.0", + "prettier": "^2.7.1", + "resolve-from": "^5.0.0", + "semver": "^7.5.3" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "@changesets/assemble-release-plan": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-6.0.0.tgz", + "integrity": "sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.20.1", + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.0.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "semver": "^7.5.3" + } + }, + "@changesets/changelog-git": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@changesets/changelog-git/-/changelog-git-0.2.0.tgz", + "integrity": "sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==", + "dev": true, + "requires": { + "@changesets/types": "^6.0.0" + } + }, + "@changesets/cli": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.27.1.tgz", + "integrity": "sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.20.1", + "@changesets/apply-release-plan": "^7.0.0", + "@changesets/assemble-release-plan": "^6.0.0", + "@changesets/changelog-git": "^0.2.0", + "@changesets/config": "^3.0.0", + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.0.0", + "@changesets/get-release-plan": "^4.0.0", + "@changesets/git": "^3.0.0", + "@changesets/logger": "^0.1.0", + "@changesets/pre": "^2.0.0", + "@changesets/read": "^0.6.0", + "@changesets/types": "^6.0.0", + "@changesets/write": "^0.3.0", + "@manypkg/get-packages": "^1.1.3", + "@types/semver": "^7.5.0", + "ansi-colors": "^4.1.3", + "chalk": "^2.1.0", + "ci-info": "^3.7.0", + "enquirer": "^2.3.0", + "external-editor": "^3.1.0", + "fs-extra": "^7.0.1", + "human-id": "^1.0.2", + "meow": "^6.0.0", + "outdent": "^0.5.0", + "p-limit": "^2.2.0", + "preferred-pm": "^3.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.5.3", + "spawndamnit": "^2.0.0", + "term-size": "^2.1.0", + "tty-table": "^4.1.5" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "@changesets/config": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@changesets/config/-/config-3.0.0.tgz", + "integrity": "sha512-o/rwLNnAo/+j9Yvw9mkBQOZySDYyOr/q+wptRLcAVGlU6djOeP9v1nlalbL9MFsobuBVQbZCTp+dIzdq+CLQUA==", + "dev": true, + "requires": { + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.0.0", + "@changesets/logger": "^0.1.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "fs-extra": "^7.0.1", + "micromatch": "^4.0.2" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "@changesets/errors": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@changesets/errors/-/errors-0.2.0.tgz", + "integrity": "sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==", + "dev": true, + "requires": { + "extendable-error": "^0.1.5" + } + }, + "@changesets/get-dependents-graph": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-2.0.0.tgz", + "integrity": "sha512-cafUXponivK4vBgZ3yLu944mTvam06XEn2IZGjjKc0antpenkYANXiiE6GExV/yKdsCnE8dXVZ25yGqLYZmScA==", + "dev": true, + "requires": { + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "chalk": "^2.1.0", + "fs-extra": "^7.0.1", + "semver": "^7.5.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "@changesets/get-release-plan": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-4.0.0.tgz", + "integrity": "sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w==", + "dev": true, + "requires": { + "@babel/runtime": "^7.20.1", + "@changesets/assemble-release-plan": "^6.0.0", + "@changesets/config": "^3.0.0", + "@changesets/pre": "^2.0.0", + "@changesets/read": "^0.6.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3" + } + }, + "@changesets/get-version-range-type": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.4.0.tgz", + "integrity": "sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==", + "dev": true + }, + "@changesets/git": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@changesets/git/-/git-3.0.0.tgz", + "integrity": "sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==", + "dev": true, + "requires": { + "@babel/runtime": "^7.20.1", + "@changesets/errors": "^0.2.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "is-subdir": "^1.1.1", + "micromatch": "^4.0.2", + "spawndamnit": "^2.0.0" + } + }, + "@changesets/logger": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@changesets/logger/-/logger-0.1.0.tgz", + "integrity": "sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==", + "dev": true, + "requires": { + "chalk": "^2.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@changesets/parse": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@changesets/parse/-/parse-0.4.0.tgz", + "integrity": "sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==", + "dev": true, + "requires": { + "@changesets/types": "^6.0.0", + "js-yaml": "^3.13.1" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } + }, + "@changesets/pre": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@changesets/pre/-/pre-2.0.0.tgz", + "integrity": "sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.20.1", + "@changesets/errors": "^0.2.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "fs-extra": "^7.0.1" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } } }, - "@blockfrost/openapi": { - "version": "0.1.59", + "@changesets/read": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@changesets/read/-/read-0.6.0.tgz", + "integrity": "sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==", + "dev": true, "requires": { - "ajv": "^8.11.2", - "cbor": "^8.1.0", - "yaml": "^2.2.1" + "@babel/runtime": "^7.20.1", + "@changesets/git": "^3.0.0", + "@changesets/logger": "^0.1.0", + "@changesets/parse": "^0.4.0", + "@changesets/types": "^6.0.0", + "chalk": "^2.1.0", + "fs-extra": "^7.0.1", + "p-filter": "^2.1.0" }, "dependencies": { - "ajv": { - "version": "8.12.0", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "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" + "color-convert": "^1.9.0" } }, - "json-schema-traverse": { - "version": "1.0.0" + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true } } }, - "@cardano-ogmios/client": { + "@changesets/types": { "version": "6.0.0", - "requires": { - "@cardano-ogmios/schema": "6.0.0", - "@cardanosolutions/json-bigint": "^1.0.1", - "@types/json-bigint": "^1.0.1", - "bech32": "^2.0.0", - "cross-fetch": "^3.1.4", - "fastq": "^1.11.0", - "isomorphic-ws": "^4.0.1", - "nanoid": "^3.1.31", - "ts-custom-error": "^3.2.0", - "ws": "^7.4.6" - } - }, - "@cardano-ogmios/schema": { - "version": "6.0.0" + "resolved": "https://registry.npmjs.org/@changesets/types/-/types-6.0.0.tgz", + "integrity": "sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==", + "dev": true }, - "@cardanosolutions/json-bigint": { - "version": "1.0.1", + "@changesets/write": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@changesets/write/-/write-0.3.0.tgz", + "integrity": "sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw==", + "dev": true, "requires": { - "bignumber.js": "^9.0.0" + "@babel/runtime": "^7.20.1", + "@changesets/types": "^6.0.0", + "fs-extra": "^7.0.1", + "human-id": "^1.0.2", + "prettier": "^2.7.1" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } } }, "@colors/colors": { @@ -9257,8 +13843,6 @@ }, "@graphql-typed-document-node/core": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", "requires": {} }, "@humanwhocodes/config-array": { @@ -9282,6 +13866,64 @@ "version": "1.2.1", "dev": true }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, "@istanbuljs/schema": { "version": "0.1.3", "dev": true @@ -9305,8 +13947,6 @@ }, "@jridgewell/sourcemap-codec": { "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "devOptional": true }, "@jridgewell/trace-mapping": { @@ -9317,6 +13957,137 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "@manypkg/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.5", + "@types/node": "^12.7.1", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "@manypkg/get-packages": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@manypkg/get-packages/-/get-packages-1.1.3.tgz", + "integrity": "sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.5", + "@changesets/types": "^4.0.1", + "@manypkg/find-root": "^1.1.0", + "fs-extra": "^8.1.0", + "globby": "^11.0.0", + "read-yaml-file": "^1.1.0" + }, + "dependencies": { + "@changesets/types": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@changesets/types/-/types-4.1.0.tgz", + "integrity": "sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, "@mapbox/node-pre-gyp": { "version": "1.0.10", "requires": { @@ -9335,8 +14106,18 @@ "version": "7.2.2", "optional": true }, + "@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "requires": { + "@noble/hashes": "1.3.2" + } + }, "@noble/hashes": { - "version": "1.3.1" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -9374,6 +14155,12 @@ "rimraf": "^3.0.2" } }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true + }, "@protobufjs/aspromise": { "version": "1.1.2" }, @@ -9453,96 +14240,255 @@ "resolve": "^1.22.1" } }, - "@rollup/plugin-virtual": { - "version": "3.0.1", - "dev": true, - "requires": {} - }, - "@rollup/pluginutils": { - "version": "5.0.2", - "dev": true, + "@rollup/plugin-virtual": { + "version": "3.0.1", + "dev": true, + "requires": {} + }, + "@rollup/pluginutils": { + "version": "5.0.2", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "dependencies": { + "estree-walker": { + "version": "2.0.2", + "dev": true + } + } + }, + "@rosen-bridge/abstract-extractor": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/abstract-extractor/-/abstract-extractor-0.1.0.tgz", + "integrity": "sha512-GYyPR5oAhGjrTHhS8gvNkdGCzaOYkp2FuPa8mCfl/BBMCrifmKx6n/yvDLrbhgurbOKx3MAnMJK5sLf63wAusg==", + "requires": { + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-clients/ergo-explorer": "^1.1.1", + "@rosen-clients/ergo-node": "^1.1.1", + "lodash-es": "^4.17.21" + } + }, + "@rosen-bridge/abstract-logger": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/abstract-logger/-/abstract-logger-1.0.0.tgz", + "integrity": "sha512-hN/cb0HSlhqvaEjqzFPZGIYOa70gdPd+mYrS5C7uNrv1Vw6k2k4lY4US05rwBENjSQpwik1H4gdCBzUkbCcjGA==" + }, + "@rosen-bridge/address-codec": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/address-codec/-/address-codec-0.2.1.tgz", + "integrity": "sha512-W7d7W0rmciMJMuq4KYh+6EeiB9dCE9RBTzu5xeFd3BLHjMnYpt1/J6vdZeXpFFySNRfxclFZwU94B5q3l6CV8Q==", + "requires": { + "@emurgo/cardano-serialization-lib-nodejs": "^11.5.0", + "bitcoinjs-lib": "^6.1.5", + "ergo-lib-wasm-nodejs": "^0.24.1" + } + }, + "@rosen-bridge/address-extractor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/address-extractor/-/address-extractor-4.0.0.tgz", + "integrity": "sha512-5IDzAh0eLWZZuSRF+X1R73tjCBCPunAsBcKz85ogvPKSY0pCo8wFHdeW9TUY04sJGQzAx7mvzzVRhPQd0C8oNw==", + "requires": { + "@rosen-bridge/abstract-extractor": "^0.1.0", + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/scanner": "^4.0.0", + "@rosen-clients/ergo-explorer": "^1.1.1", + "blakejs": "^1.2.1", + "ergo-lib-wasm-nodejs": "^0.24.1", + "lodash-es": "^4.17.21", + "reflect-metadata": "^0.1.13", + "sqlite3": "^5.0.9", + "typeorm": "^0.3.20" + } + }, + "@rosen-bridge/asset-check": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/asset-check/-/asset-check-0.2.0.tgz", + "integrity": "sha512-//hVyyrpnh5MJ9s8/23osH62T/ypxjRYdb4iNZwCM12d7GOjVGCRkTYeZZaTatKKesYzuBNf2J+5g75cwoIB9A==", + "requires": { + "@apollo/client": "^3.9.11", + "@blockfrost/blockfrost-js": "^5.5.0", + "@rosen-bridge/health-check": "^5.0.0", + "@rosen-clients/cardano-koios": "^2.0.1", + "@rosen-clients/ergo-explorer": "^1.1.1", + "@rosen-clients/ergo-node": "^1.1.1", + "axios": "^1.6.8", + "cross-fetch": "^4.0.0" + }, + "dependencies": { + "axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "requires": { + "node-fetch": "^2.6.12" + } + }, + "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==", + "requires": { + "whatwg-url": "^5.0.0" + } + } + } + }, + "@rosen-bridge/bitcoin-esplora-scanner": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@rosen-bridge/bitcoin-esplora-scanner/-/bitcoin-esplora-scanner-0.1.5.tgz", + "integrity": "sha512-p6ouaCnP+jPzCkddk8IMtQIJ9XAXjc136miTeLvLDFQtis9oiYQnboNd+X46nY6BmvgN5hDa31vtKzLwNAhqKQ==", "requires": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/scanner": "^4.0.0", + "axios": "^1.6.8" }, "dependencies": { - "estree-walker": { - "version": "2.0.2", - "dev": true + "axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } } } }, - "@rosen-bridge/abstract-logger": { - "version": "0.3.0" - }, - "@rosen-bridge/address-extractor": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@rosen-bridge/address-extractor/-/address-extractor-3.2.1.tgz", - "integrity": "sha512-ZGw2ILCiItgu6TVRbdfYClkM1dzV8f3ikClQfLA3CF6ko98euttoppkIP8W5RDcUGr6fLaJHU4jU6CGvW5jVpg==", + "@rosen-bridge/bitcoin-observation-extractor": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/bitcoin-observation-extractor/-/bitcoin-observation-extractor-3.0.0.tgz", + "integrity": "sha512-w/bT36W+/0x22f7dJ2KCeF96AMMSvJ3FERcb6AB8v6c7GRwL3iHXnDDmJkj95tXrGqd1hDORJEcclDAeOlNjuQ==", "requires": { - "@rosen-bridge/logger-interface": "^0.1.0", - "@rosen-bridge/scanner": "^3.2.1", - "@rosen-clients/ergo-explorer": "^1.0.3", - "blakejs": "^1.2.1", - "ergo-lib-wasm-nodejs": "^0.24.1", - "lodash-es": "^4.17.21", - "reflect-metadata": "^0.1.13", - "sqlite3": "^5.0.9", - "typeorm": "^0.3.7" + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/bitcoin-esplora-scanner": "^0.1.5", + "@rosen-bridge/bitcoin-rpc-scanner": "^0.1.1", + "@rosen-bridge/observation-extractor": "^4.4.4", + "@rosen-bridge/rosen-extractor": "^5.0.1", + "@rosen-bridge/tokens": "^1.0.0", + "typeorm": "^0.3.20" } }, - "@rosen-bridge/health-check": { - "version": "3.0.1", + "@rosen-bridge/bitcoin-rpc-scanner": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/bitcoin-rpc-scanner/-/bitcoin-rpc-scanner-0.1.1.tgz", + "integrity": "sha512-2CplgxHedelAnHNHB/ij/0pio6uZVHinV08S2EHaF4oyH32DXiHi66beC6iwYrwvd+03TmQo+Na//h2QZtxXJA==", "requires": { - "@blockfrost/blockfrost-js": "^5.4.0", - "@cardano-ogmios/client": "^6.0.0", "@rosen-bridge/abstract-logger": "^1.0.0", - "@rosen-bridge/scanner": "^3.0.0", - "@rosen-clients/cardano-koios": "^2.0.1", - "@rosen-clients/ergo-explorer": "^1.0.3", - "@rosen-clients/ergo-node": "^1.0.4", - "lodash": "^4.17.21" + "@rosen-bridge/scanner": "^4.0.0", + "axios": "^1.6.8" }, "dependencies": { - "@rosen-bridge/abstract-logger": { - "version": "1.0.0" + "axios": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz", + "integrity": "sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==", + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } } } }, + "@rosen-bridge/changeset-formatter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/changeset-formatter/-/changeset-formatter-0.1.0.tgz", + "integrity": "sha512-fRL99wHshoPebeLQiVQ392obQ8DF70DP8hByCKoMXMwH1exda5K2daYp7LaSITOlLEPKemqglSKn5ObZENheSg==", + "dev": true + }, + "@rosen-bridge/extended-typeorm": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@rosen-bridge/extended-typeorm/-/extended-typeorm-0.0.3.tgz", + "integrity": "sha512-YJakXDzvWsV4LnhguPccXaKjFWjVGiyasoDgnXNMF68WGfbCr4+fT7SJD9O4ASM9cmhKPN3zSjJN6EqdwUTdXw==", + "requires": { + "async-mutex": "^0.4.0", + "typeorm": "^0.3.20" + } + }, + "@rosen-bridge/health-check": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/health-check/-/health-check-5.0.0.tgz", + "integrity": "sha512-Tbk6SAOf1e6bpJychQZCEVlwdF7XnY9S6Zapw3vmliv1oa4yY7LXHvfVXVRKT4y8ZJocCzQ1YMi+satLaojrGQ==" + }, "@rosen-bridge/json-bigint": { "version": "0.1.0", "requires": { "json-bigint": "^1.0.0" } }, - "@rosen-bridge/logger-interface": { - "version": "0.1.0" + "@rosen-bridge/log-level-check": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/log-level-check/-/log-level-check-0.1.1.tgz", + "integrity": "sha512-FcxqK3OnrPwHEgmX8oA4Xq4JGcS7m5NAVxf8YhAyxCNL+NRsROrs7EwWXyj9AVcSjK4+liWRVBTENcOy+nj+rA==", + "requires": { + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/health-check": "^5.0.0", + "lodash-es": "^4.17.21" + } }, "@rosen-bridge/minimum-fee": { - "version": "0.1.13", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/minimum-fee/-/minimum-fee-2.0.1.tgz", + "integrity": "sha512-PEEmemRWYv2xkARxbg51KleAJtGzetZHFANeeHa2qJdZtFisUzZmqRKOB1VCIn1AW0lDrFeY02Rd8e4QzFfPcw==", "requires": { - "@rosen-clients/ergo-explorer": "^1.0.2", - "ergo-lib-wasm-nodejs": "^0.24.0-alpha-1f24f53", - "json-bigint": "^1.0.0" + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/json-bigint": "^0.1.0", + "@rosen-clients/ergo-explorer": "^1.1.1", + "@rosen-clients/ergo-node": "^1.1.1", + "ergo-lib-wasm-nodejs": "^0.24.1" + } + }, + "@rosen-bridge/node-sync-check": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/node-sync-check/-/node-sync-check-0.1.1.tgz", + "integrity": "sha512-up+CJ1K96s34G+7dsz1mwSesILi1QpRNslY9ZThd3yA3sl2rc1nVihhfgP7dd7xIiTYyhgO2m3bv+FtuTKUiEQ==", + "requires": { + "@rosen-bridge/health-check": "^5.0.0", + "@rosen-clients/ergo-node": "^1.1.1" } }, "@rosen-bridge/observation-extractor": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@rosen-bridge/observation-extractor/-/observation-extractor-4.2.1.tgz", - "integrity": "sha512-j1JXAT2Uq6LHSVmYa7tV6yNaxszNz7GOmHuLk/0/LKvPhYNtwf7AyiW7xlhx/5viBy1REtTJ5MotKuD5eEko2A==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@rosen-bridge/observation-extractor/-/observation-extractor-4.4.4.tgz", + "integrity": "sha512-7DM0FUY5lsANL9r8xo4qvUW1+v4wwF5ym+Ky+UzXakUmHMKPy7fx3CWxC+uPfWMfRgvio1SUTGFfE+jagLGMJA==", "requires": { - "@cardano-ogmios/schema": "^6.0.0", - "@rosen-bridge/logger-interface": "^0.1.0", - "@rosen-bridge/rosen-extractor": "^3.2.0", - "@rosen-bridge/scanner": "^3.2.1", + "@cardano-ogmios/schema": "^6.0.3", + "@rosen-bridge/abstract-extractor": "^0.1.0", + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/rosen-extractor": "^5.0.0", + "@rosen-bridge/scanner": "^4.0.0", "@rosen-bridge/tokens": "^1.0.0", "blakejs": "^1.2.1", "ergo-lib-wasm-nodejs": "^0.24.1", "lodash-es": "^4.17.21", "reflect-metadata": "^0.1.13", "sqlite3": "^5.0.9", - "typeorm": "^0.3.7" + "typeorm": "^0.3.20" + } + }, + "@rosen-bridge/permit-check": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/permit-check/-/permit-check-0.1.1.tgz", + "integrity": "sha512-n7vPePreTaOCaK+Cr2VzZJtfTTmp8N+y2ileTouRyfMC1W7RC8xdApBZy4332YAeIRW9YCn7ns/EGxiFvcGiKg==", + "requires": { + "@rosen-bridge/health-check": "^5.0.0", + "@rosen-clients/ergo-explorer": "^1.1.1", + "@rosen-clients/ergo-node": "^1.1.1", + "ergo-lib-wasm-nodejs": "^0.24.1" } }, "@rosen-bridge/rollup-plugin-node-wasm": { @@ -9563,46 +14509,95 @@ } }, "@rosen-bridge/rosen-extractor": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@rosen-bridge/rosen-extractor/-/rosen-extractor-3.2.0.tgz", - "integrity": "sha512-M4ahOsmYbb9K1LZP6rDoyqMuyE3sh+EtAEkW1VIX0Li1gDwrR/LCY/FTZPujQFmCelGul1Wh2FR3nwCVs2tU1Q==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/rosen-extractor/-/rosen-extractor-5.0.1.tgz", + "integrity": "sha512-+2i2/1fFodJSrTsaXEKOY60/lBUlpxoAxrwfW1pnxIHA5aATAOqXunk0QJJCMPiSUVhfzFa0vxZN3ZjCWROfnQ==", "requires": { "@blockfrost/blockfrost-js": "^5.4.0", - "@cardano-ogmios/schema": "^6.0.0", - "@rosen-bridge/abstract-logger": "^0.3.0", + "@cardano-ogmios/schema": "^6.0.3", + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/address-codec": "^0.2.1", "@rosen-bridge/json-bigint": "^0.1.0", "@rosen-bridge/tokens": "^1.0.0", + "bitcoinjs-lib": "^6.1.5", "ergo-lib-wasm-nodejs": "^0.24.1", + "ethers": "^6.11.1", "json-bigint": "^1.0.0", "lodash-es": "^4.17.21" } }, "@rosen-bridge/scanner": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@rosen-bridge/scanner/-/scanner-3.2.2.tgz", - "integrity": "sha512-nUwyVVLm3AVBESaTYSmr7doS7k55xLVosE6jmqT+V5FJkJdGyFdQefQFjfdbrmzra5YFKlM3qBLlQxS9CArGjA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/scanner/-/scanner-4.0.0.tgz", + "integrity": "sha512-ZHFRfsv3YRyFEZY4VzEEeHRJm0bsAiocaq0HNuWOubSHydiaLra62NUfI1mdNDU+ql5c+JyE+cmv/1zm7tdPaw==", "requires": { "@apollo/client": "^3.8.7", "@blockfrost/blockfrost-js": "^5.4.0", - "@cardano-ogmios/client": "^6.0.0", - "@cardano-ogmios/schema": "^6.0.0", + "@cardano-ogmios/client": "^6.3.0", + "@cardano-ogmios/schema": "^6.3.0", + "@rosen-bridge/abstract-extractor": "^0.1.0", + "@rosen-bridge/abstract-logger": "^1.0.0", "@rosen-bridge/json-bigint": "^0.1.0", - "@rosen-bridge/logger-interface": "^0.1.0", - "@rosen-clients/ergo-explorer": "^1.0.3", - "@rosen-clients/ergo-node": "^1.0.4", + "@rosen-clients/ergo-explorer": "^1.1.1", + "@rosen-clients/ergo-node": "^1.1.1", "await-semaphore": "^0.1.3", - "axios": "^0.27.2", + "axios": "^1.6.8", "cross-fetch": "^4.0.0", + "lodash-es": "^4.17.21", "reflect-metadata": "^0.1.13", "sqlite3": "^5.0.9", - "typeorm": "^0.3.7" + "typeorm": "^0.3.20" + }, + "dependencies": { + "axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "cross-fetch": { + "version": "4.0.0", + "requires": { + "node-fetch": "^2.6.12" + } + }, + "node-fetch": { + "version": "2.7.0", + "requires": { + "whatwg-url": "^5.0.0" + } + } + } + }, + "@rosen-bridge/scanner-sync-check": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/scanner-sync-check/-/scanner-sync-check-0.2.0.tgz", + "integrity": "sha512-sHrug14huk7q5Da1kYJPRyyWEehi9Rj1+lA2lhN12ZJWGAbUyvCbO8U4zfQFDEUbsC4UDus+vodOCTPmKM8BzA==", + "requires": { + "@apollo/client": "^3.9.11", + "@blockfrost/blockfrost-js": "^5.5.0", + "@cardano-ogmios/client": "^6.3.0", + "@rosen-bridge/health-check": "^5.0.0", + "@rosen-bridge/scanner": "^4.0.0", + "@rosen-clients/ergo-explorer": "^1.1.1", + "@rosen-clients/ergo-node": "^1.1.1", + "axios": "^1.6.8", + "cross-fetch": "^4.0.0", + "typeorm": "^0.3.20" }, "dependencies": { "axios": { - "version": "0.27.2", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "cross-fetch": { @@ -9624,16 +14619,21 @@ } }, "@rosen-bridge/tokens": { - "version": "1.0.0" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/tokens/-/tokens-1.1.0.tgz", + "integrity": "sha512-Ott48bFRKoK4h+ePUuPmWFUtOCGcuWiAbPrZ7h9BgX6GRj3/NTpzPFQgnaXk62oyJrZgWubgpcuQTf1yieTS+Q==" }, "@rosen-bridge/watcher-data-extractor": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@rosen-bridge/watcher-data-extractor/-/watcher-data-extractor-4.2.3.tgz", - "integrity": "sha512-7HXKvpemRT76WlzFHg4Z1HMtP7i0GHHhXEt6dWvCNJ3Oc41cRnkxKEWazzCkPRaYr1P2FQ7PtDKlqlBHku+83g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@rosen-bridge/watcher-data-extractor/-/watcher-data-extractor-6.0.0.tgz", + "integrity": "sha512-8LVgFWNuhp/xi3TR2kMVAQgPVsfab1T7sL9gwv/ZtIiSDTaoqmAIrM6KwUeaXiS+2p+Rme4Iwq9Ecb7B/DvBbA==", "requires": { - "@rosen-bridge/logger-interface": "^0.1.0", - "@rosen-bridge/scanner": "^3.2.2", - "@rosen-clients/ergo-explorer": "^1.0.3", + "@rosen-bridge/abstract-extractor": "^0.1.0", + "@rosen-bridge/abstract-logger": "^1.0.0", + "@rosen-bridge/extended-typeorm": "^0.0.3", + "@rosen-bridge/json-bigint": "^0.1.0", + "@rosen-bridge/scanner": "^4.0.0", + "@rosen-clients/ergo-explorer": "^1.1.1", "@types/lodash-es": "^4.17.6", "blakejs": "^1.2.1", "ergo-lib-wasm-nodejs": "^0.24.1", @@ -9642,13 +14642,11 @@ "pg": "^8.10.0", "reflect-metadata": "^0.1.13", "sqlite3": "^5.0.9", - "typeorm": "^0.3.7" + "typeorm": "^0.3.20" }, "dependencies": { "pg": { "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", "requires": { "buffer-writer": "2.0.0", "packet-reader": "1.0.0", @@ -9662,6 +14660,18 @@ } } }, + "@rosen-bridge/wid-check": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@rosen-bridge/wid-check/-/wid-check-0.1.1.tgz", + "integrity": "sha512-wcvtkj+lzXKg86UjYpbPurY4Ykm3jftzwt7I8Y5DXrH883OxcS87BiceWeCvmuFShyPxsy/xwZKCAKuMMC3vgA==", + "requires": { + "@rosen-bridge/health-check": "^5.0.0", + "@rosen-clients/ergo-explorer": "^1.1.1", + "@rosen-clients/ergo-node": "^1.1.1", + "ergo-lib-wasm-nodejs": "^0.24.1", + "lodash-es": "^4.17.21" + } + }, "@rosen-bridge/winston-logger": { "version": "0.2.1", "requires": { @@ -9670,65 +14680,51 @@ "winston": "^3.10.0", "winston-daily-rotate-file": "^4.7.1", "winston-loki": "^6.0.7" - }, - "dependencies": { - "@rosen-bridge/abstract-logger": { - "version": "1.0.0" - } } }, - "@rosen-clients/cardano-koios": { - "version": "2.0.1", + "@rosen-clients/axios": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@rosen-clients/axios/-/axios-0.1.0.tgz", + "integrity": "sha512-pCSGorduI2naHAnYB+qwQ5hBakBPAFIPXK/LJ+Fml5xmZjFpsylnqS1K6tg3oQi1OQAVDa5uv4XsbUSqYsMtDg==", "requires": { - "@types/json-bigint": "^1.0.1", - "axios": "^1.3.4", + "axios": "^1.6.8", "json-bigint": "^1.0.0" }, "dependencies": { "axios": { - "version": "1.6.2", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "requires": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } } } }, + "@rosen-clients/cardano-koios": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@rosen-clients/cardano-koios/-/cardano-koios-2.0.3.tgz", + "integrity": "sha512-Xd+42r7OlZH59uvJl257BEsUUeaBExGNfozq472Juj+zDTd/el2gQ3maEWR6PKrySKk20OwtzMrApyn//ModsQ==", + "requires": { + "@rosen-clients/axios": "^0.1.0" + } + }, "@rosen-clients/ergo-explorer": { - "version": "1.0.3", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rosen-clients/ergo-explorer/-/ergo-explorer-1.1.1.tgz", + "integrity": "sha512-xvDM15MhHV1HLg3e9/0fETDKs9ZFT1MT6pip1KWaLmPbCYetI88iPPcLPCaO0RwY+Iqf5qm+gHbKeroFdA+juw==", "requires": { - "@types/json-bigint": "^1.0.1", - "axios": "^1.3.4", - "json-bigint": "^1.0.0" - }, - "dependencies": { - "axios": { - "version": "1.5.0", - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - } + "@rosen-clients/axios": "^0.1.0" } }, "@rosen-clients/ergo-node": { - "version": "1.0.4", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rosen-clients/ergo-node/-/ergo-node-1.1.1.tgz", + "integrity": "sha512-o/hZByzn4PLHL3ciODZilK0oS9lV3JstTF9xwBsOGczIMfMnr/WytkGtPXQVuNJkAy9KEFsys1I1KjgjX/42iw==", "requires": { - "@types/json-bigint": "^1.0.1", - "axios": "^1.3.4", - "json-bigint": "^1.0.0" - }, - "dependencies": { - "axios": { - "version": "1.6.2", - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - } + "@rosen-clients/axios": "^0.1.0" } }, "@sindresorhus/is": { @@ -9907,14 +14903,24 @@ "version": "3.0.1", "dev": true }, + "@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true + }, "@types/mocha": { "version": "9.1.1", "dev": true }, "@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + "version": "17.0.45" + }, + "@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true }, "@types/qs": { "version": "6.9.7", @@ -9941,6 +14947,12 @@ "rollup": "^3.29.0" } }, + "@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, "@types/serve-static": { "version": "1.15.0", "dev": true, @@ -10063,32 +15075,24 @@ }, "@wry/caches": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@wry/caches/-/caches-1.0.1.tgz", - "integrity": "sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA==", "requires": { "tslib": "^2.3.0" } }, "@wry/context": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.4.tgz", - "integrity": "sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==", "requires": { "tslib": "^2.3.0" } }, "@wry/equality": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.7.tgz", - "integrity": "sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==", "requires": { "tslib": "^2.3.0" } }, "@wry/trie": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.5.0.tgz", - "integrity": "sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA==", "requires": { "tslib": "^2.3.0" } @@ -10117,10 +15121,13 @@ }, "acorn-walk": { "version": "8.3.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", - "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", "devOptional": true }, + "aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, "agent-base": { "version": "6.0.2", "requires": { @@ -10222,6 +15229,16 @@ "version": "2.0.1", "dev": true }, + "array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "requires": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + } + }, "array-flatten": { "version": "1.1.1" }, @@ -10229,6 +15246,40 @@ "version": "2.1.0", "dev": true }, + "array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true + }, "asap": { "version": "2.0.6" }, @@ -10249,12 +15300,29 @@ "async-exit-hook": { "version": "2.0.1" }, + "async-mutex": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.1.tgz", + "integrity": "sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==", + "requires": { + "tslib": "^2.4.0" + } + }, "asynckit": { "version": "0.4.0" }, "at-least-node": { "version": "1.0.0" }, + "available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "requires": { + "possible-typed-array-names": "^1.0.0" + } + }, "await-semaphore": { "version": "0.1.3" }, @@ -10275,12 +15343,26 @@ "balanced-match": { "version": "1.0.2" }, + "base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, "base64-js": { "version": "1.5.1" }, "bech32": { "version": "2.0.0" }, + "better-path-resolve": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", + "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", + "dev": true, + "requires": { + "is-windows": "^1.0.0" + } + }, "bignumber.js": { "version": "9.1.0" }, @@ -10288,12 +15370,30 @@ "version": "2.2.0", "dev": true }, + "bip174": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bip174/-/bip174-2.1.1.tgz", + "integrity": "sha512-mdFV5+/v0XyNYXjBS6CQPLo9ekCx4gtKZFnJm5PMto7Fs9hTTDpkkzOB7/FtluRI6JbUUAu+snTYfJRgHLZbZQ==" + }, "bip39": { "version": "3.1.0", "requires": { "@noble/hashes": "^1.2.0" } }, + "bitcoinjs-lib": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.5.tgz", + "integrity": "sha512-yuf6xs9QX/E8LWE2aMJPNd0IxGofwfuVOiYdNUESkc+2bHHVKjhJd8qewqapeoolh9fihzHGoDCB5Vkr57RZCQ==", + "requires": { + "@noble/hashes": "^1.2.0", + "bech32": "^2.0.0", + "bip174": "^2.1.1", + "bs58check": "^3.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.1.2" + } + }, "bl": { "version": "4.1.0", "dev": true, @@ -10335,10 +15435,36 @@ "fill-range": "^7.0.1" } }, + "breakword": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.6.tgz", + "integrity": "sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==", + "dev": true, + "requires": { + "wcwidth": "^1.0.1" + } + }, "browser-stdout": { "version": "1.3.1", "dev": true }, + "bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "requires": { + "base-x": "^4.0.0" + } + }, + "bs58check": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz", + "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==", + "requires": { + "@noble/hashes": "^1.2.0", + "bs58": "^5.0.0" + } + }, "btoa": { "version": "1.2.1" }, @@ -10440,10 +15566,15 @@ } }, "call-bind": { - "version": "1.0.2", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" } }, "callsites": { @@ -10454,8 +15585,35 @@ "version": "6.3.0", "dev": true }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + } + } + }, "cbor": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", + "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", "requires": { "nofilter": "^3.1.0" } @@ -10490,6 +15648,12 @@ "supports-color": "^7.1.0" } }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, "check-error": { "version": "1.0.3", "requires": { @@ -10739,15 +15903,46 @@ }, "cross-spawn": { "version": "7.0.3", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, - "date-fns": { - "version": "2.29.3" + "csv": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/csv/-/csv-5.5.3.tgz", + "integrity": "sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==", + "dev": true, + "requires": { + "csv-generate": "^3.4.3", + "csv-parse": "^4.16.3", + "csv-stringify": "^5.6.5", + "stream-transform": "^2.1.3" + } + }, + "csv-generate": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.3.tgz", + "integrity": "sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==", + "dev": true + }, + "csv-parse": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.16.3.tgz", + "integrity": "sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==", + "dev": true + }, + "csv-stringify": { + "version": "5.6.5", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.5.tgz", + "integrity": "sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==", + "dev": true + }, + "dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" }, "debug": { "version": "4.3.4", @@ -10759,6 +15954,30 @@ "version": "4.0.0", "dev": true }, + "decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true + } + } + }, "decompress-response": { "version": "6.0.0", "requires": { @@ -10793,6 +16012,27 @@ "defer-to-connect": { "version": "2.0.1" }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, "delayed-stream": { "version": "1.0.0" }, @@ -10831,6 +16071,12 @@ "destroy": { "version": "1.2.0" }, + "detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true + }, "detect-libc": { "version": "2.0.1" }, @@ -10975,8 +16221,7 @@ "version": "16.3.1" }, "eastasianwidth": { - "version": "0.2.0", - "dev": true + "version": "0.2.0" }, "ee-first": { "version": "1.1.1" @@ -11020,6 +16265,16 @@ "tapable": "^2.2.0" } }, + "enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + } + }, "env-paths": { "version": "2.2.1", "optional": true @@ -11031,6 +16286,116 @@ "version": "2.0.3", "optional": true }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + } + } + }, + "es-abstract": { + "version": "1.22.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz", + "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.1", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.0", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.5", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.14" + } + }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, + "es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + } + }, + "es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "escalade": { "version": "3.1.1" }, @@ -11235,6 +16600,38 @@ "etag": { "version": "1.8.1" }, + "ethers": { + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.12.1.tgz", + "integrity": "sha512-j6wcVoZf06nqEcBbDWkKg8Fp895SS96dSnTCjiXT+8vt2o02raTn4Lo9ERUuIVU5bAjoPYeA+7ytQFexFmLuVw==", + "requires": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "dependencies": { + "@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "requires": {} + } + } + }, "execa": { "version": "6.1.0", "dev": true, @@ -11347,6 +16744,23 @@ "validator": "^13.7.0" } }, + "extendable-error": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/extendable-error/-/extendable-error-0.1.7.tgz", + "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==", + "dev": true + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, "fast-deep-equal": { "version": "3.1.3" }, @@ -11492,6 +16906,16 @@ "micromatch": "^4.0.2" } }, + "find-yarn-workspace-root2": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", + "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", + "dev": true, + "requires": { + "micromatch": "^4.0.2", + "pkg-dir": "^4.2.0" + } + }, "flat": { "version": "5.0.2", "dev": true @@ -11516,7 +16940,18 @@ "version": "1.1.0" }, "follow-redirects": { - "version": "1.15.2" + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } }, "foreground-child": { "version": "2.0.0", @@ -11623,7 +17058,27 @@ "optional": true }, "function-bind": { - "version": "1.1.1" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true }, "gauge": { "version": "3.0.2", @@ -11662,11 +17117,15 @@ "version": "2.0.2" }, "get-intrinsic": { - "version": "1.1.3", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" } }, "get-own-enumerable-property-symbols": { @@ -11677,12 +17136,24 @@ "version": "6.0.1", "dev": true }, + "get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "requires": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + } + }, "github-from-package": { "version": "0.0.0", "dev": true }, "glob": { "version": "8.1.0", + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -11693,12 +17164,14 @@ "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" } @@ -11719,6 +17192,15 @@ "type-fest": "^0.20.2" } }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, "globby": { "version": "11.1.0", "dev": true, @@ -11738,6 +17220,14 @@ "minimist": "^1.2.5" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "got": { "version": "11.8.6", "requires": { @@ -11763,14 +17253,10 @@ }, "graphql": { "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", "peer": true }, "graphql-tag": { "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", "requires": { "tslib": "^2.1.0" } @@ -11786,21 +17272,64 @@ "version": "1.10.5", "dev": true }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, "has": { "version": "1.0.3", + "dev": true, "requires": { "function-bind": "^1.1.1" } }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, "has-flag": { "version": "4.0.0" }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" + }, "has-symbols": { "version": "1.0.3" }, + "has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.3" + } + }, "has-unicode": { "version": "2.0.1" }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "requires": { + "function-bind": "^1.1.2" + } + }, "he": { "version": "1.2.0", "dev": true @@ -11813,12 +17342,16 @@ }, "hoist-non-react-statics": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", "requires": { "react-is": "^16.7.0" } }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, "html-escaper": { "version": "2.0.2", "dev": true @@ -11859,6 +17392,12 @@ "debug": "4" } }, + "human-id": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/human-id/-/human-id-1.0.2.tgz", + "integrity": "sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==", + "dev": true + }, "human-signals": { "version": "3.0.1", "dev": true @@ -11929,6 +17468,17 @@ "version": "1.3.8", "dev": true }, + "internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + } + }, "into-stream": { "version": "6.0.0", "dev": true, @@ -11944,9 +17494,28 @@ "ipaddr.js": { "version": "1.9.1" }, + "is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + } + }, "is-arrayish": { "version": "0.3.2" }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, "is-binary-path": { "version": "2.1.0", "dev": true, @@ -11954,6 +17523,16 @@ "binary-extensions": "^2.0.0" } }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-buffer": { "version": "2.0.5", "dev": true @@ -11965,6 +17544,12 @@ "builtin-modules": "^3.3.0" } }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, "is-ci": { "version": "2.0.0", "requires": { @@ -11978,6 +17563,15 @@ "has": "^1.0.3" } }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-docker": { "version": "2.2.1" }, @@ -12007,9 +17601,24 @@ "version": "1.0.0", "dev": true }, + "is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true + }, "is-number": { "version": "7.0.0" }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-obj": { "version": "1.0.1", "dev": true @@ -12030,6 +17639,16 @@ "@types/estree": "*" } }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-regexp": { "version": "1.0.0", "dev": true @@ -12038,10 +17657,55 @@ "version": "1.0.2", "dev": true }, + "is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7" + } + }, "is-stream": { "version": "3.0.0", "dev": true }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-subdir": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", + "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", + "dev": true, + "requires": { + "better-path-resolve": "1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.14" + } + }, "is-unicode-supported": { "version": "0.1.0", "dev": true @@ -12054,6 +17718,21 @@ "version": "4.0.0", "dev": true }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, "is-wsl": { "version": "2.2.0", "requires": { @@ -12073,14 +17752,10 @@ }, "istanbul-lib-coverage": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true }, "istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", @@ -12090,8 +17765,6 @@ "dependencies": { "make-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "requires": { "semver": "^7.5.3" @@ -12101,22 +17774,27 @@ }, "istanbul-reports": { "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, "requires": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, + "jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, "js-sdsl": { "version": "4.1.4", "dev": true }, "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "version": "4.0.0" }, "js-yaml": { "version": "4.1.0", @@ -12138,6 +17816,12 @@ "json-buffer": { "version": "3.0.1" }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, "json-schema-traverse": { "version": "0.4.1", "dev": true @@ -12166,12 +17850,24 @@ "json-buffer": "3.0.1" } }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, "klaw-sync": { "version": "6.0.0", "requires": { "graceful-fs": "^4.1.11" } }, + "kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true + }, "kuler": { "version": "2.0.0" }, @@ -12187,6 +17883,12 @@ "version": "2.0.5", "dev": true }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "lint-staged": { "version": "13.0.3", "dev": true, @@ -12245,6 +17947,39 @@ } } }, + "load-yaml-file": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", + "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.5", + "js-yaml": "^3.13.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } + }, "locate-path": { "version": "6.0.0", "dev": true, @@ -12266,6 +18001,12 @@ "version": "4.6.2", "dev": true }, + "lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true + }, "log-symbols": { "version": "4.1.0", "dev": true, @@ -12322,16 +18063,12 @@ }, "loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } }, "loupe": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "requires": { "get-func-name": "^2.0.1" } @@ -12423,9 +18160,64 @@ "ssri": "^8.0.0" } }, - "media-typer": { - "version": "0.3.0" - }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true + }, + "media-typer": { + "version": "0.3.0" + }, + "meow": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", + "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "^4.0.2", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, "merge-descriptors": { "version": "1.0.1" }, @@ -12466,6 +18258,12 @@ "mimic-response": { "version": "3.1.0" }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, "minimatch": { "version": "3.1.2", "requires": { @@ -12475,6 +18273,25 @@ "minimist": { "version": "1.2.6" }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true + } + } + }, "minipass": { "version": "3.3.4", "requires": { @@ -12526,6 +18343,12 @@ "yallist": "^4.0.0" } }, + "mixme": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.10.tgz", + "integrity": "sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==", + "dev": true + }, "mkdirp": { "version": "1.0.4" }, @@ -12886,7 +18709,9 @@ } }, "nofilter": { - "version": "3.1.0" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==" }, "nopt": { "version": "5.0.0", @@ -12894,6 +18719,26 @@ "abbrev": "1" } }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "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" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, "normalize-path": { "version": "3.0.0", "dev": true @@ -12930,7 +18775,27 @@ "version": "2.2.0" }, "object-inspect": { - "version": "1.12.2" + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } }, "on-finished": { "version": "2.4.1", @@ -12966,8 +18831,6 @@ }, "optimism": { "version": "0.18.0", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.18.0.tgz", - "integrity": "sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ==", "requires": { "@wry/caches": "^1.0.0", "@wry/context": "^0.7.0", @@ -12977,8 +18840,6 @@ "dependencies": { "@wry/trie": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.4.3.tgz", - "integrity": "sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w==", "requires": { "tslib": "^2.3.0" } @@ -13015,9 +18876,32 @@ "os-tmpdir": { "version": "1.0.2" }, + "outdent": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz", + "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==", + "dev": true + }, "p-cancelable": { "version": "2.1.1" }, + "p-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", + "dev": true, + "requires": { + "p-map": "^2.0.0" + }, + "dependencies": { + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + } + } + }, "p-is-promise": { "version": "3.0.0", "dev": true @@ -13043,6 +18927,12 @@ "aggregate-error": "^3.0.0" } }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, "packet-reader": { "version": "1.0.0" }, @@ -13053,6 +18943,18 @@ "callsites": "^3.0.0" } }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, "parse-ms": { "version": "2.1.0", "dev": true @@ -13157,13 +19059,33 @@ "version": "1.0.1" }, "path-key": { - "version": "3.1.1", - "dev": true + "version": "3.1.1" }, "path-parse": { "version": "1.0.7", "dev": true }, + "path-scurry": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "requires": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==" + }, + "minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" + } + } + }, "path-to-regexp": { "version": "0.1.7" }, @@ -13176,8 +19098,6 @@ }, "pg": { "version": "8.7.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz", - "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==", "requires": { "buffer-writer": "2.0.0", "packet-reader": "1.0.0", @@ -13190,22 +19110,16 @@ }, "pg-cloudflare": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", - "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", "optional": true }, "pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" + "version": "2.6.2" }, "pg-int8": { "version": "1.0.1" }, "pg-pool": { "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", "requires": {} }, "pg-protocol": { @@ -13238,6 +19152,12 @@ "version": "0.6.0", "dev": true }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, "pkg": { "version": "5.8.1", "dev": true, @@ -13271,6 +19191,54 @@ } } }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, "pkg-fetch": { "version": "3.4.2", "dev": true, @@ -13289,10 +19257,14 @@ "version": "8.0.0", "dev": true }, + "possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true + }, "postcss": { "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "dev": true, "requires": { "nanoid": "^3.3.7", @@ -13302,8 +19274,6 @@ "dependencies": { "nanoid": { "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true } } @@ -13394,6 +19364,18 @@ } } }, + "preferred-pm": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.1.3.tgz", + "integrity": "sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==", + "dev": true, + "requires": { + "find-up": "^5.0.0", + "find-yarn-workspace-root2": "1.2.16", + "path-exists": "^4.0.0", + "which-pm": "2.0.0" + } + }, "prelude-ls": { "version": "1.2.1", "dev": true @@ -13431,8 +19413,6 @@ }, "prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -13471,6 +19451,12 @@ "proxy-from-env": { "version": "1.1.0" }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, "pstree.remy": { "version": "1.1.8", "dev": true @@ -13529,9 +19515,116 @@ } }, "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "version": "16.13.1" + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "read-yaml-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-1.1.0.tgz", + "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.5", + "js-yaml": "^3.6.1", + "pify": "^4.0.1", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } }, "readable-stream": { "version": "3.6.0", @@ -13548,18 +19641,60 @@ "picomatch": "^2.2.1" } }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, "reflect-metadata": { "version": "0.1.13" }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "requires": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + } + }, "regexpp": { "version": "3.2.0", "dev": true }, + "rehackt": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/rehackt/-/rehackt-0.1.0.tgz", + "integrity": "sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw==", + "requires": {} + }, "require-directory": { "version": "2.1.1" }, "require-from-string": { - "version": "2.0.2" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true }, "requirejs": { "version": "2.3.6", @@ -13594,9 +19729,7 @@ "dev": true }, "response-iterator": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", - "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==" + "version": "0.2.6" }, "responselike": { "version": "2.0.1", @@ -13694,9 +19827,40 @@ "tslib": "^2.1.0" } }, + "safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, "safe-buffer": { "version": "5.2.1" }, + "safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "requires": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + } + }, "safe-stable-stringify": { "version": "2.4.0" }, @@ -13780,6 +19944,31 @@ "set-blocking": { "version": "2.0.0" }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + } + }, "setprototypeof": { "version": "1.2.0" }, @@ -13792,14 +19981,12 @@ }, "shebang-command": { "version": "2.0.0", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "3.0.0", - "dev": true + "version": "3.0.0" }, "side-channel": { "version": "1.0.4", @@ -13875,16 +20062,138 @@ "version": "6.1.1", "dev": true }, - "is-fullwidth-code-point": { - "version": "4.0.0", + "is-fullwidth-code-point": { + "version": "4.0.0", + "dev": true + } + } + }, + "smart-buffer": { + "version": "4.2.0", + "optional": true + }, + "smartwrap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-2.0.2.tgz", + "integrity": "sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==", + "dev": true, + "requires": { + "array.prototype.flat": "^1.2.3", + "breakword": "^1.0.5", + "grapheme-splitter": "^1.0.4", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1", + "yargs": "^15.1.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } } } }, - "smart-buffer": { - "version": "4.2.0", - "optional": true - }, "snappy": { "version": "7.2.2", "optional": true, @@ -13934,9 +20243,110 @@ "version": "1.4.8", "dev": true }, + "spawndamnit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-2.0.0.tgz", + "integrity": "sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==", + "dev": true, + "requires": { + "cross-spawn": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "dev": true + }, "split2": { "version": "4.1.0" }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, "sqlite3": { "version": "5.1.6", "requires": { @@ -14001,6 +20411,15 @@ } } }, + "stream-transform": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.3.tgz", + "integrity": "sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==", + "dev": true, + "requires": { + "mixme": "^0.5.1" + } + }, "string_decoder": { "version": "1.3.0", "requires": { @@ -14019,6 +20438,49 @@ "strip-ansi": "^6.0.1" } }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, "stringify-object": { "version": "3.3.0", "dev": true, @@ -14034,6 +20496,14 @@ "ansi-regex": "^5.0.1" } }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, "strip-bom": { "version": "3.0.0" }, @@ -14041,6 +20511,15 @@ "version": "3.0.0", "dev": true }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, "strip-json-comments": { "version": "3.1.1", "dev": true @@ -14103,9 +20582,7 @@ "dev": true }, "symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" + "version": "4.0.0" }, "tapable": { "version": "2.2.1", @@ -14153,6 +20630,12 @@ "version": "0.4.0", "dev": true }, + "term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true + }, "test-exclude": { "version": "6.0.0", "dev": true, @@ -14237,6 +20720,12 @@ "tr46": { "version": "0.0.3" }, + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true + }, "triple-beam": { "version": "1.3.0" }, @@ -14245,8 +20734,6 @@ }, "ts-invariant": { "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", - "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", "requires": { "tslib": "^2.1.0" } @@ -14307,6 +20794,55 @@ } } }, + "tty-table": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.2.3.tgz", + "integrity": "sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==", + "dev": true, + "requires": { + "chalk": "^4.1.2", + "csv": "^5.5.3", + "kleur": "^4.1.5", + "smartwrap": "^2.0.2", + "strip-ansi": "^6.0.1", + "wcwidth": "^1.0.1", + "yargs": "^17.7.1" + }, + "dependencies": { + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "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" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } + }, "tunnel-agent": { "version": "0.6.0", "dev": true, @@ -14335,26 +20871,93 @@ "mime-types": "~2.1.24" } }, + "typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + } + }, + "typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + } + }, + "typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + } + }, + "typed-array-length": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", + "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + } + }, + "typeforce": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", + "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" + }, "typeorm": { - "version": "0.3.17", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.20.tgz", + "integrity": "sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==", "requires": { "@sqltools/formatter": "^1.2.5", "app-root-path": "^3.1.0", "buffer": "^6.0.3", "chalk": "^4.1.2", "cli-highlight": "^2.1.11", - "date-fns": "^2.29.3", + "dayjs": "^1.11.9", "debug": "^4.3.4", "dotenv": "^16.0.3", - "glob": "^8.1.0", + "glob": "^10.3.10", "mkdirp": "^2.1.3", - "reflect-metadata": "^0.1.13", + "reflect-metadata": "^0.2.1", "sha.js": "^2.4.11", "tslib": "^2.5.0", "uuid": "^9.0.0", "yargs": "^17.6.2" }, "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, "buffer": { "version": "6.0.3", "requires": { @@ -14370,9 +20973,53 @@ "wrap-ansi": "^7.0.0" } }, + "foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + } + }, + "glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + } + }, + "minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" + }, "mkdirp": { "version": "2.1.6" }, + "reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" + }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + }, "yargs": { "version": "17.7.2", "requires": { @@ -14394,6 +21041,18 @@ "version": "4.8.3", "devOptional": true }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, "undefsafe": { "version": "2.0.5", "dev": true @@ -14463,9 +21122,27 @@ } } }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "validator": { "version": "13.7.0" }, + "varuint-bitcoin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz", + "integrity": "sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw==", + "requires": { + "safe-buffer": "^5.1.1" + } + }, "vary": { "version": "1.1.2" }, @@ -14492,11 +21169,52 @@ }, "which": { "version": "2.0.2", - "devOptional": true, "requires": { "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "which-pm": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", + "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", + "dev": true, + "requires": { + "load-yaml-file": "^0.2.0", + "path-exists": "^4.0.0" + } + }, + "which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + } + }, "wide-align": { "version": "1.1.5", "requires": { @@ -14571,6 +21289,16 @@ "strip-ansi": "^6.0.0" } }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, "wrappy": { "version": "1.0.2" }, @@ -14624,14 +21352,10 @@ "dev": true }, "zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + "version": "0.8.15" }, "zen-observable-ts": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", - "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", "requires": { "zen-observable": "0.8.15" } diff --git a/package.json b/package.json index fca2effa..6d2f8880 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@rosen-bridge/watcher", - "version": "1.0.0", + "version": "3.0.0", "description": "Rosen bridge Watcher service", "main": "index.js", "type": "module", @@ -10,14 +10,15 @@ "madge": "npx madge --circular --extensions ts ./", "prettify": "prettier --write . --ignore-path ./.gitignore", "start": "ts-node --experimental-specifier-resolution=node ./src/index.ts", - "test": "NODE_ENV=\"test\" mocha --slow 3000", + "test": "NODE_ENV=\"test\" mocha --exit --slow 3000", "type-check": "tsc --noEmit", "typeorm:generate:sqlite": "npm run typeorm migration:generate ./src/database/migrations/sqlite/watcherMigration -- -p -d ./config/dataSource.ts", "typeorm:generate:postgres": "npm run typeorm migration:generate ./src/database/migrations/postgres/watcherMigration -- -p -d ./config/dataSource.ts", "typeorm:migrate": "npm run typeorm migration:run -- -d config/dataSource.ts", "typeorm": "NODE_OPTIONS=--experimental-specifier-resolution=node typeorm-ts-node-esm", "build": "rollup --config ./rollup.config.ts --configPlugin @rollup/plugin-typescript", - "release": "npm run build && pkg ./out/index.cjs --targets host --out-path bin" + "release": "npm run build && pkg ./out/index.cjs --targets host --out-path bin", + "version": "npx changeset version && npm i" }, "repository": { "type": "git", @@ -27,11 +28,13 @@ "author": "Rosen Team", "license": "ISC", "devDependencies": { + "@changesets/cli": "^2.27.1", "@rollup/plugin-commonjs": "^25.0.0", "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.0.2", "@rollup/plugin-typescript": "^11.1.1", "@rollup/plugin-virtual": "^3.0.1", + "@rosen-bridge/changeset-formatter": "^0.1.0", "@rosen-bridge/rollup-plugin-node-wasm": "^0.1.0", "@types/chai": "^4.3.0", "@types/chai-as-promised": "^7.1.5", @@ -71,13 +74,23 @@ }, "dependencies": { "@emurgo/cip14-js": "^3.0.1", - "@rosen-bridge/address-extractor": "^3.2.1", - "@rosen-bridge/health-check": "^3.0.1", - "@rosen-bridge/minimum-fee": "^0.1.13", - "@rosen-bridge/observation-extractor": "^4.2.1", - "@rosen-bridge/scanner": "^3.2.1", - "@rosen-bridge/watcher-data-extractor": "^4.2.3", + "@rosen-bridge/address-extractor": "^4.0.0", + "@rosen-bridge/asset-check": "^0.2.0", + "@rosen-bridge/bitcoin-esplora-scanner": "^0.1.5", + "@rosen-bridge/bitcoin-observation-extractor": "^3.0.0", + "@rosen-bridge/bitcoin-rpc-scanner": "^0.1.1", + "@rosen-bridge/health-check": "^5.0.0", + "@rosen-bridge/log-level-check": "^0.1.1", + "@rosen-bridge/minimum-fee": "^2.0.1", + "@rosen-bridge/node-sync-check": "^0.1.1", + "@rosen-bridge/observation-extractor": "^4.4.4", + "@rosen-bridge/permit-check": "^0.1.1", + "@rosen-bridge/scanner": "^4.0.0", + "@rosen-bridge/scanner-sync-check": "^0.2.0", + "@rosen-bridge/watcher-data-extractor": "^6.0.0", + "@rosen-bridge/wid-check": "^0.1.1", "@rosen-bridge/winston-logger": "0.2.1", + "@rosen-clients/cardano-koios": "^2.0.3", "axios": "^0.26.1", "bip39": "^3.1.0", "blakejs": "^1.2.1", @@ -96,6 +109,6 @@ "sqlite3": "^5.0.2", "supertest": "^6.3.0", "tsconfig-paths": "^4.0.0", - "typeorm": "^0.3.6" + "typeorm": "^0.3.20" } } diff --git a/src/api/Transaction.ts b/src/api/Transaction.ts index 48c9e098..c75ad356 100644 --- a/src/api/Transaction.ts +++ b/src/api/Transaction.ts @@ -1,9 +1,9 @@ import { Buffer } from 'buffer'; import { ErgoBoxCandidate } from 'ergo-lib-wasm-nodejs'; import * as wasm from 'ergo-lib-wasm-nodejs'; +import WinstonLogger from '@rosen-bridge/winston-logger'; import { ErgoNetwork } from '../ergo/network/ergoNetwork'; -import { uint8ArrayToHex } from '../utils/utils'; import { Boxes } from '../ergo/boxes'; import { ErgoUtils } from '../ergo/utils'; import { getConfig } from '../config/config'; @@ -11,14 +11,20 @@ import { WatcherDataBase } from '../database/models/watcherModel'; import { TransactionUtils } from '../utils/watcherUtils'; import { TxType } from '../database/entities/txEntity'; import { AddressBalance } from '../ergo/interfaces'; -import { ChangeBoxCreationError, NotEnoughFund } from '../errors/errors'; +import { ChangeBoxCreationError, NoWID, NotEnoughFund } from '../errors/errors'; import { DetachWID } from '../transactions/detachWID'; -import WinstonLogger from '@rosen-bridge/winston-logger'; +import { + WID_LOCK_COUNT, + WID_MINT_COUNT, + WID_UNLOCK_COUNT, +} from '../config/constants'; +import { HealthStatusLevel } from '@rosen-bridge/health-check'; +import { HealthCheckSingleton } from '../utils/healthCheck'; const logger = WinstonLogger.getInstance().getLogger(import.meta.url); export type ApiResponse = { - response: string | string[]; + response: string; status: number; }; @@ -71,10 +77,10 @@ export class Transaction { this.userAddress ); Transaction.isSetupCalled = true; - await Transaction.getWatcherState(); - this.watcherDatabase = db; this.txUtils = new TransactionUtils(db); + + await Transaction.getWatcherState(); } }; @@ -90,27 +96,16 @@ export class Transaction { }; /** - * it gets repoBox users list and find the corresponding wid to the watcher and - * returns it's wid or in case of no permits return empty string - * @param users + * List all watcher tokens and check if they are a registered WID token + * @param wids all registered WIDs + * @return watcher WID */ - static getWID = async (users: Array): Promise => { - // TODO: This function hasn't good performance + static getWID = async (wids: string[]): Promise => { if (!Transaction.isSetupCalled) throw new Error("The Transaction class setup doesn't called"); - const usersWID = users.map(async (id) => { - const wid = uint8ArrayToHex(id); - try { - await ErgoNetwork.getBoxWithToken(Transaction.userAddress, wid); - return true; - } catch (error) { - return false; - } - }); - for (const [i, userWID] of usersWID.entries()) { - if (await userWID) { - return uint8ArrayToHex(users[i]); - } + const balance = await ErgoUtils.getWatcherBalance(); + for (const token of balance.tokens) { + if (wids.includes(token.tokenId)) return token.tokenId; } return ''; }; @@ -119,15 +114,15 @@ export class Transaction { * Get required permit count */ getRequiredPermitsCountPerEvent = async () => { - const repoBox = await Transaction.boxes.getRepoBox(); - const R6 = repoBox.register_value(6); - if (R6) { - const r6Values: string[] = R6.to_js(); - if (r6Values.length > 0) { - return BigInt(r6Values[0]); + const configBox = await Transaction.boxes.getRepoConfigBox(); + const R4 = configBox.register_value(4); + if (R4) { + const r4Values: string[] = R4.to_js(); + if (r4Values.length > 0) { + return BigInt(r4Values[0]); } } - throw Error('Invalid repo box'); + throw Error('Invalid repo config box'); }; /** @@ -135,146 +130,122 @@ export class Transaction { * @returns */ getTotalPermit = async (): Promise => { - const WID = Transaction.watcherWID!; - const repoBox = await Transaction.boxes.getRepoBox(); - const R4 = repoBox.register_value(4); - const R5 = repoBox.register_value(5); - if (!R4 || !R5) { - throw Error('Invalid repoBox found'); - } + const wid = Transaction.watcherWID; + if (!wid) return 0n; try { - const widIndex = R4.to_coll_coll_byte() - .map((user) => uint8ArrayToHex(user)) - .indexOf(WID); - if (widIndex < 0) return 0n; - const usersCount: Array | undefined = R5.to_i64_str_array(); - return BigInt(usersCount[widIndex]); - } catch { - throw Error('Repo box register types or values are invalid'); + const collateral = await Transaction.watcherDatabase.getCollateralByWid( + wid + ); + return collateral.rwtCount; + } catch (e) { + logger.warn(`Could not find collateral box for WID [${wid}]`); + return 0n; } }; + /** + * Create return permit transaction for required rwt tokens + * @param RWTCount + * @param widBox box containing at least 2 wid tokens in its first token place + * @returns signed transaction and remaining locked rwt tokens + */ returnPermitTx = async ( - height: number, RWTCount: bigint, - permitBox: wasm.ErgoBox, - repoBox: wasm.ErgoBox, - widBox: wasm.ErgoBox, - wid: string, - feeBox: wasm.ErgoBox | undefined + widBox: wasm.ErgoBox ): Promise<{ tx: wasm.Transaction; remainingRwt: bigint }> => { + const wid = Transaction.watcherWID!; + const permitBoxes = await Transaction.boxes.getPermits(wid, RWTCount); + const repoBox = await Transaction.boxes.getRepoBox(); + const height = await ErgoNetwork.getHeight(); + const R4 = repoBox.register_value(4); const R5 = repoBox.register_value(5); - const R6 = repoBox.register_value(6); - - // This couldn't happen - if (!R4 || !R5 || !R6) { - throw Error('one of registers (4, 5, 6) of repo box is not set'); + if (!R4 || !R5) { + // Impossible case + throw Error('one of registers (4, 5) of repo box is not set'); } - const users = R4.to_coll_coll_byte(); - const usersCount: Array | undefined = R5.to_i64_str_array(); - - const widIndex = users.map((user) => uint8ArrayToHex(user)).indexOf(wid); - const inputBoxes = [repoBox, permitBox, widBox]; - const totalRwt = BigInt(usersCount[widIndex]); - const usersOut = [...users]; - const usersCountOut = [...usersCount]; - if (totalRwt === RWTCount) { - // need to add collateral - const collateral = await Transaction.getInstance().getCollateral(); - const collateralBoxes = - await ErgoNetwork.getCoveringErgAndTokenForAddress( - Transaction.boxes.watcherCollateralContract - .ergo_tree() - .to_base16_bytes(), - collateral.erg, - { [getConfig().rosen.RSN]: collateral.rsn }, - (box) => { - if (!box.register_value(4)) { - logger.debug('Skipping collateral box without wid information'); - return false; - } - const collateralWid = Buffer.from( - box.register_value(4)?.to_js() - ).toString('hex'); - logger.debug(`Collateral is found for wid: [${collateralWid}]`); - return collateralWid == wid; - } - ); - if (collateralBoxes.boxes.length == 0) - throw Error('Collateral box for this wid is not found'); - if (!collateralBoxes.covered) throw Error('Collateral is not covered'); - collateralBoxes.boxes.forEach((box) => inputBoxes.push(box)); - usersOut.splice(widIndex, 1); - usersCountOut.splice(widIndex, 1); - } else { - usersCountOut[widIndex] = ( - BigInt(usersCountOut[widIndex]) - RWTCount - ).toString(); - } + const collateralBox = await Transaction.boxes.getCollateralBox(wid); + const totalRwt = BigInt(collateralBox.register_value(5)!.to_i64().to_str()); + const completeReturn = totalRwt == RWTCount; + + const inputBoxes = [repoBox, collateralBox, permitBoxes[0], widBox]; + permitBoxes.slice(1).forEach((box) => inputBoxes.push(box)); const outputBoxes: Array = []; + + const AWCTokenCount = BigInt( + repoBox.tokens().get(3).amount().as_i64().to_str() + ); + const watcherCount = Number(R5.to_i64().to_str()); + const chainId = R4.to_byte_array(); outputBoxes.push( await Transaction.boxes.createRepo( height, + repoBox.value().as_i64().to_str(), ( BigInt(repoBox.tokens().get(1).amount().as_i64().to_str()) + RWTCount ).toString(), ( BigInt(repoBox.tokens().get(2).amount().as_i64().to_str()) - RWTCount ).toString(), - usersOut, - usersCountOut, - R6, - widIndex + completeReturn + ? (AWCTokenCount + 1n).toString() + : AWCTokenCount.toString(), + chainId, + completeReturn ? watcherCount - 1 : watcherCount ) ); + let burnToken: { [tokenId: string]: bigint } = {}; - const inputRwtCount = BigInt( - permitBox.tokens().get(0).amount().as_i64().to_str() - ); - if (RWTCount == totalRwt) { + const inputRwtCount = ErgoUtils.getBoxAssetsSum(permitBoxes) + .filter((asset) => asset.tokenId == getConfig().rosen.RWTId) + .reduce((sum, asset) => sum + asset.amount, 0n); + const widCount = BigInt(widBox.tokens().get(0).amount().as_i64().to_str()); + if (completeReturn) { // Should burn the wid and no need for any new box logger.debug(`Burning the wid token: [${wid}]`); - burnToken = { [wid]: -1n }; - } else if (inputRwtCount > RWTCount) { - // Should create a change permit box and a new wid box - logger.debug( - `Creating a new wid box and permit with rwtCount= [${ - inputRwtCount - RWTCount - }]` - ); - outputBoxes.push( - await Transaction.boxes.createPermit( - height, - inputRwtCount - RWTCount, - Buffer.from(wid, 'hex') - ) - ); - outputBoxes.push( - Transaction.boxes.createWIDBox( - height, - wid, - Transaction.minBoxValue.as_i64().to_str(), - Transaction.userAddressContract - ) - ); + burnToken = { [wid]: -widCount }; } else { - // All tokens should be unlocked and no need to create a new permit box - // But it already has some permits so needs the wid token - logger.debug( - `Creating a new wid box for other permits, all permits in the existing box are returned` + // Adding output collateral to transaction + const rsnCollateral = ErgoUtils.getBoxAssetsSum([collateralBox]).filter( + (token) => token.tokenId == getConfig().rosen.RSN + ); + const outCollateralBox = await Transaction.boxes.createCollateralBox( + ErgoUtils.getBoxValuesSum([collateralBox]), + height, + wid, + totalRwt - RWTCount, + rsnCollateral.length ? rsnCollateral[0].amount : 0n ); + outputBoxes.push(outCollateralBox); + + if (inputRwtCount > RWTCount) { + // Should create a change permit box + logger.debug( + `Creating a new wid box and permit with rwtCount= [${ + inputRwtCount - RWTCount + }]` + ); + outputBoxes.push( + await Transaction.boxes.createPermit( + height, + inputRwtCount - RWTCount, + Buffer.from(wid, 'hex') + ) + ); + } + // Create the output wid box outputBoxes.push( Transaction.boxes.createWIDBox( height, wid, Transaction.minBoxValue.as_i64().to_str(), + widCount.toString(), Transaction.userAddressContract ) ); } - if (feeBox) inputBoxes.push(feeBox); + const totalErgIn = inputBoxes .map((item) => BigInt(item.value().as_i64().to_str())) .reduce((a, b) => a + b, 0n); @@ -285,11 +256,9 @@ export class Transaction { BigInt(Transaction.fee.as_i64().to_str()) + BigInt(Transaction.minBoxValue.as_i64().to_str()); if (totalErgOut > totalErgIn) { - const existingBoxIds = [widBox.box_id().to_str()]; - if (feeBox) existingBoxIds.push(feeBox.box_id().to_str()); const userBoxes = await Transaction.boxes.getUserPaymentBox( totalErgOut - totalErgIn, - existingBoxIds + [widBox.box_id().to_str()] ); userBoxes.forEach((box) => inputBoxes.push(box)); } @@ -352,6 +321,15 @@ export class Transaction { * @param RWTCount */ returnPermit = async (RWTCount: bigint): Promise => { + const scannerSyncStatus = + await HealthCheckSingleton.getInstance().getErgoScannerSyncHealth(); + if (scannerSyncStatus === HealthStatusLevel.BROKEN) { + return { + response: `Ergo scanner is not synced, please check your connection and wait more`, + status: 400, + }; + } + const activePermitTxs = await Transaction.watcherDatabase.getActivePermitTransactions(); if (activePermitTxs.length !== 0) { @@ -366,77 +344,64 @@ export class Transaction { } const WID = Transaction.watcherWID!; - const permitBoxes = await Transaction.boxes.getPermits(WID, RWTCount); - let repoBox = await Transaction.boxes.getRepoBox(); - let widBox = await Transaction.boxes.getWIDBox(WID); - const height = await ErgoNetwork.getHeight(); - - if (widBox.tokens().get(0).id().to_str() != WID) { - try { + let widBox: wasm.ErgoBox | undefined = undefined; + try { + const widBoxes = await Transaction.boxes.getWIDBox(WID, WID_UNLOCK_COUNT); + for (const box of widBoxes) { + const token = box.tokens().get(0); + if ( + token.id().to_str() == WID && + BigInt(token.amount().as_i64().to_str()) >= WID_UNLOCK_COUNT + ) { + widBox = box; + break; + } + } + if (!widBox) { + logger.info( + `Wid box with at least ${WID_UNLOCK_COUNT} wid token is not found, creating detach transaction for wid boxes [${widBoxes.map( + (box) => box.box_id().to_str() + )}]` + ); await DetachWID.detachWIDtx( Transaction.txUtils, Transaction.boxes, WID, - widBox + widBoxes ); return { response: `WID box is not in valid format (WID token is not the first token), please wait for the correction transaction`, status: 400, }; - } catch (e) { + } + } catch (e) { + if (e instanceof NoWID) { + logger.warn( + `Could not find ${WID_UNLOCK_COUNT} token in watcher wallet, skipping unlock transaction` + ); return { - response: `WID box is not in valid format, but an error in creating correction transaction: ${e}`, - status: 500, + response: `Could not find ${WID_UNLOCK_COUNT} WID token in watcher wallet`, + status: 400, }; + } else { + throw e; } } try { - let tx: wasm.Transaction, - remainingRwt = RWTCount, - remainingUnlock = RWTCount, - feeBox: wasm.ErgoBox | undefined = undefined; - const unlockTxIds: Array = []; - for (const permitBox of permitBoxes) { - const permitRwt = BigInt( - permitBox.tokens().get(0).amount().as_i64().to_str() - ); - const unlockingRwt = - remainingUnlock > permitRwt ? permitRwt : remainingUnlock; - logger.debug( - `Unlocking ${unlockingRwt} locked in permitBox: [${permitBox - .box_id() - .to_str()}], using widBox: [${widBox - .box_id() - .to_str()}] and repoBox: [${repoBox.box_id().to_str()}]` - ); - ({ tx, remainingRwt } = await this.returnPermitTx( - height, - unlockingRwt, - permitBox, - repoBox, - widBox, - WID, - feeBox - )); - repoBox = tx.outputs().get(0); - widBox = tx.outputs().get(1); - feeBox = tx.outputs().len() > 3 ? tx.outputs().get(2) : undefined; - remainingUnlock -= unlockingRwt; - unlockTxIds.push(tx.id().to_str()); - } + const { tx, remainingRwt } = await this.returnPermitTx(RWTCount, widBox); const isAlreadyWatcher = remainingRwt > 0; Transaction.watcherUnconfirmedWID = isAlreadyWatcher ? Transaction.watcherWID : ''; return { - response: unlockTxIds, + response: tx.id().to_str(), status: 200, }; } catch (e) { logger.warn(`Unlock operation exited incomplete by error: ${e.message}`); if (e instanceof NotEnoughFund) { return { - response: `Not enough ERG to complete the unlock operation`, + response: e.message, status: 400, }; } else { @@ -544,21 +509,15 @@ export class Transaction { * CAUTION: this function removed in watcher refactor */ getCollateral = async () => { - const repoBox = await Transaction.boxes.getRepoBox(); - const R6 = repoBox.register_value(6); - if (R6) { - const R6Params = R6.to_js() as Array; - const ErgCollateral = BigInt(R6Params[4]); - const RSNCollateral = BigInt(R6Params[5]); - return { - erg: ErgCollateral, - rsn: RSNCollateral, - }; + const configBox = await Transaction.boxes.getRepoConfigBox(); + const R4 = configBox.register_value(4); + if (R4) { + const r4Values: string[] = R4.to_js(); + if (r4Values.length > 0) { + return { erg: BigInt(r4Values[4]), rsn: BigInt(r4Values[5]) }; + } } - return { - erg: 0n, - rsn: 0n, - }; + throw Error('Invalid repo config box'); }; /** @@ -566,6 +525,15 @@ export class Transaction { * @param RSNCount */ getPermit = async (RSNCount: bigint): Promise => { + const scannerSyncStatus = + await HealthCheckSingleton.getInstance().getErgoScannerSyncHealth(); + if (scannerSyncStatus === HealthStatusLevel.BROKEN) { + return { + response: `Ergo scanner is not synced, please check your connection and wait more`, + status: 400, + }; + } + const activePermitTxs = await Transaction.watcherDatabase.getActivePermitTransactions(); if (activePermitTxs.length !== 0) { @@ -579,12 +547,11 @@ export class Transaction { const repoBox = await Transaction.boxes.getRepoBox(); const R4 = repoBox.register_value(4); const R5 = repoBox.register_value(5); - const R6 = repoBox.register_value(6); const WID = Transaction.watcherWID; // This couldn't happen - if (!R4 || !R5 || !R6) { + if (!R4 || !R5) { return { - response: 'one of registers (4, 5, 6) of repo box is not set', + response: 'one of registers (4, 5) of repo box is not set', status: 500, }; } @@ -614,26 +581,30 @@ export class Transaction { status: 400, }; } - if (WID) { - const widBox = await Transaction.boxes.getWIDBox(WID); - if (widBox.tokens().get(0).id().to_str() != WID) { - await DetachWID.detachWIDtx( - Transaction.txUtils, - Transaction.boxes, - WID, - widBox - ); + let collateralBox: wasm.ErgoBox; + let widCount = 0n; + try { + if (WID) { + collateralBox = await Transaction.boxes.getCollateralBox(WID); + inputBoxes.push(collateralBox); + const widBoxes = await Transaction.boxes.getWIDBox(WID, WID_LOCK_COUNT); + widBoxes.forEach((widBox) => inputBoxes.push(widBox)); + const widBoxIds = widBoxes.map((widBox) => widBox.box_id().to_str()); + userBoxes.boxes.forEach((box) => { + if (!widBoxIds.includes(box.box_id().to_str())) inputBoxes.push(box); + }); + widCount = ErgoUtils.getBoxAssetsSum(widBoxes).filter( + (token) => token.tokenId == WID + )[0].amount; + } else inputBoxes.push(...userBoxes.boxes); + } catch (e) { + if (e instanceof NoWID) return { - response: `WID box is not in valid format (WID token is not the first token), please wait for the correction transaction`, + response: 'Could not find 2 WID tokens in watcher wallet', status: 400, }; - } - inputBoxes.push(widBox); - userBoxes.boxes.forEach((box) => { - if (box.box_id().to_str() != widBox.box_id().to_str()) - inputBoxes.push(box); - }); - } else inputBoxes.push(...userBoxes.boxes); + else throw e; + } // generate RepoOut const RepoRWTCount = repoBox @@ -648,32 +619,53 @@ export class Transaction { .amount() .as_i64() .checked_add(wasm.I64.from_str(RSNCount.toString())); - const inUsers: Array = R4.to_coll_coll_byte(); - const R7 = WID - ? inUsers.map((item) => Buffer.from(item).toString('hex')).indexOf(WID) - : undefined; - const usersOut = WID - ? [...inUsers] - : [...inUsers, repoBox.box_id().as_bytes()]; - const usersCount: Array = R5.to_i64_str_array(); - const usersCountOut = WID - ? usersCount.map((item, index) => - index === R7 ? (BigInt(item) + RSNCount).toString() : item - ) - : [...usersCount, RSNCount.toString()]; - + const AWCTokenCount = BigInt( + repoBox.tokens().get(3).amount().as_i64().to_str() + ); const outBoxes: Array = []; + const watcherCount = Number(R5.to_i64().to_str()); + const chainId = R4.to_byte_array(); + outBoxes.push( await Transaction.boxes.createRepo( height, + repoBox.value().as_i64().to_str(), RepoRWTCount.to_str(), RSNTokenCount.to_str(), - usersOut, - usersCountOut, - R6, - R7 + WID ? AWCTokenCount.toString() : (AWCTokenCount - 1n).toString(), + chainId, + WID ? watcherCount : watcherCount + 1 ) ); + + // generate collateral box + if (!WID) { + outBoxes.push( + await Transaction.boxes.createCollateralBox( + ErgCollateral, + height, + repoBox.box_id().to_str(), + RSNCount, + RSNCollateral + ) + ); + } else { + const collateralRwtCount = BigInt( + collateralBox!.register_value(5)!.to_i64().to_str() + ); + const rsnCollateral = ErgoUtils.getBoxAssetsSum([collateralBox!]).filter( + (token) => token.tokenId == getConfig().rosen.RSN + ); + outBoxes.push( + await Transaction.boxes.createCollateralBox( + ErgoUtils.getBoxValuesSum([collateralBox!]), + height, + WID, + collateralRwtCount + RSNCount, + rsnCollateral.length ? rsnCollateral[0].amount : 0n + ) + ); + } // generate watcherPermit outBoxes.push( await Transaction.boxes.createPermit( @@ -688,28 +680,11 @@ export class Transaction { height, WID ? WID : repoBox.box_id().to_str(), Transaction.minBoxValue.as_i64().to_str(), + widCount ? widCount.toString() : WID_MINT_COUNT.toString(), wasm.Contract.pay_to_address(Transaction.userAddress), !WID ) ); - // generate collateral if required - if (!WID) { - outBoxes.push( - await Transaction.boxes.createCollateralBox( - { - nanoErgs: ErgCollateral, - tokens: [ - { - tokenId: Transaction.RSN.to_str(), - amount: RSNCollateral, - }, - ], - }, - height, - repoBox.box_id().to_str() - ) - ); - } outBoxes.push( this.createChangeBox( inputBoxes, @@ -734,10 +709,17 @@ export class Transaction { Transaction.fee, Transaction.userAddress ); + const repoConfig = await Transaction.boxes.getRepoConfigBox(); + if (!WID) { + const txDataInputs = new wasm.DataInputs(); + txDataInputs.add(new wasm.DataInput(repoConfig.box_id())); + builder.set_data_inputs(txDataInputs); + } const signedTx = await ErgoUtils.buildTxAndSign( builder, Transaction.userSecret, - inBoxes + inBoxes, + new wasm.ErgoBoxes(repoConfig) ); await Transaction.txUtils.submitTransaction(signedTx, TxType.PERMIT); Transaction.watcherUnconfirmedWID = WID ? WID : repoBox.box_id().to_str(); @@ -750,18 +732,12 @@ export class Transaction { static getWatcherState = async () => { if (!Transaction.isSetupCalled) throw new Error("The Transaction class setup doesn't called"); - logger.info('Getting watcher status'); - if (Transaction.watcherPermitState === undefined) { - const repoBox = await Transaction.boxes.getRepoBox(); - const R4 = repoBox.register_value(4); - logger.info(`Repo box id is: ${repoBox.box_id().to_str()}`); - if (R4) { - const users = R4.to_coll_coll_byte(); - Transaction.watcherWID = await Transaction.getWID(users); - logger.info(`Watcher WID is set to: ${Transaction.watcherWID}`); - Transaction.watcherPermitState = Transaction.watcherWID !== ''; - } - } + logger.info('Updating watcher status'); + const allWids = await Transaction.watcherDatabase.getAllWids(); + logger.debug(`All registered wids are ${allWids}`); + Transaction.watcherWID = await Transaction.getWID(allWids); + logger.info(`Watcher WID is set to: ${Transaction.watcherWID}`); + Transaction.watcherPermitState = Transaction.watcherWID !== ''; }; /** diff --git a/src/api/authentication.ts b/src/api/authentication.ts index 822f10b4..25c8c113 100644 --- a/src/api/authentication.ts +++ b/src/api/authentication.ts @@ -1,19 +1,43 @@ import { NextFunction, Request, Response } from 'express'; import { blake2b } from 'blakejs'; import { getConfig } from '../config/config'; -import { uint8ArrayToHex } from '../utils/utils'; +import { + base64ToArrayBuffer, + uint8ArrayToBase64, + uint8ArrayToHex, +} from '../utils/utils'; const authenticateKey = (req: Request, res: Response, next: NextFunction) => { const api_key: string = req.header('Api-Key')!; - if ( - api_key && - uint8ArrayToHex(blake2b(api_key, undefined, 32)) == - getConfig().general.apiKeyHash - ) { + if (api_key && isValidApiKey(api_key)) { next(); } else { res.status(403).send({ message: "Api-Key doesn't exist or it is wrong" }); } }; +/** + * check api_key according to old method (pure hash) and salted hash + * @param api_key + */ +const isValidApiKey = (api_key: string) => { + const isSaltedHash = getConfig().general.apiKeyHash.includes('$'); + let isValidHash: boolean; + if (isSaltedHash) { + const splitSaltedHash = getConfig().general.apiKeyHash.split('$'); + const saltedPass = Buffer.concat([ + base64ToArrayBuffer(splitSaltedHash.at(1)!), + Buffer.from(api_key), + ]); + isValidHash = + uint8ArrayToBase64(blake2b(saltedPass, undefined, 32)) === + splitSaltedHash.at(2); + } else { + isValidHash = + uint8ArrayToHex(blake2b(api_key, undefined, 32)) === + getConfig().general.apiKeyHash; + } + return isValidHash; +}; + export { authenticateKey }; diff --git a/src/api/general.ts b/src/api/general.ts index 6bedc58b..b2cc0ed1 100644 --- a/src/api/general.ts +++ b/src/api/general.ts @@ -5,10 +5,12 @@ import { ErgoUtils } from '../ergo/utils'; import { HealthCheckSingleton } from '../../src/utils/healthCheck'; import { Transaction } from './Transaction'; import WinstonLogger from '@rosen-bridge/winston-logger'; +import packageJson from '../../package.json' assert { type: 'json' }; const logger = WinstonLogger.getInstance().getLogger(import.meta.url); interface GeneralInfo { + version: string; currentBalance: bigint; network: string; permitsPerEvent: bigint; @@ -34,6 +36,7 @@ generalRouter.get('/', async (req: Request, res: Response) => { try { const collateral = await Transaction.getInstance().getCollateral(); const info: GeneralInfo = { + version: packageJson.version, currentBalance: (await ErgoUtils.getWatcherBalance()).nanoErgs, network: getConfig().general.networkWatcher, permitsPerEvent: diff --git a/src/api/permit.ts b/src/api/permit.ts index fec48ba4..4d2b1ebf 100644 --- a/src/api/permit.ts +++ b/src/api/permit.ts @@ -59,7 +59,7 @@ permitRouter.post( BigInt(RWTCount) ); if (response.status === 200) { - res.status(200).send({ txIds: response.response }); + res.status(200).send({ txId: response.response }); } else { res.status(response.status).send({ message: response.response }); } diff --git a/src/config/config.ts b/src/config/config.ts index d0bb44ad..b2801d53 100644 --- a/src/config/config.ts +++ b/src/config/config.ts @@ -15,11 +15,13 @@ import { TransportOptions } from '@rosen-bridge/winston-logger'; const supportedNetworks: Array = [ Constants.ERGO_CHAIN_NAME, Constants.CARDANO_CHAIN_NAME, + Constants.BITCOIN_CHAIN_NAME, ]; interface ConfigType { logger: LoggerConfig; cardano: CardanoConfig; + bitcoin: BitcoinConfig; general: Config; rosen: RosenConfig; token: TokensConfig; @@ -87,6 +89,8 @@ class Config { transactionConfirmation: number; commitmentTimeoutConfirmation: number; transactionCheckingInterval: number; + widStatusCheckInterval: number; + minimumFeeUpdateInterval: number; observationConfirmation: number; observationValidThreshold: number; redeemSwapEnabled: boolean; @@ -176,6 +180,10 @@ class Config { this.transactionCheckingInterval = getRequiredNumber( 'ergo.interval.transaction' ); + this.widStatusCheckInterval = getRequiredNumber('ergo.interval.wid.status'); + this.minimumFeeUpdateInterval = getRequiredNumber( + 'ergo.interval.minimumFee' + ); this.transactionConfirmation = getRequiredNumber( 'ergo.transaction.confirmation' ); @@ -235,7 +243,9 @@ class LoggerConfig { const logTypeValidation = ['console', 'file', 'loki'].includes(log.type); let loggerChecks = true; if (log.type === 'loki') { - const overrideLokiBasicAuth = getOptionalString('overrideLokiBasicAuth'); + const overrideLokiBasicAuth = getOptionalString( + 'overrideLokiBasicAuth' + ); if (overrideLokiBasicAuth !== '') log.basicAuth = overrideLokiBasicAuth; loggerChecks = log.host != undefined && @@ -329,6 +339,43 @@ class CardanoConfig { } } +class BitcoinConfig { + type: string; + initialHeight: number; + esplora?: { + url: string; + timeout: number; + interval: number; + }; + rpc?: { + url: string; + timeout: number; + interval: number; + }; + + constructor(network: string) { + this.type = config.get('bitcoin.type'); + if (network === Constants.BITCOIN_CHAIN_NAME) { + this.initialHeight = getRequiredNumber('bitcoin.initial.height'); + if (this.type === Constants.ESPLORA_TYPE) { + const url = getRequiredString('bitcoin.esplora.url'); + const interval = getRequiredNumber('bitcoin.esplora.interval'); + const timeout = getRequiredNumber('bitcoin.esplora.timeout'); + this.esplora = { url, interval, timeout }; + } else if (this.type == Constants.RPC_TYPE) { + const url = getRequiredString('bitcoin.rpc.url'); + const timeout = getRequiredNumber('bitcoin.rpc.timeout'); + const interval = getRequiredNumber('bitcoin.rpc.interval'); + this.rpc = { url, timeout, interval }; + } else { + throw new Error( + `Improperly configured. bitcoin configuration type is invalid available choices are '${Constants.ESPLORA_TYPE}'` + ); + } + } + } +} + class DatabaseConfig { type: string; path = ''; @@ -363,6 +410,8 @@ class HealthCheckConfig { ergoScannerCriticalDiff: number; cardanoScannerWarnDiff: number; cardanoScannerCriticalDiff: number; + bitcoinScannerWarnDiff: number; + bitcoinScannerCriticalDiff: number; ergoNodeMaxHeightDiff: number; ergoNodeMaxBlockTime: number; ergoNodeMinPeerCount: number; @@ -405,6 +454,12 @@ class HealthCheckConfig { this.cardanoScannerCriticalDiff = getRequiredNumber( 'healthCheck.cardanoScanner.criticalDifference' ); + this.bitcoinScannerWarnDiff = getRequiredNumber( + 'healthCheck.bitcoinScanner.warnDifference' + ); + this.bitcoinScannerCriticalDiff = getRequiredNumber( + 'healthCheck.bitcoinScanner.criticalDifference' + ); this.permitWarnCommitmentCount = getRequiredNumber( 'healthCheck.permit.warnCommitmentCount' ); @@ -426,6 +481,7 @@ const getConfig = (): ConfigType => { const general = new Config(); const logger = new LoggerConfig(); const cardano = new CardanoConfig(general.networkWatcher); + const bitcoin = new BitcoinConfig(general.networkWatcher); const rosen = new RosenConfig( general.networkWatcher, general.networkType, @@ -436,6 +492,7 @@ const getConfig = (): ConfigType => { const healthCheck = new HealthCheckConfig(); internalConfig = { cardano, + bitcoin, logger, general, rosen, diff --git a/src/config/constants.ts b/src/config/constants.ts index 0bb3cda0..b188f0ac 100644 --- a/src/config/constants.ts +++ b/src/config/constants.ts @@ -2,6 +2,9 @@ export const ADDRESS_EXTRACTOR_NAME = 'watcher-address-extractor'; export const PERMIT_EXTRACTOR_NAME = 'watcher-permit-extractor'; export const COMMITMENT_EXTRACTOR_NAME = 'watcher-commitment-extractor'; export const TRIGGER_EXTRACTOR_NAME = 'watcher-trigger-extractor'; +export const COLLATERAL_EXTRACTOR_NAME = 'watcher-collateral-extractor'; +export const ESPLORA_TYPE = 'esplora'; +export const RPC_TYPE = 'rpc'; export const OGMIOS_TYPE = 'ogmios'; export const KOIOS_TYPE = 'koios'; export const BLOCK_FROST_TYPE = 'blockfrost'; @@ -9,6 +12,7 @@ export const NODE_TYPE = 'node'; export const EXPLORER_TYPE = 'explorer'; export const ERGO_CHAIN_NAME = 'ergo'; export const CARDANO_CHAIN_NAME = 'cardano'; +export const BITCOIN_CHAIN_NAME = 'bitcoin'; export const ERGO_NATIVE_ASSET = 'erg'; export const ERGO_DECIMALS = 9; export const DEFAULT_API_LIMIT = 20; @@ -16,3 +20,6 @@ export const MAX_API_LIMIT = 100; export const DOING_STATUS = 'Doing'; export const DONE_STATUS = 'Done'; export const ERGO_NATIVE_ASSET_NAME = 'ERG'; +export const WID_LOCK_COUNT = 2; +export const WID_UNLOCK_COUNT = 2; +export const WID_MINT_COUNT = 3; diff --git a/src/config/rosenConfig.ts b/src/config/rosenConfig.ts index 9e96b007..0d6794ce 100644 --- a/src/config/rosenConfig.ts +++ b/src/config/rosenConfig.ts @@ -16,6 +16,9 @@ type RosenConfigType = { lockAddress: string; RepoNFT: string; RWTId: string; + repoConfigAddress: string; + repoConfigNFT: string; + AWC: string; }; class RosenConfig { @@ -33,6 +36,9 @@ class RosenConfig { readonly lockAddress: string; readonly RepoNFT: string; readonly RWTId: string; + readonly repoConfigAddress: string; + readonly repoConfigNFT: string; + readonly AWC: string; constructor(network: string, networkType: string, configRoot: string) { const rosenConfigPath = this.getAddress(network, networkType, configRoot); @@ -57,6 +63,9 @@ class RosenConfig { this.lockAddress = config.addresses.lock; this.RepoNFT = config.tokens.RepoNFT; this.RWTId = config.tokens.RWTId; + this.repoConfigAddress = config.addresses.RepoConfig; + this.repoConfigNFT = config.tokens.RepoConfigNFT; + this.AWC = config.tokens.AwcNFT; } } diff --git a/src/database/migrations/index.ts b/src/database/migrations/index.ts index 41ca679f..4e1297cd 100644 --- a/src/database/migrations/index.ts +++ b/src/database/migrations/index.ts @@ -4,12 +4,16 @@ import { WatcherMigration1704105342269 } from './postgres/1704105342269-watcherM import { WatcherMigration1700641198429 } from './sqlite/1700641198429-watcherMigration'; import { WatcherMigration1703244614956 } from './sqlite/1703244614956-watcherMigration'; import { WatcherMigration1704105040303 } from './sqlite/1704105040303-watcherMigration'; +import { WatcherMigration1706610773175 } from './sqlite/1706610773175-watcherMigration'; +import { WatcherMigration1706610773177 } from './sqlite/1706610773177-watcherMigration'; export default { sqlite: [ WatcherMigration1700641198429, WatcherMigration1703244614956, WatcherMigration1704105040303, + WatcherMigration1706610773175, + WatcherMigration1706610773177, ], postgres: [ WatcherMigration1700710099334, diff --git a/src/database/migrations/sqlite/1706610773175-watcherMigration.ts b/src/database/migrations/sqlite/1706610773175-watcherMigration.ts new file mode 100644 index 00000000..3585f3be --- /dev/null +++ b/src/database/migrations/sqlite/1706610773175-watcherMigration.ts @@ -0,0 +1,62 @@ +import { MigrationInterface, QueryRunner } from 'typeorm'; + +export class WatcherMigration1706610773175 implements MigrationInterface { + name = 'WatcherMigration1706610773175'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + ` + DELETE FROM "typeorm_metadata" + WHERE "type" = ? + AND "name" = ? + `, + ['VIEW', 'revenue_view'] + ); + await queryRunner.query(` + DROP VIEW "revenue_view" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE VIEW "revenue_view" AS + SELECT "pe"."id" AS "id", + "pe"."WID" AS "wid", + "ete"."sourceChainHeight" AS "lockHeight", + "be"."height" AS "height", + "be"."timestamp" AS "timestamp", + pe."txId" AS "permitTxId", + ete."eventId" AS "eventId", + ete."fromChain" AS "fromChain", + ete."toChain" AS "toChain", + ete."fromAddress" AS "fromAddress", + ete."toAddress" AS "toAddress", + ete."amount" AS "amount", + ete."bridgeFee" AS "bridgeFee", + ete."networkFee" AS "networkFee", + ete."sourceChainTokenId" AS "tokenId", + ete."sourceTxId" AS "lockTxId" + FROM "permit_entity" "pe" + INNER JOIN "event_trigger_entity" "ete" ON pe."txId" = ete."spendTxId" + LEFT JOIN "block_entity" "be" ON "pe"."block" = "be"."hash" +`); + await queryRunner.query( + ` + INSERT INTO "typeorm_metadata"( + "database", + "schema", + "table", + "type", + "name", + "value" + ) + VALUES (NULL, NULL, NULL, ?, ?, ?) + `, + [ + 'VIEW', + 'revenue_view', + 'SELECT "pe"."id" AS "id", "pe"."WID" AS "wid", "ete"."sourceChainHeight" AS "lockHeight", "be"."height" AS "height", "be"."timestamp" AS "timestamp", pe."txId" AS "permitTxId", ete."eventId" AS "eventId", ete."fromChain" AS "fromChain", ete."toChain" AS "toChain", ete."fromAddress" AS "fromAddress", ete."toAddress" AS "toAddress", ete."amount" AS "amount", ete."bridgeFee" AS "bridgeFee", ete."networkFee" AS "networkFee", ete."sourceChainTokenId" AS "tokenId", ete."sourceTxId" AS "lockTxId" FROM "permit_entity" "pe" INNER JOIN "event_trigger_entity" "ete" ON pe."txId" = ete."spendTxId" LEFT JOIN "block_entity" "be" ON "pe"."block" = "be"."hash"', + ] + ); + } +} diff --git a/src/database/migrations/sqlite/1706610773177-watcherMigration.ts b/src/database/migrations/sqlite/1706610773177-watcherMigration.ts new file mode 100644 index 00000000..9e446255 --- /dev/null +++ b/src/database/migrations/sqlite/1706610773177-watcherMigration.ts @@ -0,0 +1,62 @@ +import { MigrationInterface, QueryRunner } from 'typeorm'; + +export class WatcherMigration1706610773177 implements MigrationInterface { + name = 'WatcherMigration1706610773177'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE VIEW "revenue_view" AS + SELECT "pe"."id" AS "id", + "pe"."WID" AS "wid", + "ete"."sourceChainHeight" AS "lockHeight", + "be"."height" AS "height", + "be"."timestamp" AS "timestamp", + pe."txId" AS "permitTxId", + ete."eventId" AS "eventId", + ete."fromChain" AS "fromChain", + ete."toChain" AS "toChain", + ete."fromAddress" AS "fromAddress", + ete."toAddress" AS "toAddress", + ete."amount" AS "amount", + ete."bridgeFee" AS "bridgeFee", + ete."networkFee" AS "networkFee", + ete."sourceChainTokenId" AS "tokenId", + ete."sourceTxId" AS "lockTxId" + FROM "permit_entity" "pe" + INNER JOIN "event_trigger_entity" "ete" ON pe."txId" = ete."spendTxId" + LEFT JOIN "block_entity" "be" ON "pe"."block" = "be"."hash" +`); + await queryRunner.query( + ` + INSERT INTO "typeorm_metadata"( + "database", + "schema", + "table", + "type", + "name", + "value" + ) + VALUES (NULL, NULL, NULL, ?, ?, ?) + `, + [ + 'VIEW', + 'revenue_view', + 'SELECT "pe"."id" AS "id", "pe"."WID" AS "wid", "ete"."sourceChainHeight" AS "lockHeight", "be"."height" AS "height", "be"."timestamp" AS "timestamp", pe."txId" AS "permitTxId", ete."eventId" AS "eventId", ete."fromChain" AS "fromChain", ete."toChain" AS "toChain", ete."fromAddress" AS "fromAddress", ete."toAddress" AS "toAddress", ete."amount" AS "amount", ete."bridgeFee" AS "bridgeFee", ete."networkFee" AS "networkFee", ete."sourceChainTokenId" AS "tokenId", ete."sourceTxId" AS "lockTxId" FROM "permit_entity" "pe" INNER JOIN "event_trigger_entity" "ete" ON pe."txId" = ete."spendTxId" LEFT JOIN "block_entity" "be" ON "pe"."block" = "be"."hash"', + ] + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + ` + DELETE FROM "typeorm_metadata" + WHERE "type" = ? + AND "name" = ? + `, + ['VIEW', 'revenue_view'] + ); + await queryRunner.query(` + DROP VIEW "revenue_view" + `); + } +} diff --git a/src/database/models/watcherModel.ts b/src/database/models/watcherModel.ts index 73ebbbae..b5ba9418 100644 --- a/src/database/models/watcherModel.ts +++ b/src/database/models/watcherModel.ts @@ -1,38 +1,38 @@ +import { BoxEntity } from '@rosen-bridge/address-extractor'; +import { ObservationEntity } from '@rosen-bridge/observation-extractor'; +import { BlockEntity } from '@rosen-bridge/scanner'; +import { PROCEED } from '@rosen-bridge/scanner'; +import { + CollateralEntity, + CommitmentEntity, + EventTriggerEntity, + PermitEntity, +} from '@rosen-bridge/watcher-data-extractor'; +import * as wasm from 'ergo-lib-wasm-nodejs'; import { And, DataSource, In, IsNull, LessThan, - Like, MoreThan, Not, Repository, } from 'typeorm'; -import { ObservationEntity } from '@rosen-bridge/observation-extractor'; -import { TxEntity, TxType } from '../entities/txEntity'; +import { DOING_STATUS, DONE_STATUS } from '../../config/constants'; +import { PagedItemData } from '../../types/items'; +import { EventStatus } from '../../utils/interfaces'; +import { base64ToArrayBuffer } from '../../utils/utils'; import { ObservationStatusEntity, SortedTxStatus, TxStatus, } from '../entities/observationStatusEntity'; -import { BlockEntity } from '@rosen-bridge/scanner'; -import { PROCEED } from '@rosen-bridge/scanner/dist/entities/blockEntity'; -import { - CommitmentEntity, - EventTriggerEntity, - PermitEntity, -} from '@rosen-bridge/watcher-data-extractor'; -import { BoxEntity } from '@rosen-bridge/address-extractor'; -import { base64ToArrayBuffer } from '../../utils/utils'; -import * as wasm from 'ergo-lib-wasm-nodejs'; -import { TokenEntity } from '../entities/tokenEntity'; -import { EventStatus } from '../../utils/interfaces'; -import { DOING_STATUS, DONE_STATUS } from '../../config/constants'; -import { RevenueView } from '../entities/revenueView'; -import { RevenueEntity } from '../entities/revenueEntity'; import { RevenueChartDataView } from '../entities/revenueChartDataView'; -import { PagedItemData } from '../../types/items'; +import { RevenueEntity } from '../entities/revenueEntity'; +import { RevenueView } from '../entities/revenueView'; +import { TokenEntity } from '../entities/tokenEntity'; +import { TxEntity, TxType } from '../entities/txEntity'; class WatcherDataBase { private readonly dataSource: DataSource; @@ -48,6 +48,7 @@ class WatcherDataBase { private readonly revenueView: Repository; private readonly revenueRepository: Repository; private readonly revenueChartView: Repository; + private readonly collateralRepository: Repository; constructor(dataSource: DataSource) { this.dataSource = dataSource; @@ -65,6 +66,7 @@ class WatcherDataBase { this.revenueView = dataSource.getRepository(RevenueView); this.revenueRepository = dataSource.getRepository(RevenueEntity); this.revenueChartView = dataSource.getRepository(RevenueChartDataView); + this.collateralRepository = dataSource.getRepository(CollateralEntity); } /** @@ -91,7 +93,12 @@ class WatcherDataBase { * @param maxConfirmation * @param onlyNotCommitted */ - getConfirmedObservations = async (confirmation: number, height: number, maxConfirmation?: number, onlyNotCommitted = false) => { + getConfirmedObservations = async ( + confirmation: number, + height: number, + maxConfirmation?: number, + onlyNotCommitted = false + ) => { const maxHeight = height - confirmation; const minHeight = height - (maxConfirmation ? maxConfirmation : height); const observations = await this.observationRepository.find({ @@ -103,21 +110,24 @@ class WatcherDataBase { requestId: 'ASC', }, }); - if(onlyNotCommitted){ + if (onlyNotCommitted) { const invalidIds: Set = new Set(); - (await this.observationStatusRepository.find({ - where:{ - observation:{ - id: In(observations.map(item => item.id)) - } - }, - relations: ['observation'] - })).forEach(item => { - if(item.status !== TxStatus.NOT_COMMITTED) invalidIds.add(item.observation.id) - }) - return observations.filter(item => !invalidIds.has(item.id)) + ( + await this.observationStatusRepository.find({ + where: { + observation: { + id: In(observations.map((item) => item.id)), + }, + }, + relations: ['observation'], + }) + ).forEach((item) => { + if (item.status !== TxStatus.NOT_COMMITTED) + invalidIds.add(item.observation.id); + }); + return observations.filter((item) => !invalidIds.has(item.id)); } - return observations + return observations; }; /** @@ -539,22 +549,16 @@ class WatcherDataBase { }; /** - * Returns all commitments with specific wid - * @param wid - * @param offset - * @param limit + * Returns all commitments related with a specific spendTxId + * @param txId */ - commitmentByWID = async ( - wid: string, - offset: number, - limit: number + commitmentsBySpendTxId = async ( + txId: string ): Promise> => { return await this.commitmentRepository.find({ where: { - WID: wid, + spendTxId: txId, }, - take: limit, - skip: offset, }); }; @@ -602,62 +606,6 @@ class WatcherDataBase { }); }; - /** - * Returns Count of all commitments with specific wid - * @param wid - */ - commitmentsByWIDCount = async (wid: string): Promise => { - return await this.commitmentRepository.count({ - where: { - WID: wid, - }, - }); - }; - - /** - * Returns all event triggers that have wid in wids field - * @param wid - */ - eventTriggersByWIDCount = async (wid: string): Promise => { - return await this.eventTriggerRepository.count({ - where: { - WIDs: Like(`%${wid}%`), - }, - }); - }; - - /** - * Returns event triggers count that have wid in wids field - * @param wid - * @param offset - * @param limit - */ - eventTriggersByWID = async ( - wid: string, - offset: number, - limit: number - ): Promise> => { - return await this.eventTriggerRepository.find({ - where: { - WIDs: Like(`%${wid}%`), - }, - take: limit, - skip: offset, - }); - }; - - /** - * Returns all Permits by WID - * @param wid - */ - getPermitBoxesByWID = async (wid: string) => { - return await this.permitRepository.find({ - where: { - WID: wid, - }, - }); - }; - /** * Returns all unspent permit boxes * @param wid @@ -1095,6 +1043,29 @@ class WatcherDataBase { permit, }); }; + + /** + * Return unspent collateral box for wid + * @param wid + */ + getCollateralByWid = async (wid: string): Promise => { + const collateral = await this.collateralRepository.findOne({ + // TODO change wId to wid when new collateral extractor is ready + where: { spendBlock: IsNull(), wid: wid }, + }); + if (collateral) return collateral; + throw new Error(`Could not find a collateral with wid [${wid}]`); + }; + + /** + * Return all WIDs in valid unspent collaterals + */ + getAllWids = async (): Promise => { + const collaterals = await this.collateralRepository.find({ + where: { spendBlock: IsNull() }, + }); + return collaterals.map((collateral) => collateral.wid); + }; } export { WatcherDataBase }; diff --git a/src/ergo/boxes.ts b/src/ergo/boxes.ts index a5085061..d3ad4445 100644 --- a/src/ergo/boxes.ts +++ b/src/ergo/boxes.ts @@ -4,6 +4,7 @@ import { boxHaveAsset, decodeSerializedBox, ErgoUtils, + extractTokens, } from './utils'; import { bigIntToUint8Array, @@ -20,12 +21,15 @@ import { getConfig } from '../config/config'; import { AddressBalance } from './interfaces'; import { JsonBI } from './network/parser'; import WinstonLogger from '@rosen-bridge/winston-logger'; +import { blake2b } from 'blakejs'; const logger = WinstonLogger.getInstance().getLogger(import.meta.url); export class Boxes { dataBase: WatcherDataBase; repoNFTId: wasm.TokenId; + repoConfigNFT: wasm.TokenId; + AWC: wasm.TokenId; RWTTokenId: wasm.TokenId; RSN: wasm.TokenId; watcherPermitContract: wasm.Contract; @@ -35,6 +39,7 @@ export class Boxes { repoAddressContract: wasm.Contract; watcherCollateralContract: wasm.Contract; repoAddress: wasm.Address; + repoConfigAddress: wasm.Address; constructor(db: WatcherDataBase) { const rosenConfig = getConfig().rosen; @@ -42,6 +47,8 @@ export class Boxes { this.repoNFTId = wasm.TokenId.from_str(rosenConfig.RepoNFT); this.RWTTokenId = wasm.TokenId.from_str(rosenConfig.RWTId); this.RSN = wasm.TokenId.from_str(rosenConfig.RSN); + this.AWC = wasm.TokenId.from_str(rosenConfig.AWC); + this.repoConfigNFT = wasm.TokenId.from_str(rosenConfig.repoConfigNFT); const watcherPermitAddress = wasm.Address.from_base58( rosenConfig.watcherPermitAddress ); @@ -57,6 +64,9 @@ export class Boxes { this.watcherCollateralContract = wasm.Contract.pay_to_address( wasm.Address.from_base58(rosenConfig.watcherCollateralAddress) ); + this.repoConfigAddress = wasm.Address.from_base58( + rosenConfig.repoConfigAddress + ); this.fee = wasm.BoxValue.from_i64( wasm.I64.from_str(getConfig().general.fee) ); @@ -131,27 +141,46 @@ export class Boxes { }; /** - * Returns unspent WID boxes with the specified WID (Considering the mempool) + * Returns unspent WID boxes with the specified WID covering the required wid count (Considering the mempool) * @param wid + * @param widCount */ - getWIDBox = async (wid?: string): Promise => { + getWIDBox = async (wid?: string, widCount = 1): Promise => { if (wid) { - const WID = (await this.dataBase.getUnspentAddressBoxes()) + const widBoxes = (await this.dataBase.getUnspentAddressBoxes()) .map((box: BoxEntity) => { return decodeSerializedBox(box.serialized); }) .filter( (box: wasm.ErgoBox) => box.tokens().len() > 0 && boxHaveAsset(box, wid) - )[0]; - if (!WID) + ); + let coveredWidCount = 0n; + const selectedWidBoxes: wasm.ErgoBox[] = []; + const selectedWidBoxIds: Set = new Set(); + for (const widBox of widBoxes) { + const trackedWidBox = await this.dataBase.trackTxQueue( + await ErgoNetwork.trackMemPool(widBox, wid), + wid + ); + if (selectedWidBoxIds.has(trackedWidBox.box_id().to_str())) continue; + selectedWidBoxes.push(trackedWidBox); + selectedWidBoxIds.add(trackedWidBox.box_id().to_str()); + const widBoxTokens = extractTokens(trackedWidBox.tokens()); + const boxWidCount = widBoxTokens + .filter((token) => token.id().to_str() == wid) + .reduce( + (sum, token) => sum + BigInt(token.amount().as_i64().to_str()), + 0n + ); + coveredWidCount += boxWidCount; + if (coveredWidCount >= widCount) break; + } + if (coveredWidCount < widCount) throw new NoWID( 'WID box is not found. Cannot sign the transaction. Please check that the scanner to be synced.' ); - return await this.dataBase.trackTxQueue( - await ErgoNetwork.trackMemPool(WID, wid), - wid - ); + return selectedWidBoxes; } else throw new NoWID('Watcher WID is not set. Cannot sign the transaction.'); }; @@ -276,6 +305,32 @@ export class Boxes { ); }; + /** + * Return latest repo config box from network with tracking mempool transactions + */ + getRepoConfigBox = async (): Promise => { + return await ErgoNetwork.trackMemPool( + await ErgoNetwork.getBoxWithToken( + this.repoConfigAddress, + this.repoConfigNFT.to_str() + ), + this.repoConfigNFT.to_str() + ); + }; + + /** + * Return unspent collateral box for the specified WID (Considering the mempool and txQueue) + * @param wid + */ + getCollateralBox = async (wid: string): Promise => { + const collateralEntity = await this.dataBase.getCollateralByWid(wid); + const collateralBox = decodeSerializedBox(collateralEntity.boxSerialized); + return await this.dataBase.trackTxQueue( + await ErgoNetwork.trackMemPool(collateralBox, this.AWC.to_str()), + this.AWC.to_str() + ); + }; + /** * creates a new permit box with required data * @param height @@ -298,7 +353,7 @@ export class Boxes { wasm.TokenAmount.from_i64(wasm.I64.from_str(RWTCount.toString())) ); } - builder.set_register_value(4, wasm.Constant.from_coll_coll_byte([WID])); + builder.set_register_value(4, wasm.Constant.from_byte_array(WID)); // The R5 register is needed for commitment redeem transaction builder.set_register_value( 5, @@ -338,11 +393,11 @@ export class Boxes { ); builder.set_register_value( 4, - wasm.Constant.from_coll_coll_byte([hexStrToUint8Array(WID)]) + wasm.Constant.from_byte_array(hexStrToUint8Array(WID)) ); builder.set_register_value( 5, - wasm.Constant.from_coll_coll_byte([hexStrToUint8Array(requestId)]) + wasm.Constant.from_byte_array(hexStrToUint8Array(requestId)) ); builder.set_register_value(6, wasm.Constant.from_byte_array(eventDigest)); builder.set_register_value( @@ -395,7 +450,7 @@ export class Boxes { createTriggerEvent = ( value: bigint, height: number, - WIDs: Array, + WIDs: Array, observation: Observation, watcherPermitCount: bigint ) => { @@ -432,9 +487,13 @@ export class Boxes { wasm.Address.from_base58(getConfig().rosen.watcherPermitAddress) ) ); - builder.set_register_value(4, wasm.Constant.from_coll_coll_byte(WIDs)); + const widListHash = Buffer.from( + blake2b(Buffer.from(WIDs.join(''), 'hex'), undefined, 32) + ); + builder.set_register_value(4, wasm.Constant.from_byte_array(widListHash)); builder.set_register_value(5, wasm.Constant.from_coll_coll_byte(eventData)); builder.set_register_value(6, wasm.Constant.from_byte_array(permitHash)); + builder.set_register_value(7, wasm.Constant.from_i32(WIDs.length)); return builder.build(); }; @@ -443,22 +502,21 @@ export class Boxes { * @param height * @param RWTCount * @param RSNCount - * @param users - * @param userRWT - * @param R6 - * @param R7 + * @param AWCCount + * @param chainId + * @param watcherCount */ createRepo = async ( height: number, + value: string, RWTCount: string, RSNCount: string, - users: Array, - userRWT: Array, - R6: wasm.Constant, - R7?: number + AWCCount: string, + chainId: Uint8Array, + watcherCount: number ) => { const repoBuilder = new wasm.ErgoBoxCandidateBuilder( - this.minBoxValue, + wasm.BoxValue.from_i64(wasm.I64.from_str(value)), this.repoAddressContract, height ); @@ -474,14 +532,16 @@ export class Boxes { this.RSN, wasm.TokenAmount.from_i64(wasm.I64.from_str(RSNCount)) ); + repoBuilder.add_token( + this.AWC, + wasm.TokenAmount.from_i64(wasm.I64.from_str(AWCCount)) + ); - repoBuilder.set_register_value(4, wasm.Constant.from_coll_coll_byte(users)); + repoBuilder.set_register_value(4, wasm.Constant.from_byte_array(chainId)); repoBuilder.set_register_value( 5, - wasm.Constant.from_i64_str_array(userRWT) + wasm.Constant.from_i64(wasm.I64.from_str(watcherCount.toString())) ); - repoBuilder.set_register_value(6, R6); - R7 && repoBuilder.set_register_value(7, wasm.Constant.from_i32(R7)); const boxVal = repoBuilder.calc_min_box_value(); logger.debug(`calculated value for repo: [${boxVal.as_i64().to_str()}]`); if (boxVal > this.minBoxValue) repoBuilder.set_value(boxVal); @@ -499,6 +559,7 @@ export class Boxes { height: number, WID: string, ergAmount: string, + widCount: string, contract?: wasm.Contract, issueNewWID = false ): wasm.ErgoBoxCandidate => { @@ -513,14 +574,18 @@ export class Boxes { ); WIDBuilder.add_token( wasm.TokenId.from_str(WID), - wasm.TokenAmount.from_i64(wasm.I64.from_str('1')) + wasm.TokenAmount.from_i64(wasm.I64.from_str(widCount)) ); if (issueNewWID) { const address = getConfig().general.address; WIDBuilder.set_register_value( 4, wasm.Constant.from_byte_array( - strToUint8Array(`WID-${address.substring(address.length - 7)}`) + strToUint8Array( + `WID-${WID.substring(WID.length - 5)}-${address.substring( + address.length - 7 + )}` + ) ) ); WIDBuilder.set_register_value( @@ -568,28 +633,44 @@ export class Boxes { return boxBuilder.build(); }; + /** + * Return a new collateral box with required parameters + * @param value + * @param height + * @param wid + * @param rwtCount + * @param rsnCount + * @returns + */ createCollateralBox = ( - amount: AddressBalance, + value: bigint, height: number, - wid: string + wid: string, + rwtCount: bigint, + rsnCount: bigint ) => { const boxBuilder = new wasm.ErgoBoxCandidateBuilder( - wasm.BoxValue.from_i64(wasm.I64.from_str(amount.nanoErgs.toString())), + wasm.BoxValue.from_i64(wasm.I64.from_str(value.toString())), this.watcherCollateralContract, height ); - for (const token of amount.tokens) { - if (token.amount > 0n) { - boxBuilder.add_token( - wasm.TokenId.from_str(token.tokenId), - wasm.TokenAmount.from_i64(wasm.I64.from_str(token.amount.toString())) - ); - } - } + boxBuilder.add_token( + this.AWC, + wasm.TokenAmount.from_i64(wasm.I64.from_str('1')) + ); + if (rsnCount) + boxBuilder.add_token( + this.RSN, + wasm.TokenAmount.from_i64(wasm.I64.from_str(rsnCount.toString())) + ); boxBuilder.set_register_value( 4, wasm.Constant.from_byte_array(Buffer.from(wid, 'hex')) ); + boxBuilder.set_register_value( + 5, + wasm.Constant.from_i64(wasm.I64.from_str(rwtCount.toString())) + ); return boxBuilder.build(); }; } diff --git a/src/ergo/utils.ts b/src/ergo/utils.ts index 3590ddb8..59646604 100644 --- a/src/ergo/utils.ts +++ b/src/ergo/utils.ts @@ -316,19 +316,26 @@ export class ErgoUtils { }; /** - * returns the required number of commitments to merge creating an event trigger + * returns the required number of commitments for creating a new event trigger + * read configs from repoConfig box and uses the repo box to find the total number of registered watchers * @param repo + * @param repoConfig */ - static requiredCommitmentCount = (repo: wasm.ErgoBox): bigint => { - const R6 = repo.register_value(6); - const R4 = repo.register_value(4); - if (!R6 || !R4) throw new Error('Bad Repo Box response'); - const r6: Array = R6.to_i64_str_array(); - const r4 = R4.to_coll_coll_byte(); - const max = BigInt(r6[3]); - const min = BigInt(r6[2]); - const percentage = parseInt(r6[1]); - const watcherCount = r4.length; + static requiredCommitmentCount = ( + repo: wasm.ErgoBox, + repoConfig: wasm.ErgoBox + ): bigint => { + const R5 = repo.register_value(5); + const configRegister = repoConfig.register_value(4); + if (!R5 || !configRegister) + throw new Error( + 'rwtRepo or repoConfig registers is not in a valid format' + ); + const configs = configRegister.to_i64_str_array(); + const max = BigInt(configs[3]); + const min = BigInt(configs[2]); + const percentage = parseInt(configs[1]); + const watcherCount = Number(R5.to_i64().to_str()); const formula = min + BigInt(Math.ceil((percentage * (watcherCount - 1)) / 100)); return max < formula ? max : formula; diff --git a/src/index.ts b/src/index.ts index 3f56926c..821404fc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,10 @@ import './bootstrap'; import init from './init'; +process.on('unhandledRejection', (reason, promise) => { + console.log('Unhandled Rejection at:', promise, 'reason:', reason); +}); + if (process.env.NODE_ENV === undefined || process.env.NODE_ENV !== 'test') { init().then(() => null); } diff --git a/src/init.ts b/src/init.ts index beb6ce23..bafd02a4 100644 --- a/src/init.ts +++ b/src/init.ts @@ -13,8 +13,6 @@ import { reveal } from './jobs/commitmentReveal'; import { transactionQueueJob } from './jobs/transactionQueue'; import { delay } from './utils/utils'; import { TransactionUtils, WatcherUtils } from './utils/watcherUtils'; -import Statistics from './statistics/statistics'; -import { statisticsRouter } from './statistics/apis'; import { getConfig } from './config/config'; import { redeem } from './jobs/commitmentRedeem'; import { tokenNameJob } from './jobs/tokenName'; @@ -26,6 +24,9 @@ import { healthCheckJob } from './jobs/healthCheck'; import { healthRouter } from './api/healthCheck'; import cors from 'cors'; import WinstonLogger from '@rosen-bridge/winston-logger'; +import { widStatusJob } from './jobs/widStatus'; +import MinimumFeeHandler from './utils/MinimumFeeHandler'; +import { minimumFeeUpdateJob } from './jobs/minimumFee'; const logger = WinstonLogger.getInstance().getLogger(import.meta.url); @@ -68,7 +69,6 @@ const init = async () => { const router = Router(); router.use('/address', addressRouter); router.use('/permit', permitRouter); - router.use('/statistics', statisticsRouter); router.use('/observation', observationRouter); router.use('/info', generalRouter); router.use('/events', eventsRouter); @@ -97,9 +97,10 @@ const init = async () => { getConfig().general.observationValidThreshold ); const txUtils = new TransactionUtils(watcherDatabase); + + await MinimumFeeHandler.init(getConfig().token.tokens); + minimumFeeUpdateJob(); logger.debug('Initializing statistic object...'); - Statistics.setup(watcherDatabase, Transaction.watcherWID); - Statistics.getInstance(); await Transaction.setup( getConfig().general.address, getConfig().general.secretKey, @@ -109,6 +110,8 @@ const init = async () => { Transaction.getInstance(); logger.debug('Initializing job threads...'); + // Starting HealthCheck jobs + healthCheckJob(boxesObject); // Running transaction checking thread transactionQueueJob(watcherDatabase, watcherUtils); // Running commitment creation thread @@ -121,8 +124,8 @@ const init = async () => { tokenNameJob([]); // Running revenue thread revenueJob(); - // Starting HealthCheck jobs - healthCheckJob(boxesObject); + // Starting WID status jobs + widStatusJob(); logger.debug('Service initialization finished successfully.'); }) diff --git a/src/jobs/commitmentCreation.ts b/src/jobs/commitmentCreation.ts index cd5db5bf..b751895a 100644 --- a/src/jobs/commitmentCreation.ts +++ b/src/jobs/commitmentCreation.ts @@ -1,9 +1,11 @@ -import { CommitmentCreation } from '../transactions/commitmentCreation'; +import { HealthStatusLevel } from '@rosen-bridge/health-check'; +import WinstonLogger from '@rosen-bridge/winston-logger'; +import { getConfig } from '../config/config'; import { Boxes } from '../ergo/boxes'; +import { CommitmentCreation } from '../transactions/commitmentCreation'; import { TransactionUtils, WatcherUtils } from '../utils/watcherUtils'; -import { getConfig } from '../config/config'; -import WinstonLogger from '@rosen-bridge/winston-logger'; import { redeemJob } from './commitmentRedeem'; +import { HealthCheckSingleton } from '../utils/healthCheck'; const logger = WinstonLogger.getInstance().getLogger(import.meta.url); @@ -12,10 +14,18 @@ let redeemExecuted = false; const creationJob = async () => { try { - await commitmentCreatorObj.job(); - if (!redeemExecuted) { - redeemExecuted = true; - redeemJob(); + const scannerSyncStatus = + await HealthCheckSingleton.getInstance().getErgoScannerSyncHealth(); + if (scannerSyncStatus !== HealthStatusLevel.BROKEN) { + await commitmentCreatorObj.job(); + if (!redeemExecuted) { + redeemExecuted = true; + redeemJob(); + } + } else { + logger.info( + 'Scanner is not synced with network, skipping commitment creation job' + ); } } catch (e) { logger.warn(`Creation Job failed with error: ${e.message} - ${e.stack}`); diff --git a/src/jobs/commitmentRedeem.ts b/src/jobs/commitmentRedeem.ts index cadaaa6b..61e52f57 100644 --- a/src/jobs/commitmentRedeem.ts +++ b/src/jobs/commitmentRedeem.ts @@ -2,7 +2,9 @@ import { CommitmentRedeem } from '../transactions/commitmentRedeem'; import { Boxes } from '../ergo/boxes'; import { TransactionUtils, WatcherUtils } from '../utils/watcherUtils'; import { getConfig } from '../config/config'; +import { HealthCheckSingleton } from '../utils/healthCheck'; import WinstonLogger from '@rosen-bridge/winston-logger'; +import { HealthStatusLevel } from '@rosen-bridge/health-check'; const logger = WinstonLogger.getInstance().getLogger(import.meta.url); @@ -10,9 +12,17 @@ let commitmentRedeemObj: CommitmentRedeem; const redeemJob = async () => { try { - await commitmentRedeemObj.job(); - if (getConfig().general.redeemSwapEnabled) { - await commitmentRedeemObj.deadlockJob(); + const scannerSyncStatus = + await HealthCheckSingleton.getInstance().getErgoScannerSyncHealth(); + if (scannerSyncStatus !== HealthStatusLevel.BROKEN) { + await commitmentRedeemObj.job(); + if (getConfig().general.redeemSwapEnabled) { + await commitmentRedeemObj.deadlockJob(); + } + } else { + logger.info( + 'Scanner is not synced with network, skipping commitment redeem job' + ); } } catch (e) { logger.warn(`Redeem Job failed with error: ${e.message} - ${e.stack}`); diff --git a/src/jobs/commitmentReveal.ts b/src/jobs/commitmentReveal.ts index 6455e73f..0901b0bc 100644 --- a/src/jobs/commitmentReveal.ts +++ b/src/jobs/commitmentReveal.ts @@ -1,8 +1,10 @@ -import { CommitmentReveal } from '../transactions/commitmentReveal'; +import { HealthStatusLevel } from '@rosen-bridge/health-check'; +import WinstonLogger from '@rosen-bridge/winston-logger'; +import { getConfig } from '../config/config'; import { Boxes } from '../ergo/boxes'; +import { CommitmentReveal } from '../transactions/commitmentReveal'; import { TransactionUtils, WatcherUtils } from '../utils/watcherUtils'; -import { getConfig } from '../config/config'; -import WinstonLogger from '@rosen-bridge/winston-logger'; +import { HealthCheckSingleton } from '../utils/healthCheck'; const logger = WinstonLogger.getInstance().getLogger(import.meta.url); @@ -10,7 +12,15 @@ let commitmentRevealingObj: CommitmentReveal; const revealJob = async () => { try { - await commitmentRevealingObj.job(); + const scannerSyncStatus = + await HealthCheckSingleton.getInstance().getErgoScannerSyncHealth(); + if (scannerSyncStatus !== HealthStatusLevel.BROKEN) { + await commitmentRevealingObj.job(); + } else { + logger.info( + 'Scanner is not synced with network, skipping trigger creation job' + ); + } } catch (e) { logger.warn(`Reveal Job failed with error: ${e.message} - ${e.stack}`); } diff --git a/src/jobs/healthCheck.ts b/src/jobs/healthCheck.ts index 04334722..fc940333 100644 --- a/src/jobs/healthCheck.ts +++ b/src/jobs/healthCheck.ts @@ -10,13 +10,15 @@ const logger = WinstonLogger.getInstance().getLogger(import.meta.url); * @param boxes */ const updatePermitCheckThreshold = async (boxes: Boxes) => { - const repoBox = await boxes.getRepoBox(); - const R6 = repoBox.register_value(6); - if (!R6) { - logger.warn('incorrect repo box format, repo R6 register is undefined.'); + const repoBox = await boxes.getRepoConfigBox(); + const R4 = repoBox.register_value(4); + if (!R4) { + logger.warn( + 'incorrect repo config box format, repo config R4 register is undefined.' + ); return; } - const commitmentRwt = BigInt(R6.to_i64_str_array()[0]); + const commitmentRwt = BigInt(R4.to_i64_str_array()[0]); if ( HealthCheckSingleton.getInstance().checkIfPermitCheckExists(commitmentRwt) ) { diff --git a/src/jobs/initScanner.ts b/src/jobs/initScanner.ts index 231bdd90..e4bf51df 100644 --- a/src/jobs/initScanner.ts +++ b/src/jobs/initScanner.ts @@ -4,7 +4,8 @@ import { CardanoOgmiosScanner, GeneralScanner, } from '@rosen-bridge/scanner'; - +import { BitcoinEsploraScanner } from '@rosen-bridge/bitcoin-esplora-scanner'; +import { BitcoinRpcScanner } from '@rosen-bridge/bitcoin-rpc-scanner'; import * as Constants from '../config/constants'; import { getConfig } from '../config/config'; import { scanner } from '../utils/scanner'; @@ -26,9 +27,9 @@ const scanningJob = async (interval: number, scanner: GeneralScanner) => { export const scannerInit = () => { const allConfig = getConfig(); const config = allConfig.general; - const cardanoConfig = allConfig.cardano; scanningJob(config.ergoInterval, scanner.ergoScanner).then(() => null); if (config.networkWatcher === Constants.CARDANO_CHAIN_NAME) { + const cardanoConfig = allConfig.cardano; if (cardanoConfig.ogmios) (scanner.observationScanner as CardanoOgmiosScanner).start(); else if (cardanoConfig.koios) { @@ -46,6 +47,23 @@ export const scannerInit = () => { `The observing network [${config.networkWatcher}] is not supported` ); } + } else if (config.networkWatcher === Constants.BITCOIN_CHAIN_NAME) { + const bitcoinConfig = allConfig.bitcoin; + if (bitcoinConfig.esplora) { + scanningJob( + bitcoinConfig.esplora.interval, + scanner.observationScanner as BitcoinEsploraScanner + ).then(() => null); + } else if (bitcoinConfig.rpc) { + scanningJob( + bitcoinConfig.rpc.interval, + scanner.observationScanner as BitcoinRpcScanner + ).then(() => null); + } else { + throw new Error( + `The observing network [${config.networkWatcher}] is not supported` + ); + } } // TODO: Add commitment cleanup job diff --git a/src/jobs/minimumFee.ts b/src/jobs/minimumFee.ts new file mode 100644 index 00000000..ce69b12b --- /dev/null +++ b/src/jobs/minimumFee.ts @@ -0,0 +1,26 @@ +import WinstonLogger from '@rosen-bridge/winston-logger'; +import MinimumFeeHandler from '../utils/MinimumFeeHandler'; +import { getConfig } from '../config/config'; + +const logger = WinstonLogger.getInstance().getLogger(import.meta.url); + +/** + * runs MinimumFee update job + */ +export const minimumFeeUpdateJob = () => { + MinimumFeeHandler.getInstance() + .update() + .then(() => + setTimeout( + minimumFeeUpdateJob, + getConfig().general.minimumFeeUpdateInterval * 1000 + ) + ) + .catch((e) => { + logger.error(`Minimum fee update job failed with error: ${e}`); + setTimeout( + minimumFeeUpdateJob, + getConfig().general.minimumFeeUpdateInterval * 1000 + ); + }); +}; diff --git a/src/jobs/widStatus.ts b/src/jobs/widStatus.ts new file mode 100644 index 00000000..e1f5b174 --- /dev/null +++ b/src/jobs/widStatus.ts @@ -0,0 +1,30 @@ +import WinstonLogger from '@rosen-bridge/winston-logger'; +import { Transaction } from '../api/Transaction'; +import { getConfig } from '../config/config'; + +const logger = WinstonLogger.getInstance().getLogger(import.meta.url); + +/** + * checks wid status periodically + * + * @return {Promise} + */ +const widStatusCheck = async (): Promise => { + try { + await Transaction.getWatcherState(); + } catch (e) { + logger.warn( + `widStatusCheck Job failed with error: ${e.message} - ${e.stack}` + ); + } + setTimeout(widStatusCheck, getConfig().general.widStatusCheckInterval * 1000); +}; + +/** + * starts the wid status checking job + * + * @export + */ +export const widStatusJob = () => { + widStatusCheck(); +}; diff --git a/src/statistics/apis.ts b/src/statistics/apis.ts deleted file mode 100644 index e7dd9441..00000000 --- a/src/statistics/apis.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Request, Response, Router } from 'express'; -import Statistics from './statistics'; - -const statisticsRouter = Router(); - -statisticsRouter.get('', async (req: Request, res: Response) => { - try { - const statistics = Statistics.getInstance(); - const ergsAndFee = await statistics.getErgsAndFee(); - const commitmentsCount = await statistics.getCommitmentsCount(); - const eventTriggersCount = await statistics.getEventTriggersCount(); - const fee: { [token: string]: string } = {}; - for (const key in ergsAndFee.tokens) { - fee[key] = ergsAndFee.tokens[key].toString(); - } - res.status(200).send({ - ergs: ergsAndFee.ergs.toString(), - commitmentsCount: commitmentsCount, - eventTriggersCount: eventTriggersCount, - fee: fee, - }); - } catch (e) { - res.status(500).send({ message: e.message }); - } -}); - -statisticsRouter.get('/commitments', async (req: Request, res: Response) => { - try { - const statistics = Statistics.getInstance(); - const offset = Number(req.query.offset); - const limit = Number(req.query.limit); - const commitments = await statistics.getCommitments(offset, limit); - res.status(200).send(commitments); - } catch (e) { - res.status(500).send({ message: e.message }); - } -}); - -statisticsRouter.get('/eventTriggers', async (req: Request, res: Response) => { - try { - const statistics = Statistics.getInstance(); - const offset = Number(req.query.offset); - const limit = Number(req.query.limit); - const eventTriggers = await statistics.getEventTriggers(offset, limit); - res.status(200).send(eventTriggers); - } catch (e) { - res.status(500).send({ message: e.message }); - } -}); - -export { statisticsRouter }; diff --git a/src/statistics/statistics.ts b/src/statistics/statistics.ts deleted file mode 100644 index 76abce65..00000000 --- a/src/statistics/statistics.ts +++ /dev/null @@ -1,150 +0,0 @@ -import { WatcherDataBase } from '../database/models/watcherModel'; -import { base64ToArrayBuffer } from '../utils/utils'; -import * as wasm from 'ergo-lib-wasm-nodejs'; -import { getConfig } from '../config/config'; - -class Statistics { - private static instance: Statistics; - private static database: WatcherDataBase | undefined; - private static watcherWID: string | undefined; - private static isSetupCalled = false; - - /** - * Setup function that class should setup before getting instance - * @param db - * @param wid - */ - static setup = (db: WatcherDataBase, wid?: string) => { - if (!Statistics.instance) { - Statistics.database = db; - Statistics.watcherWID = wid; - Statistics.isSetupCalled = true; - } - }; - - /** - * Singleton Instance of the statistics class that get watcherDatabase and watcher WID if sets(tests) - */ - static getInstance = () => { - if (!Statistics.instance) { - if (Statistics.isSetupCalled) Statistics.instance = new Statistics(); - else throw new Error("Setup doesn't called for Statistics"); - } - return Statistics.instance; - }; - - /** - * Getting watcher WID - */ - getWID = () => { - if (Statistics.watcherWID === undefined) { - throw new Error("Watcher doesn't have any WID to see statistics"); - } - return Statistics.watcherWID; - }; - - /** - * Getting watcher received ergs and fees - */ - getErgsAndFee = async () => { - const WID = this.getWID(); - const permits = await Statistics.database!.getPermitBoxesByWID(WID); - let ergs = 0n; - const tokens: { [tokenId: string]: bigint } = {}; - permits.forEach((permit) => { - const box = wasm.ErgoBox.sigma_parse_bytes( - base64ToArrayBuffer(permit.boxSerialized) - ); - ergs += - BigInt(box.value().as_i64().to_str()) - - BigInt(getConfig().general.minBoxValue); - for (let i = 0; i < box.tokens().len(); i++) { - const token = box.tokens().get(i); - const tokenId = token.id().to_str(); - const amount = BigInt(token.amount().as_i64().to_str()); - if (!Object.hasOwnProperty.call(tokens, tokenId)) { - tokens[tokenId] = amount; - } else { - tokens[tokenId] += amount; - } - } - }); - return { ergs: ergs, tokens: tokens }; - }; - - /** - * Getting watcher commitments count - */ - getCommitmentsCount = async () => { - const WID = this.getWID(); - return await Statistics.database!.commitmentsByWIDCount(WID); - }; - - /** - * Getting watcher eventTriggers count - */ - getEventTriggersCount = async () => { - const WID = this.getWID(); - return await Statistics.database!.eventTriggersByWIDCount(WID); - }; - - /** - * getting watcher commitments by page - * @param offset - * @param limit - */ - getCommitments = async (offset = 0, limit = 10) => { - const WID = this.getWID(); - const commitments = await Statistics.database!.commitmentByWID( - WID, - offset, - limit - ); - return commitments.map((commitment) => { - return { - eventId: commitment.eventId, - boxId: commitment.boxId, - block: commitment.block, - height: commitment.height, - spendBlock: commitment.spendBlock, - spendHeight: commitment.spendHeight, - }; - }); - }; - - /** - * getting watcher eventTriggers by page - * @param offset - * @param limit - */ - getEventTriggers = async (offset = 0, limit = 10) => { - const WID = this.getWID(); - const eventTriggers = await Statistics.database!.eventTriggersByWID( - WID, - offset, - limit - ); - return eventTriggers.map((event) => { - return { - boxId: event.boxId, - block: event.block, - height: event.height, - fromChain: event.fromChain, - toChain: event.toChain, - fromAddress: event.fromAddress, - toAddress: event.toAddress, - amount: event.amount, - bridgeFee: event.bridgeFee, - networkFee: event.networkFee, - sourceChainTokenId: event.sourceChainTokenId, - targetChainTokenId: event.targetChainTokenId, - sourceTxId: event.sourceTxId, - sourceBlockId: event.sourceBlockId, - spendBlock: event.spendBlock, - spendHeight: event.spendHeight, - }; - }); - }; -} - -export default Statistics; diff --git a/src/transactions/commitmentCreation.ts b/src/transactions/commitmentCreation.ts index 285ae7b2..7da8b121 100644 --- a/src/transactions/commitmentCreation.ts +++ b/src/transactions/commitmentCreation.ts @@ -55,9 +55,10 @@ export class CommitmentCreation { wasm.Address.from_base58(getConfig().rosen.watcherPermitAddress) ) ); - const RWTRepo = await this.boxes.getRepoBox(); - const R6 = RWTRepo.register_value(6)?.to_js() as Array; - const requiredRWTCount = BigInt(R6[0]); + const repoConfigBox = await this.boxes.getRepoConfigBox(); + const requiredRWTCount = BigInt( + (repoConfigBox.register_value(4)?.to_js() as Array)[0] + ); const outCommitment = this.boxes.createCommitment( height, requiredRWTCount, @@ -98,10 +99,14 @@ export class CommitmentCreation { BigInt(getConfig().general.minBoxValue) ) throw new NotEnoughFund(); + const widCount = ErgoUtils.getBoxAssetsSum(allInputs).filter( + (token) => token.tokenId == WID + )[0].amount; const outWIDBox = this.boxes.createWIDBox( height, WID, - (totalValue - requiredValue).toString() + (totalValue - requiredValue).toString(), + widCount.toString() ); candidates.push(outWIDBox); } @@ -161,14 +166,7 @@ export class CommitmentCreation { box.box_id().to_str() )}]` ); - let WIDBox = await this.boxes.getWIDBox(WID); - if (WIDBox.tokens().get(0).id().to_str() != WID) { - logger.info( - 'WID Token is not the first token in WID Box, trying to detach WID token.' - ); - await DetachWID.detachWIDtx(this.txUtils, this.boxes, WID, WIDBox); - WIDBox = await this.boxes.getWIDBox(WID); - } + const WIDBox = (await this.boxes.getWIDBox(WID))[0]; const totalValue = ErgoUtils.getBoxValuesSum([...permits, WIDBox]); logger.info( `Using WID Box [${WIDBox.box_id().to_str()}] in commitment creation tx` diff --git a/src/transactions/commitmentRedeem.ts b/src/transactions/commitmentRedeem.ts index 494ea69d..7f1d1ffb 100644 --- a/src/transactions/commitmentRedeem.ts +++ b/src/transactions/commitmentRedeem.ts @@ -73,10 +73,14 @@ export class CommitmentRedeem { BigInt(getConfig().general.minBoxValue) ) throw new NotEnoughFund(); + const widCount = ErgoUtils.getBoxAssetsSum(allInputs).filter( + (token) => token.tokenId == WID + )[0].amount; const outWIDBox = this.boxes.createWIDBox( height, WID, - (totalValue - requiredValue).toString() + (totalValue - requiredValue).toString(), + widCount.toString() ); candidates.push(outWIDBox); } @@ -119,9 +123,12 @@ export class CommitmentRedeem { logger.warn('Watcher WID is not set. Cannot run commitment redeem job.'); return; } - const commitments = [...await this.watcherUtils.allTimeoutCommitments( - this.redeemConfirmation - ), ...await this.watcherUtils.allTriggeredInvalidCommitments()]; + const commitments = [ + ...(await this.watcherUtils.allTimeoutCommitments( + this.redeemConfirmation + )), + ...(await this.watcherUtils.allTriggeredInvalidCommitments()), + ]; const WID = Transaction.watcherWID; logger.info(`Starting commitment redeem job`); for (const commitment of commitments) { @@ -135,14 +142,7 @@ export class CommitmentRedeem { continue; } try { - let WIDBox = await this.boxes.getWIDBox(WID); - if (WIDBox.tokens().get(0).id().to_str() != WID) { - logger.info( - 'WID Token is not the first token in WID Box, trying to detach WID token.' - ); - await DetachWID.detachWIDtx(this.txUtils, this.boxes, WID, WIDBox); - WIDBox = await this.boxes.getWIDBox(WID); - } + const WIDBox = (await this.boxes.getWIDBox(WID))[0]; logger.info(`Using WID Box [${WIDBox.box_id().to_str()}]`); const requiredValue = BigInt(getConfig().general.fee) + @@ -213,14 +213,7 @@ export class CommitmentRedeem { const commitment = await this.watcherUtils.lastCommitment(); logger.info(`Redeeming last commitment with boxId [${commitment.boxId}]`); const WID = Transaction.watcherWID; - let WIDBox = await this.boxes.getWIDBox(WID); - if (WIDBox.tokens().get(0).id().to_str() != WID) { - logger.info( - 'WID Token is not the first token in WID Box, trying to detach WID token.' - ); - await DetachWID.detachWIDtx(this.txUtils, this.boxes, WID, WIDBox); - WIDBox = await this.boxes.getWIDBox(WID); - } + const WIDBox = (await this.boxes.getWIDBox(WID))[0]; logger.info(`Using WID Box [${WIDBox.box_id().to_str()}]`); const requiredValue = BigInt(getConfig().general.fee) + diff --git a/src/transactions/commitmentReveal.ts b/src/transactions/commitmentReveal.ts index 151d0617..ad68efda 100644 --- a/src/transactions/commitmentReveal.ts +++ b/src/transactions/commitmentReveal.ts @@ -38,11 +38,17 @@ export class CommitmentReveal { triggerEventCreationTx = async ( commitmentBoxes: Array, RWTRepoBox: wasm.ErgoBox, + repoConfigBox: wasm.ErgoBox, observation: ObservationEntity, - WIDs: Array, + WIDs: Array, feeBoxes: Array ) => { - const allInputs = [...commitmentBoxes, RWTRepoBox, ...feeBoxes]; + const allInputs = [ + ...commitmentBoxes, + repoConfigBox, + RWTRepoBox, + ...feeBoxes, + ]; const height = await ErgoNetwork.getMaxHeight(allInputs); const boxValues = commitmentBoxes .map((box) => BigInt(box.value().as_i64().to_str())) @@ -63,12 +69,14 @@ export class CommitmentReveal { .forEach((box) => inputBoxes.add(box)); feeBoxes.forEach((box) => inputBoxes.add(box)); try { + const dataInputs = new wasm.ErgoBoxes(repoConfigBox); + dataInputs.add(RWTRepoBox); const signed = await ErgoUtils.createAndSignTx( getConfig().general.secretKey, inputBoxes, [triggerEvent], height, - new wasm.ErgoBoxes(RWTRepoBox) + dataInputs ); await this.txUtils.submitTransaction(signed, TxType.TRIGGER, observation); logger.info(`Trigger event created with txId [${signed.id().to_str()}]`); @@ -117,41 +125,43 @@ export class CommitmentReveal { for (const commitmentSet of commitmentSets) { try { const RWTRepoBox = await this.boxes.getRepoBox(); + const repoConfigBox = await this.boxes.getRepoConfigBox(); const requiredRWTCount = BigInt( - (RWTRepoBox.register_value(6)?.to_js() as Array)[0] + (repoConfigBox.register_value(4)?.to_js() as Array)[0] ); const validCommitments = this.commitmentCheck( commitmentSet.commitments, commitmentSet.observation, requiredRWTCount ); - const requiredCommitments = - ErgoUtils.requiredCommitmentCount(RWTRepoBox); + const requiredCommitments = ErgoUtils.requiredCommitmentCount( + RWTRepoBox, + repoConfigBox + ); logger.info( `Valid commitments: [${validCommitments.length}/${ requiredCommitments + 1n }]` ); if (BigInt(validCommitments.length) > requiredCommitments) { - const commitmentBoxes = validCommitments.map(async (commitment) => { - return await ErgoNetwork.unspentErgoBoxById(commitment.boxId); - }); - await Promise.all(commitmentBoxes).then(async (cBoxes) => { - const WIDs: Array = validCommitments.map( - (commitment) => { - return Buffer.from(commitment.WID, 'hex'); - } - ); - await this.triggerEventCreationTx( - cBoxes, - RWTRepoBox, - commitmentSet.observation, - WIDs, - await this.boxes.getUserPaymentBox( - BigInt(getConfig().general.fee) * 2n - ) - ); - }); + const commitmentBoxes = await Promise.all( + validCommitments.map(async (commitment) => { + return await ErgoNetwork.unspentErgoBoxById(commitment.boxId); + }) + ); + const WIDs: Array = validCommitments.map( + (commitment) => commitment.WID + ); + await this.triggerEventCreationTx( + commitmentBoxes, + RWTRepoBox, + repoConfigBox, + commitmentSet.observation, + WIDs, + await this.boxes.getUserPaymentBox( + BigInt(getConfig().general.fee) * 2n + ) + ); } } catch (e) { logger.warn( diff --git a/src/transactions/detachWID.ts b/src/transactions/detachWID.ts index e23d4843..db54238d 100644 --- a/src/transactions/detachWID.ts +++ b/src/transactions/detachWID.ts @@ -26,21 +26,31 @@ class DetachWID { txUtils: TransactionUtils, boxes: Boxes, WID: string, - WIDBox: wasm.ErgoBox + WIDBoxes: wasm.ErgoBox[] ) => { const height = await ErgoNetwork.getHeight(); - const inputBoxes = new wasm.ErgoBoxes(WIDBox); + const inputBoxes = new wasm.ErgoBoxes(WIDBoxes[0]); + WIDBoxes.slice(1).forEach((box) => inputBoxes.add(box)); const candidates = []; try { const fee = BigInt(getConfig().general.fee); const minBoxValue = BigInt(getConfig().general.minBoxValue); - if (WIDBox.value().as_i64().as_num() < fee + minBoxValue) { - const feeBoxes = await boxes.getUserPaymentBox(fee + minBoxValue, [ - WIDBox.box_id().to_str(), - ]); + if (ErgoUtils.getBoxValuesSum(WIDBoxes) < fee + minBoxValue) { + const feeBoxes = await boxes.getUserPaymentBox( + fee + minBoxValue, + WIDBoxes.map((box) => box.box_id().to_str()) + ); feeBoxes.forEach((box) => inputBoxes.add(box)); } - const outWIDBox = boxes.createWIDBox(height, WID, fee.toString()); + const widCount = ErgoUtils.getBoxAssetsSum(WIDBoxes).filter( + (token) => token.tokenId == WID + )[0].amount; + const outWIDBox = boxes.createWIDBox( + height, + WID, + minBoxValue.toString(), + widCount.toString() + ); candidates.push(outWIDBox); const signed = await ErgoUtils.createAndSignTx( getConfig().general.secretKey, diff --git a/src/types/config.ts b/src/types/config.ts index f8c69c44..a641f7a0 100644 --- a/src/types/config.ts +++ b/src/types/config.ts @@ -2,6 +2,7 @@ import * as Constants from '../config/constants'; type NetworkType = | typeof Constants.CARDANO_CHAIN_NAME - | typeof Constants.ERGO_CHAIN_NAME; + | typeof Constants.ERGO_CHAIN_NAME + | typeof Constants.BITCOIN_CHAIN_NAME; export { NetworkType }; diff --git a/src/utils/MinimumFee.ts b/src/utils/MinimumFee.ts deleted file mode 100644 index d1650cda..00000000 --- a/src/utils/MinimumFee.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { BridgeMinimumFee, Fee } from '@rosen-bridge/minimum-fee'; -import { getConfig } from '../config/config'; -import { ERGO_CHAIN_NAME } from '../config/constants'; -import { ObservationEntity } from '@rosen-bridge/observation-extractor'; - -class MinimumFee { - static bridgeMinimumFee = new BridgeMinimumFee( - getConfig().general.explorerUrl, - getConfig().rosen.rsnRatioNFT - ); - - /** - * gets minimum fee config for an observation - * @param observation - */ - static getEventFeeConfig = async ( - observation: ObservationEntity - ): Promise => { - const tokenMap = getConfig().token.tokenMap; - const tokenId = tokenMap.getID( - tokenMap.search(observation.fromChain, { - [tokenMap.getIdKey(observation.fromChain)]: - observation.sourceChainTokenId, - })[0], - ERGO_CHAIN_NAME - ); - return await MinimumFee.bridgeMinimumFee.getFee( - tokenId, - observation.fromChain, - observation.height - ); - }; -} - -export default MinimumFee; diff --git a/src/utils/MinimumFeeHandler.ts b/src/utils/MinimumFeeHandler.ts new file mode 100644 index 00000000..3fd2f917 --- /dev/null +++ b/src/utils/MinimumFeeHandler.ts @@ -0,0 +1,121 @@ +import { + ChainMinimumFee, + ErgoNetworkType, + MinimumFeeBox, +} from '@rosen-bridge/minimum-fee'; +import { RosenTokens } from '@rosen-bridge/tokens'; +import WinstonLogger from '@rosen-bridge/winston-logger'; +import { getConfig } from '../config/config'; +import { ERGO_CHAIN_NAME, NODE_TYPE } from '../config/constants'; +import { ObservationEntity } from '@rosen-bridge/observation-extractor'; + +const logger = WinstonLogger.getInstance().getLogger(import.meta.url); + +class MinimumFeeHandler { + private static instance: MinimumFeeHandler; + protected minimumFees = new Map(); + + private constructor() { + // do nothing + } + + /** + * initializes minimum fee handler + */ + static init = async (tokens: RosenTokens) => { + const configs = getConfig(); + + MinimumFeeHandler.instance = new MinimumFeeHandler(); + logger.debug('MinimumFeeHandler instantiated'); + const ergoTokenIdKey = configs.token.tokenMap.getIdKey(ERGO_CHAIN_NAME); + + const promises = tokens.tokens.map((chainToken) => { + const token = chainToken[ERGO_CHAIN_NAME]; + const tokenId = token[ergoTokenIdKey]; + + const { networkType, url } = + configs.general.scannerType === NODE_TYPE + ? { + networkType: ErgoNetworkType.node, + url: configs.general.nodeUrl, + } + : { + networkType: ErgoNetworkType.explorer, + url: configs.general.explorerUrl, + }; + const tokenMinimumFeeBox = new MinimumFeeBox( + tokenId, + configs.rosen.rsnRatioNFT, + networkType, + url, + logger + ); + MinimumFeeHandler.instance.minimumFees.set(tokenId, tokenMinimumFeeBox); + return tokenMinimumFeeBox.fetchBox(); + }); + + await Promise.all(promises); + logger.info('MinimumFeeHandler initialized'); + }; + + /** + * generates a MinimumFeeHandler object if it doesn't exist + * @returns MinimumFeeHandler instance + */ + static getInstance = () => { + if (!MinimumFeeHandler.instance) + throw Error(`MinimumFeeHandler instance doesn't exist`); + return MinimumFeeHandler.instance; + }; + + /** + * gets minimum fee config for an observation on it's target chain + * @param observation the observation + */ + getEventFeeConfig = (observation: ObservationEntity): ChainMinimumFee => { + const instance = MinimumFeeHandler.getInstance(); + + const tokenMap = getConfig().token.tokenMap; + const token = tokenMap.search(observation.fromChain, { + [tokenMap.getIdKey(observation.fromChain)]: + observation.sourceChainTokenId, + }); + if (token.length === 0) + throw Error( + `Failed to fetch minimum fee config for observation [${observation.requestId}]: source chain token [${observation.sourceChainTokenId}] is not found in token map for chain [${observation.fromChain}]` + ); + const tokenId = tokenMap.getID(token[0], ERGO_CHAIN_NAME); + + const feeBox = instance.getMinimumFeeBoxObject(tokenId); + + return feeBox.getFee( + observation.fromChain, + observation.height, + observation.toChain + ); + }; + + /** + * gets MinimumFeeBox object + * @param tokenId token id on Ergo chain + */ + getMinimumFeeBoxObject = (tokenId: string): MinimumFeeBox => { + const res = this.minimumFees.get(tokenId); + if (!res) + throw Error( + `No minimum fee config is registered for token [${tokenId}]. Make sure id is for Ergo side and the token is in token map` + ); + return res; + }; + + /** + * updates minimum fee boxes + */ + update = async (): Promise => { + for (const minimumFee of this.minimumFees.values()) { + await minimumFee.fetchBox(); + } + }; +} + +export default MinimumFeeHandler; diff --git a/src/utils/healthCheck.ts b/src/utils/healthCheck.ts index b56794e5..fd70ad78 100644 --- a/src/utils/healthCheck.ts +++ b/src/utils/healthCheck.ts @@ -1,34 +1,47 @@ +import { + ErgoExplorerAssetHealthCheckParam, + ErgoNodeAssetHealthCheckParam, +} from '@rosen-bridge/asset-check'; +import { HealthCheck, HealthStatusLevel } from '@rosen-bridge/health-check'; +import { LogLevelHealthCheck } from '@rosen-bridge/log-level-check'; +import { ErgoNodeSyncHealthCheckParam } from '@rosen-bridge/node-sync-check'; import { AbstractPermitHealthCheckParam, + ExplorerPermitHealthCheckParam, + NodePermitHealthCheckParam, +} from '@rosen-bridge/permit-check'; +import { + AbstractScannerSyncHealthCheckParam, CardanoKoiosScannerHealthCheck, CardanoOgmiosScannerHealthCheck, - ErgoExplorerAssetHealthCheckParam, ErgoExplorerScannerHealthCheck, - ErgoNodeAssetHealthCheckParam, ErgoNodeScannerHealthCheck, - ErgoNodeSyncHealthCheckParam, - ExplorerPermitHealthCheckParam, + BitcoinEsploraScannerHealthCheck, + BitcoinRPCScannerHealthCheck, +} from '@rosen-bridge/scanner-sync-check'; +import { ExplorerWidHealthCheckParam, - HealthCheck, - HealthStatusLevel, - LogLevelHealthCheck, - NodePermitHealthCheckParam, NodeWidHealthCheckParam, -} from '@rosen-bridge/health-check'; -import { getConfig } from '../config/config'; +} from '@rosen-bridge/wid-check'; + +import WinstonLogger from '@rosen-bridge/winston-logger'; + import { dataSource } from '../../config/dataSource'; +import { Transaction } from '../../src/api/Transaction'; +import { getConfig } from '../config/config'; import { + BITCOIN_CHAIN_NAME, CARDANO_CHAIN_NAME, - OGMIOS_TYPE, + ERGO_DECIMALS, + ERGO_NATIVE_ASSET, + ESPLORA_TYPE, + EXPLORER_TYPE, KOIOS_TYPE, NODE_TYPE, - EXPLORER_TYPE, - ERGO_NATIVE_ASSET, - ERGO_DECIMALS, + OGMIOS_TYPE, + RPC_TYPE, } from '../config/constants'; import { scanner } from './scanner'; -import { Transaction } from '../../src/api/Transaction'; -import WinstonLogger from '@rosen-bridge/winston-logger'; const logger = WinstonLogger.getInstance().getLogger(import.meta.url); @@ -36,6 +49,7 @@ class HealthCheckSingleton { private static instance: HealthCheckSingleton | undefined; private healthCheck: HealthCheck; private permitHealthCheckParam: AbstractPermitHealthCheckParam; + private ergoScannerSyncCheckParam: AbstractScannerSyncHealthCheckParam; static getInstance = () => { if (!HealthCheckSingleton.instance) { @@ -63,6 +77,9 @@ class HealthCheckSingleton { if (getConfig().general.networkWatcher === CARDANO_CHAIN_NAME) { this.registerCardanoHealthCheckParams(); } + if (getConfig().general.networkWatcher === BITCOIN_CHAIN_NAME) { + this.registerBitcoinHealthCheckParams(); + } } /** @@ -70,8 +87,8 @@ class HealthCheckSingleton { */ registerErgoNodeHealthCheckParams = () => { const widHealthCheck = new NodeWidHealthCheckParam( - getConfig().rosen.RWTRepoAddress, - getConfig().rosen.RepoNFT, + getConfig().rosen.watcherCollateralAddress, + getConfig().rosen.AWC, getConfig().general.address, getConfig().general.nodeUrl ); @@ -88,14 +105,14 @@ class HealthCheckSingleton { ); this.healthCheck.register(assetHealthCheck); - const ergoScannerSyncCheck = new ErgoNodeScannerHealthCheck( + this.ergoScannerSyncCheckParam = new ErgoNodeScannerHealthCheck( dataSource, scanner.ergoScanner.name(), getConfig().healthCheck.ergoScannerWarnDiff, getConfig().healthCheck.ergoScannerCriticalDiff, getConfig().general.nodeUrl ); - this.healthCheck.register(ergoScannerSyncCheck); + this.healthCheck.register(this.ergoScannerSyncCheckParam); const ergoNodeSyncCheck = new ErgoNodeSyncHealthCheckParam( getConfig().healthCheck.ergoNodeMaxHeightDiff, @@ -112,8 +129,8 @@ class HealthCheckSingleton { */ registerErgoExplorerHealthCheckParams = () => { const widHealthCheck = new ExplorerWidHealthCheckParam( - getConfig().rosen.RWTRepoAddress, - getConfig().rosen.RepoNFT, + getConfig().rosen.watcherCollateralAddress, + getConfig().rosen.AWC, getConfig().general.address, getConfig().general.explorerUrl ); @@ -130,14 +147,14 @@ class HealthCheckSingleton { ); this.healthCheck.register(assetHealthCheck); - const ergoScannerSyncCheck = new ErgoExplorerScannerHealthCheck( + this.ergoScannerSyncCheckParam = new ErgoExplorerScannerHealthCheck( dataSource, scanner.ergoScanner.name(), getConfig().healthCheck.ergoScannerWarnDiff, getConfig().healthCheck.ergoScannerCriticalDiff, getConfig().general.explorerUrl ); - this.healthCheck.register(ergoScannerSyncCheck); + this.healthCheck.register(this.ergoScannerSyncCheckParam); }; /** @@ -169,6 +186,32 @@ class HealthCheckSingleton { this.healthCheck.register(cardanoScannerSyncCheck); }; + /** + * Registers all bitcoin check params + */ + registerBitcoinHealthCheckParams = () => { + let bitcoinScannerSyncCheck; + if (getConfig().bitcoin.type === RPC_TYPE) { + bitcoinScannerSyncCheck = new BitcoinRPCScannerHealthCheck( + dataSource, + scanner.observationScanner.name(), + getConfig().healthCheck.bitcoinScannerWarnDiff, + getConfig().healthCheck.bitcoinScannerCriticalDiff, + getConfig().bitcoin.rpc!.url + ); + } else if (getConfig().bitcoin.type === ESPLORA_TYPE) { + bitcoinScannerSyncCheck = new BitcoinEsploraScannerHealthCheck( + dataSource, + scanner.observationScanner.name(), + getConfig().healthCheck.bitcoinScannerWarnDiff, + getConfig().healthCheck.bitcoinScannerCriticalDiff, + getConfig().bitcoin.esplora!.url + ); + } + if (bitcoinScannerSyncCheck) + this.healthCheck.register(bitcoinScannerSyncCheck); + }; + /** * Registers permit check if watcher wid exists */ @@ -253,6 +296,12 @@ class HealthCheckSingleton { * @param paramName */ updateParam = (paramName: string) => this.healthCheck.updateParam(paramName); + + /** + * Get ergo scanner sync health status + */ + getErgoScannerSyncHealth = () => + this.ergoScannerSyncCheckParam.getHealthStatus(); } export { HealthCheckSingleton }; diff --git a/src/utils/scanner.ts b/src/utils/scanner.ts index bbfb94cd..06790f37 100644 --- a/src/utils/scanner.ts +++ b/src/utils/scanner.ts @@ -5,23 +5,30 @@ import { ErgoNetworkType, CardanoBlockFrostScanner, } from '@rosen-bridge/scanner'; +import { BitcoinEsploraScanner } from '@rosen-bridge/bitcoin-esplora-scanner'; +import { BitcoinRpcScanner } from '@rosen-bridge/bitcoin-rpc-scanner'; import { ErgoObservationExtractor, CardanoKoiosObservationExtractor, CardanoOgmiosObservationExtractor, CardanoBlockFrostObservationExtractor, } from '@rosen-bridge/observation-extractor'; +import { + BitcoinEsploraObservationExtractor, + BitcoinRpcObservationExtractor, +} from '@rosen-bridge/bitcoin-observation-extractor'; import { CommitmentExtractor, PermitExtractor, EventTriggerExtractor, + CollateralExtractor, } from '@rosen-bridge/watcher-data-extractor'; import { ErgoUTXOExtractor } from '@rosen-bridge/address-extractor'; +import WinstonLogger from '@rosen-bridge/winston-logger'; import { getConfig } from '../config/config'; import { dataSource } from '../../config/dataSource'; import * as Constants from '../config/constants'; -import WinstonLogger from '@rosen-bridge/winston-logger'; const allConfig = getConfig(); const { @@ -29,6 +36,7 @@ const { token: tokensConfig, rosen: rosenConfig, cardano: cardanoConfig, + bitcoin: bitcoinConfig, } = allConfig; /** @@ -50,6 +58,9 @@ const createLoggers = () => ({ plainExtractorLogger: WinstonLogger.getInstance().getLogger('plain-extractor'), scannerLogger: WinstonLogger.getInstance().getLogger('scanner'), + collateralExtractorLogger: WinstonLogger.getInstance().getLogger( + 'collateral-extractor' + ), }); const loggers = createLoggers(); @@ -61,12 +72,16 @@ class CreateScanner { | ErgoScanner | CardanoKoiosScanner | CardanoOgmiosScanner - | CardanoBlockFrostScanner; + | CardanoBlockFrostScanner + | BitcoinEsploraScanner + | BitcoinRpcScanner; constructor() { this.createErgoScanner(); if (config.networkWatcher === Constants.CARDANO_CHAIN_NAME) this.createCardanoScanner(); + else if (config.networkWatcher === Constants.BITCOIN_CHAIN_NAME) + this.createBitcoinScanner(); if (!this.observationScanner) throw Error( 'Observation scanner initialization failed, check the watcher network to be correct' @@ -145,10 +160,19 @@ class CreateScanner { undefined, // Token constraint not needed loggers.plainExtractorLogger ); + const collateralExtractor = new CollateralExtractor( + Constants.COLLATERAL_EXTRACTOR_NAME, + rosenConfig.AWC, + rosenConfig.watcherCollateralAddress, + dataSource, + config.explorerUrl, + loggers.collateralExtractorLogger + ); this.ergoScanner.registerExtractor(commitmentExtractor); this.ergoScanner.registerExtractor(permitExtractor); this.ergoScanner.registerExtractor(eventTriggerExtractor); this.ergoScanner.registerExtractor(plainExtractor); + this.ergoScanner.registerExtractor(collateralExtractor); }; private createCardanoScanner = () => { @@ -208,6 +232,47 @@ class CreateScanner { } } }; + + private createBitcoinScanner = () => { + if (!this.observationScanner) { + if (bitcoinConfig.esplora) { + this.observationScanner = new BitcoinEsploraScanner( + { + dataSource: dataSource, + esploraUrl: bitcoinConfig.esplora.url, + timeout: bitcoinConfig.esplora.timeout * 1000, + initialHeight: bitcoinConfig.initialHeight, + }, + loggers.scannerLogger + ); + const observationExtractor = new BitcoinEsploraObservationExtractor( + rosenConfig.lockAddress, + dataSource, + tokensConfig.tokens, + loggers.observationExtractorLogger + ); + this.observationScanner.registerExtractor(observationExtractor); + } else if (bitcoinConfig.rpc) { + this.observationScanner = new BitcoinRpcScanner( + { + rpcUrl: bitcoinConfig.rpc.url, + timeout: bitcoinConfig.rpc.timeout * 1000, + initialHeight: bitcoinConfig.initialHeight, + dataSource: dataSource, + }, + loggers.scannerLogger + ); + + const observationExtractor = new BitcoinRpcObservationExtractor( + rosenConfig.lockAddress, + dataSource, + tokensConfig.tokens, + loggers.observationExtractorLogger + ); + this.observationScanner.registerExtractor(observationExtractor); + } + } + }; } const scanner = new CreateScanner(); diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 20dc0dda..56ddb4e2 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -29,6 +29,14 @@ const uint8ArrayToHex = (buffer: Uint8Array): string => { return Buffer.from(buffer).toString('hex'); }; +/** + * Encodes the uint array to the base64 string + * @param buffer + */ +const uint8ArrayToBase64 = (buffer: Uint8Array): string => { + return Buffer.from(buffer).toString('base64'); +}; + /** * returns the decoded bigint input * @param num @@ -131,6 +139,7 @@ export { strToUint8Array, hexStrToUint8Array, uint8ArrayToHex, + uint8ArrayToBase64, delay, bigIntToUint8Array, generateSK, diff --git a/src/utils/watcherUtils.ts b/src/utils/watcherUtils.ts index 09a8f632..78d27fb7 100644 --- a/src/utils/watcherUtils.ts +++ b/src/utils/watcherUtils.ts @@ -15,7 +15,7 @@ import { Transaction } from '../api/Transaction'; import { getConfig } from '../config/config'; import { scanner } from './scanner'; import { CommitmentEntity } from '@rosen-bridge/watcher-data-extractor'; -import MinimumFee from './MinimumFee'; +import MinimumFeeHandler from './MinimumFeeHandler'; import WinstonLogger from '@rosen-bridge/winston-logger'; const logger = WinstonLogger.getInstance().getLogger(import.meta.url); @@ -81,7 +81,8 @@ class WatcherUtils { * @param observation */ hasValidAmount = async (observation: ObservationEntity): Promise => { - const feeConfig = await MinimumFee.getEventFeeConfig(observation); + const feeConfig = + MinimumFeeHandler.getInstance().getEventFeeConfig(observation); return ( BigInt(observation.amount) >= BigInt(feeConfig.bridgeFee) + BigInt(feeConfig.networkFee) @@ -350,10 +351,18 @@ class WatcherUtils { const eventTrigger = await this.dataBase.eventTriggerByEventId( commitment.eventId ); + + if (eventTrigger == null) { + return false; + } + + const commitmentWIDs = ( + await this.dataBase.commitmentsBySpendTxId(eventTrigger?.txId) + ).map((comm) => comm.WID); + return ( - eventTrigger !== null && commitment.height < eventTrigger.height && - !eventTrigger.WIDs.split(',').includes(commitment.WID) + !commitmentWIDs.includes(commitment.WID) ); }; } diff --git a/tests/api/testDataEvents.ts b/tests/api/testDataEvents.ts index 41130f2b..dfdb513f 100644 --- a/tests/api/testDataEvents.ts +++ b/tests/api/testDataEvents.ts @@ -20,7 +20,8 @@ const events = [ targetChainTokenId: 'targetTokenId', sourceTxId: 'txIdStar', sourceBlockId: 'block', - WIDs: '1,WIDStatistics,3', + WIDsCount: 2, + WIDsHash: 'abcd', spendBlock: null, spendHeight: null, spendTxId: 'txId', @@ -54,7 +55,8 @@ const events = [ targetChainTokenId: 'targetTokenId', sourceTxId: 'txIdStar', sourceBlockId: 'block', - WIDs: '1,WIDStatistics,3', + WIDsCount: 2, + WIDsHash: 'abcd', spendBlock: null, spendHeight: null, spendTxId: 'txId', @@ -88,7 +90,8 @@ const events = [ targetChainTokenId: 'targetTokenId', sourceTxId: 'txIdStar', sourceBlockId: 'block', - WIDs: '1,WIDStatistics,3', + WIDsCount: 2, + WIDsHash: 'abcd', spendBlock: null, spendHeight: null, spendTxId: 'txId', @@ -122,7 +125,8 @@ const events = [ targetChainTokenId: 'targetTokenId', sourceTxId: 'txId2', sourceBlockId: 'block', - WIDs: '1,2,3', + WIDsCount: 2, + WIDsHash: 'abcd', spendBlock: null, spendHeight: null, spendTxId: 'txId2', @@ -156,7 +160,8 @@ const events = [ targetChainTokenId: 'targetTokenId', sourceTxId: 'txId', sourceBlockId: 'block', - WIDs: '1,2,3', + WIDsCount: 2, + WIDsHash: 'abcd', spendBlock: null, spendHeight: null, spendTxId: null, diff --git a/tests/api/transaction.ts b/tests/api/transaction.ts index 8c7ae202..8bd240b3 100644 --- a/tests/api/transaction.ts +++ b/tests/api/transaction.ts @@ -19,6 +19,7 @@ import { Boxes } from '../../src/ergo/boxes'; import { ErgoNetwork } from '../../src/ergo/network/ergoNetwork'; import { ErgoUtils } from '../../src/ergo/utils'; import { fillORM, loadDataBase } from '../database/watcherDatabase'; +import { Transaction } from '../../src/api/Transaction'; chai.use(spies); const signedErgTx = wasm.Transaction.from_json(JsonBI.stringify(withdrawErg)); @@ -38,6 +39,7 @@ describe('Transaction', () => { chai.spy.on(boxes, 'getRepoBox', () => { return wasm.ErgoBox.from_json(mockedResponseBody.repoBoxWithWIDToken); }); + chai.spy.on(Transaction, 'getWatcherState', () => undefined); await TransactionTest.setup(userAddress, secret1, boxes, watcherDb); }); diff --git a/tests/config/contracts-ergo-mainnet.json b/tests/config/contracts-ergo-mainnet.json index 507aa49a..a2d80821 100644 --- a/tests/config/contracts-ergo-mainnet.json +++ b/tests/config/contracts-ergo-mainnet.json @@ -7,7 +7,9 @@ "guardSign": "3FBpC6dt4xNpexUbLSZDR4YbuMWwLyKDUjbnHPCQf6VpUfqqLGzQ6P6uKkfoF1Eudh9YSU9uTEwYYJ3J8hDERT2mhM6wvCciz4HvZPLMUtdjeg5mCtJMyi6Wy2wTeQQ6UxyuwKCNGxU669QN1HNz7MF5JMg1xy84cEFVcTCcU2rKqiYpHNotatUq6uP6K3fAraF", "Commitment": "4YCK14N7WDiHxFARYiU6Mz9sAurPkzivxiHUKtdPJKnKgjEPsgA14StcL7Wr2iVLivZ1fHiKk8eKdB1Bd8k8H7z6V3AW7xc85VapZ8jNuiYYoXE6XAUKz5Xz8xtQKJ8AuYvGPQrxqQHtwMHzXoN6zvJbU1DYtmVzHS1HZ92upY1VBgmvh6FB3i8GhPtZGRrCbhsvV3ZG4Q99SFdEH9hA9jkf5a47buyKp5d2kg7Lptd2Lr5cfuy3yH79LgncCv1vSMJeCoEzQzv99wcXmVZXKVMPLxHdYQMcPMuA3YVyFwmd3JfwAPviuyYsY9DT68KgVr4fKop7opmFmNotasaaWdpRKk2L8CwzB9ZQ7J3LM8pxDLVikuogsBQbCZxTfTup9GaeUC1GdcrCABA3QJ7oezo8gANHZb4wx3jRZGdujQ8zn2QnVk5e9wTkyvFKfjLfm7cUTaKJLngj7SkUc81rw2NeSEM4xese9wwSYubUdSwnKzQ33pQYziNRpokY2xgY6rJLzyGd7E4gViU3fbNw9ZcesdJTnzRtx1k4XZLRpoAhBd5dX7w8KFkAaghUHHiK8YZXCciu6ZVakoiMf26pa3rb3SyV9Pj888Reh7hxkfTw1qKKWdEJo5bhDRmDbabfjVHyVvwf3xnRCCA3GSX39DPcLiCiccPJeqgeBuQJwGMZHXW4y4xJfDyoDUauWenUmJeNCGzXXKCsANUGvtCUtxBxWJs5ucwt4Fp2jdvVqpP58jWw5p62de1uYzD4u8uFpNFqcwAk2ZovspLpHXcDdZkLsk6PBVj2Acw7TxugYDsyJ8s4xXGAxG25YNRsVgNfU5iiURUBbgKRKi8xMGP64MNCUMC9CwApPViqTX9XZTNMXtnNyKmgjjPdogsTzfQMcQkwq96FrhXfrLBqhFqkBzygAyhwwnbpoxJGFjDwgozJ9qF48r", "WatcherTriggerEvent": "BRNzuPCshtnBeoxCJ8iQiVd7pKqEfQrue3x8L4rj11AfsbvSURUHFMKvTvfERxKgbhbKb1xqAKp1MssAaRj2s5QbmVMexgH1DeX3pbSUhkNNEDbdDrPoDVywnKg7QaSPfg7qBdUmtthYJv3AemeFHLvJdSV7fEBEzfB7G8MWw1BDLSMkCxcY46XwZs6ULTYHk3iCAi2SAEHMYsJoLfHMT4CkXAwfDyge5aoJLP9KbjKeW6Zk6QNKvSaSnLzJUA1WF35BnsiDpJ6fKBgB94YWnm2nNpCAHW9iF8QC46Jp1iSv4Q8nQ9wTQbQYYQimdWVueLjioa6HWugyxDLuK5CSoLHEiJBx8ybp14urcx2XHQPs8J4cE9qAyznX2j5aybpb3YXyK8NsmnxiPFkeKJvA82AS6VBekoPsan5JJTnrYW6fvmS84VRFVE1XPx8hxsLgvh", - "WatcherCollateral": "2DxRv75maq3FewTq4mCgRzJSJ5usEgvv6NPUGFUVvVpWnogX8ucuhogGUWGKxYFrb6F86N8UocRpo4T3kprWjRQxczhvfJhpbNUKfHd1pA8TdnMdxP7GFRaZGP8XHvTNb34GRkVvjha8XUCUXvBWqS84aS3JqZY27S5qX58VzMUFhRKUKcVgCCRhAZPt5yfUDcjmQh43psFxPTpPhupkZe8Zx" + "WatcherCollateral": "2DxRv75maq3FewTq4mCgRzJSJ5usEgvv6NPUGFUVvVpWnogX8ucuhogGUWGKxYFrb6F86N8UocRpo4T3kprWjRQxczhvfJhpbNUKfHd1pA8TdnMdxP7GFRaZGP8XHvTNb34GRkVvjha8XUCUXvBWqS84aS3JqZY27S5qX58VzMUFhRKUKcVgCCRhAZPt5yfUDcjmQh43psFxPTpPhupkZe8Zx", + "RepoConfig": "prufxZid3SJMyUVhAa6eaMgMtHpTTkiF7FcKQaMurTF2iDyZaghSsYuMMLLQKsyFJyygHqSzuvAkokiTjZs2GXiF2JRW9JfXifKAYWSTLrZAHsk9ExH7jiJ5hT7Ex2YDBbRnoyafZ2j282op1wg4T3Yp7rzuihZShM1U96Xx4UF5MqnHJokjnogqjEMjUB1NgQ4Vha9eoHfepW1ULxdm", + "MinimumFeeAddress": "9gH92yjsJCBHwx4fDbXe6j8jLdDBMX3dm6nqwiHhUqyxgNKXmoK" }, "tokens": { "RepoNFT": "a29d9bb0d622eb8b4f83a34c4ab1b7d3f18aaaabc3aa6876912a3ebaf0da1018", @@ -15,7 +17,9 @@ "RSN": "a2a6c892c38d508a659caf857dbe29da4343371e597efd42e40f9bc99099a516", "RSNRatioNFT": "c597eac4db28f62419eab5639122f2bc4955dfedf958e7cdba5248ba2a81210a", "CleanupNFT": "5b81c74b04b7eed17bd1e3d37c990003183601951f22a3360a8bc5c848a32006", - "RWTId": "497287b9a1eff643791277744a74b7d598b834dc613f2ebc972e33767c61ac2b" + "RWTId": "497287b9a1eff643791277744a74b7d598b834dc613f2ebc972e33767c61ac2b", + "AwcNFT": "852ccfce6b0b060f81153cd1994d5f42e5e59d7f092adbadab2b5e1ca2c34b63", + "RepoConfigNFT": "99016d570b66c7188957cb72acbf131ab0be7611e011ba47c783a3c3f5773daf" }, "cleanupConfirm": 7200 } diff --git a/tests/database/mockedData.ts b/tests/database/mockedData.ts index 8b08993d..80331bbb 100644 --- a/tests/database/mockedData.ts +++ b/tests/database/mockedData.ts @@ -16,6 +16,7 @@ import * as Constants from '../../src/config/constants'; import { TokenEntity } from '../../src/database/entities/tokenEntity'; import { RevenueEntity } from '../../src/database/entities/revenueEntity'; import { firstPermit, secondPermit } from '../ergo/statistics/mockUtils'; +import packageJson from '../../package.json' assert { type: 'json' }; export const ergoBlockEntity = new BlockEntity(); ergoBlockEntity.scanner = Constants.ERGO_CHAIN_NAME; @@ -79,6 +80,7 @@ spentCommitmentEntityOfWID.block = 'block'; spentCommitmentEntityOfWID.extractor = 'extractor'; spentCommitmentEntityOfWID.height = 105; spentCommitmentEntityOfWID.spendHeight = 110; +spentCommitmentEntityOfWID.spendTxId = 'spendTx'; spentCommitmentEntityOfWID.boxSerialized = '2223'; spentCommitmentEntityOfWID.txId = 'txId2223'; @@ -92,6 +94,7 @@ spentCommitmentEntity.block = 'block2'; spentCommitmentEntity.extractor = 'extractor'; spentCommitmentEntity.height = 100; spentCommitmentEntity.spendHeight = 110; +spentCommitmentEntity.spendTxId = 'spendTx2'; spentCommitmentEntity.boxSerialized = '222'; spentCommitmentEntity.txId = 'txId222'; @@ -192,12 +195,13 @@ eventTriggerEntity.fromChain = 'cardano'; eventTriggerEntity.toChain = 'toChain'; eventTriggerEntity.sourceChainTokenId = 'tokenId2'; eventTriggerEntity.targetChainTokenId = 'targetTokenId'; -eventTriggerEntity.WIDs = '1,2,3'; eventTriggerEntity.sourceBlockId = 'block'; eventTriggerEntity.sourceChainHeight = 123456; eventTriggerEntity.eventId = 'ab59962c20f57d9d59e95f5170ccb3472df4279ad4967e51ba8be9ba75144c7b'; eventTriggerEntity.txId = 'txId'; +eventTriggerEntity.WIDsCount = 2; +eventTriggerEntity.WIDsHash = 'abcd'; export const newEventTriggerEntity = new EventTriggerEntity(); newEventTriggerEntity.sourceTxId = 'txId2'; @@ -215,13 +219,14 @@ newEventTriggerEntity.fromChain = 'cardano'; newEventTriggerEntity.toChain = 'toChain'; newEventTriggerEntity.sourceChainTokenId = 'tokenId'; newEventTriggerEntity.targetChainTokenId = 'targetTokenId'; -newEventTriggerEntity.WIDs = '1,2,3'; newEventTriggerEntity.sourceBlockId = 'block'; newEventTriggerEntity.sourceChainHeight = 123457; newEventTriggerEntity.eventId = 'ab59962c20f57d9d59e95f5170ccb3472df4279ad4967e51ba8be9ba75144c7b'; newEventTriggerEntity.txId = 'createTxId2'; newEventTriggerEntity.spendTxId = 'txId2'; +newEventTriggerEntity.WIDsCount = 2; +newEventTriggerEntity.WIDsHash = 'abcd'; export const observationEntity1 = new ObservationEntity(); observationEntity1.height = 1; @@ -713,6 +718,7 @@ export const permitMockRWT = '8e5b02ba729ad364867619d2a8b9ff1438190c14979a12aa0a249e996194f074'; export const generalInfo = { + version: packageJson.version, currentBalance: 1100000, network: 'ergo', permitsPerEvent: 10000, diff --git a/tests/database/watcherDatabase.ts b/tests/database/watcherDatabase.ts index 82a28e0b..9e642c97 100644 --- a/tests/database/watcherDatabase.ts +++ b/tests/database/watcherDatabase.ts @@ -356,6 +356,7 @@ describe('WatcherModel tests', () => { 1000, 'reqId1' ); + firstStatisticCommitment; }); }); @@ -533,28 +534,19 @@ describe('WatcherModel tests', () => { }); }); - describe('commitmentByWID', () => { + describe('commitmentsBySpendTxId', () => { /** - * Target: testing commitmentByWID + * Target: testing commitmentsBySpendTxId * Expected Output: - * The function should return one specific commitment - */ - it('should return first commitment with specific WID', async () => { - const data = await DB.commitmentByWID('WIDStatistics', 0, 1); - expect(data).to.be.eql([firstStatisticCommitment]); - }); - - /** - * Target: testing commitmentByWID - * Expected Output: - * The function should return two specific commitment + * The function should return one commitment */ - it('should return two commitment with specific WID with offset 1', async () => { - const data = await DB.commitmentByWID('WIDStatistics', 1, 2); - expect(data).to.be.eql([ - secondStatisticCommitment, - thirdStatisticCommitment, - ]); + it('should return one commitment', async () => { + await commitmentRepo.insert(spentCommitmentEntityOfWID); + const data = await DB.commitmentsBySpendTxId('spendTx'); + expect(data).to.have.length(1); + await commitmentRepo.delete({ + eventId: spentCommitmentEntityOfWID.eventId, + }); }); }); @@ -574,55 +566,6 @@ describe('WatcherModel tests', () => { }); }); - describe('commitmentsByWIDCount', () => { - /** - * Target: testing commitmentsByWIDCount - * Expected Output: - * The function should return 3 - */ - it('should return counts of commitments with specific WID', async () => { - const data = await DB.commitmentsByWIDCount('WIDStatistics'); - expect(data).to.be.equal(3); - }); - }); - - describe('eventTriggersByWIDCount', () => { - /** - * Target: testing eventTriggersByWIDCount - * Expected Output: - * The function should return 3 - */ - it('should return counts of eventTriggers that have specific WID in them', async () => { - const data = await DB.eventTriggersByWIDCount('WIDStatistics'); - expect(data).to.be.equal(3); - }); - }); - - describe('eventTriggersByWID', () => { - /** - * Target: testing commitmentByWID - * Expected Output: - * The function should return one specific eventTrigger - */ - it('should return first eventTrigger with specific WID', async () => { - const data = await DB.eventTriggersByWID('WIDStatistics', 0, 1); - expect(data).to.be.eql([firstStatisticsEventTrigger]); - }); - - /** - * Target: testing commitmentByWID - * Expected Output: - * The function should return two specific eventTriggers - */ - it('should return two commitment with specific WID with offset 1', async () => { - const data = await DB.eventTriggersByWID('WIDStatistics', 1, 2); - expect(data).to.be.eql([ - secondStatisticsEventTrigger, - thirdStatisticsEventTrigger, - ]); - }); - }); - describe('findCommitmentsById', () => { /** * Target: testing findCommitmentsById diff --git a/tests/ergo/statistics/api.ts b/tests/ergo/statistics/api.ts deleted file mode 100644 index 2ca25e96..00000000 --- a/tests/ergo/statistics/api.ts +++ /dev/null @@ -1,323 +0,0 @@ -import { fillORM, loadDataBase } from '../../database/watcherDatabase'; -import Statistics from '../../../src/statistics/statistics'; -import express, { Router } from 'express'; -import { statisticsRouter } from '../../../src/statistics/apis'; -import request from 'supertest'; -import chai, { expect } from 'chai'; -import spies from 'chai-spies'; - -chai.use(spies); - -const ORM = await loadDataBase(); -await fillORM(ORM); -const app = express(); -app.use(express.json()); - -const router = Router(); -router.use('/statistics', statisticsRouter); -app.use(router); - -describe('Statistics-Api', () => { - before('Mocking Statistics Class functions', async () => { - const DB = ORM.DB; - Statistics.setup(DB, 'WIDStatistics'); - Statistics.getInstance(); - chai.spy.on(Statistics, 'getCommitments', (offset, limit) => { - if (offset === 0 && limit === 1) { - return [ - { - eventId: 'eventId1', - boxId: 'boxIdStatistics1', - block: 'block', - height: 1005, - spendBlock: null, - spendHeight: null, - }, - ]; - } - if (offset === 1 && limit === 2) { - return [ - { - eventId: 'eventId2', - boxId: 'boxIdStatistics2', - block: 'block', - height: 1005, - spendBlock: null, - spendHeight: null, - }, - { - eventId: 'eventId3', - boxId: 'boxIdStatistics3', - block: 'block', - height: 1005, - spendBlock: null, - spendHeight: null, - }, - ]; - } - }); - chai.spy.on(Statistics, 'getEventTriggers', (offset, limit) => { - if (offset === 0 && limit === 1) { - return [ - { - boxId: 'boxIdStatistics', - block: 'blockID', - height: 100, - fromChain: 'fromChain', - toChain: 'toChain', - fromAddress: 'fromAddress', - toAddress: 'toAddress', - amount: '100', - bridgeFee: '200', - networkFee: '1000', - sourceChainTokenId: 'tokenId', - targetChainTokenId: 'targetTokenId', - sourceTxId: 'txId', - sourceBlockId: 'block', - spendBlock: null, - spendHeight: null, - }, - ]; - } - if (offset === 1 && limit === 2) { - return [ - { - boxId: 'boxIdStatistics2', - block: 'blockID', - height: 100, - fromChain: 'fromChain', - toChain: 'toChain', - fromAddress: 'fromAddress', - toAddress: 'toAddress', - amount: '100', - bridgeFee: '200', - networkFee: '1000', - sourceChainTokenId: 'tokenId', - targetChainTokenId: 'targetTokenId', - sourceTxId: 'txId', - sourceBlockId: 'block', - spendBlock: null, - spendHeight: null, - }, - { - boxId: 'boxIdStatistics3', - block: 'blockID', - height: 100, - fromChain: 'fromChain', - toChain: 'toChain', - fromAddress: 'fromAddress', - toAddress: 'toAddress', - amount: '100', - bridgeFee: '200', - networkFee: '1000', - sourceChainTokenId: 'tokenId', - targetChainTokenId: 'targetTokenId', - sourceTxId: 'txId', - sourceBlockId: 'block', - spendBlock: null, - spendHeight: null, - }, - ]; - } - }); - chai.spy.on(Statistics, 'getErgsAndFee', () => { - return { - ergs: 98900000n, - tokens: { - '3c6cb596273a737c3e111c31d3ec868b84676b7bad82f9888ad574b44edef267': - 11n, - '0034c44f0c7a38f833190d44125ff9b3a0dd9dbb89138160182a930bc521db95': - 10n, - }, - }; - }); - chai.spy.on(Statistics, 'getCommitmentsCount', () => 3); - chai.spy.on(Statistics, 'getEventTriggersCount', () => 3); - }); - - describe('GET /statistics', () => { - /** - * Target: testing GET /statistics endpoint - * Dependencies: - * Statistics - * Test Procedure: - * 1- calling endpoint - * 2- validate endpoint with mocked inputs - * Expected Output: - * then endpoint should be in expected schema - */ - it("Checks that 'statistics' endpoint is in expected schema", async () => { - const res = await request(app).get('/statistics'); - expect(res.status).equal(200); - expect(res.body).to.eql({ - ergs: '98900000', - commitmentsCount: 3, - eventTriggersCount: 3, - fee: { - '3c6cb596273a737c3e111c31d3ec868b84676b7bad82f9888ad574b44edef267': - '11', - '0034c44f0c7a38f833190d44125ff9b3a0dd9dbb89138160182a930bc521db95': - '10', - }, - }); - }); - }); - - describe('GET /commitments', () => { - /** - * Target: testing GET /commitments endpoint - * Dependencies: - * Statistics - * Test Procedure: - * 1- calling endpoint - * 2- validate endpoint with mocked inputs - * Expected Output: - * then endpoint should be in expected schema - */ - it("Checks that 'commitments' endpoint is in expected schema with offset=0 & limit=1", async () => { - const res = await request(app) - .get('/statistics/commitments') - .query({ offset: '0', limit: '1' }); - expect(res.status).to.equal(200); - expect(res.body).to.eql([ - { - eventId: 'eventId1', - boxId: 'boxIdStatistics1', - block: 'block', - height: 1005, - spendBlock: null, - spendHeight: null, - }, - ]); - }); - - /** - * Target: testing GET /commitments endpoint - * Dependencies: - * Statistics - * Test Procedure: - * 1- calling endpoint - * 2- validate endpoint with mocked inputs - * Expected Output: - * then endpoint should be in expected schema - */ - it("Checks that 'commitments' endpoint is in expected schema with offset=1 & limit=2", async () => { - const res = await request(app) - .get('/statistics/commitments') - .query({ offset: '1', limit: '2' }); - expect(res.status).to.equal(200); - expect(res.body).to.eql([ - { - eventId: 'eventId2', - boxId: 'boxIdStatistics2', - block: 'block', - height: 1005, - spendBlock: null, - spendHeight: null, - }, - { - eventId: 'eventId3', - boxId: 'boxIdStatistics3', - block: 'block', - height: 1005, - spendBlock: null, - spendHeight: null, - }, - ]); - }); - }); - - describe('GET /eventTriggers', () => { - /** - * Target: testing GET /eventTriggers endpoint - * Dependencies: - * Statistics - * Test Procedure: - * 1- calling endpoint - * 2- validate endpoint with mocked inputs - * Expected Output: - * then endpoint should be in expected schema - */ - it("Checks that 'eventTriggers' endpoint is in expected schema with offset=0 & limit=1", async () => { - const res = await request(app) - .get('/statistics/eventTriggers') - .query({ offset: '0', limit: '1' }); - expect(res.status).to.equal(200); - expect(res.body).to.eql([ - { - boxId: 'boxIdStatistics', - block: 'blockID', - height: 100, - fromChain: 'ergo', - toChain: 'toChainStar', - fromAddress: 'fromAddress', - toAddress: 'toAddress', - amount: '100', - bridgeFee: '200', - networkFee: '1000', - sourceChainTokenId: 'tokenIdStar', - targetChainTokenId: 'targetTokenId', - sourceTxId: 'txIdStar', - sourceBlockId: 'block', - spendBlock: null, - spendHeight: null, - }, - ]); - }); - - /** - * Target: testing GET /eventTriggers endpoint - * Dependencies: - * Statistics - * Test Procedure: - * 1- calling endpoint - * 2- validate endpoint with mocked inputs - * Expected Output: - * then endpoint should be in expected schema - */ - it("Checks that 'eventTriggers' endpoint is in expected schema with offset=1 & limit=2", async () => { - const res = await request(app) - .get('/statistics/eventTriggers') - .query({ offset: '1', limit: '2' }); - expect(res.status).to.equal(200); - expect(res.body).to.eql([ - { - boxId: 'boxIdStatistics2', - block: 'blockID', - height: 100, - fromChain: 'ergo', - toChain: 'toChainStar', - fromAddress: 'fromAddress', - toAddress: 'toAddress', - amount: '100', - bridgeFee: '200', - networkFee: '1000', - sourceChainTokenId: 'tokenIdStar', - targetChainTokenId: 'targetTokenId', - sourceTxId: 'txIdStar', - sourceBlockId: 'block', - spendBlock: null, - spendHeight: null, - }, - { - boxId: 'boxIdStatistics3', - block: 'blockID', - height: 100, - fromChain: 'ergo', - toChain: 'toChainStar', - fromAddress: 'fromAddress', - toAddress: 'toAddress', - amount: '100', - bridgeFee: '200', - networkFee: '1000', - sourceChainTokenId: 'tokenIdStar', - targetChainTokenId: 'targetTokenId', - sourceTxId: 'txIdStar', - sourceBlockId: 'block', - spendBlock: null, - spendHeight: null, - }, - ]); - }); - }); -}); diff --git a/tests/ergo/statistics/mockUtils.ts b/tests/ergo/statistics/mockUtils.ts index 6edc6b26..8420c8a5 100644 --- a/tests/ergo/statistics/mockUtils.ts +++ b/tests/ergo/statistics/mockUtils.ts @@ -178,13 +178,14 @@ firstStatisticsEventTrigger.fromChain = 'ergo'; firstStatisticsEventTrigger.toChain = 'toChainStar'; firstStatisticsEventTrigger.sourceChainTokenId = 'tokenIdStar'; firstStatisticsEventTrigger.targetChainTokenId = 'targetTokenId'; -firstStatisticsEventTrigger.WIDs = '1,WIDStatistics,3'; firstStatisticsEventTrigger.sourceBlockId = 'block'; firstStatisticsEventTrigger.sourceChainHeight = 123456; firstStatisticsEventTrigger.eventId = 'ab59962c20f57d9d59e95f5170ccb3472df4279ad4967e51ba8be9ba75144c7b'; firstStatisticsEventTrigger.txId = 'createTxId'; firstStatisticsEventTrigger.spendTxId = 'txId'; +firstStatisticsEventTrigger.WIDsCount = 2; +firstStatisticsEventTrigger.WIDsHash = 'abcd'; const secondStatisticsEventTrigger = { ...firstStatisticsEventTrigger, diff --git a/tests/ergo/statistics/statistics.ts b/tests/ergo/statistics/statistics.ts deleted file mode 100644 index 26c11969..00000000 --- a/tests/ergo/statistics/statistics.ts +++ /dev/null @@ -1,193 +0,0 @@ -import { WatcherDataBase } from '../../../src/database/models/watcherModel'; -import { fillORM, loadDataBase } from '../../database/watcherDatabase'; -import Statistics from '../../../src/statistics/statistics'; -import { expect } from 'chai'; - -let statistics: Statistics; - -describe('Statistics', () => { - let DB: WatcherDataBase; - - /** - * setting up pretest database and Statistic Object - */ - before(async () => { - const ORM = await loadDataBase(); - await fillORM(ORM); - DB = ORM.DB; - Statistics.setup(DB, 'WIDStatistics'); - statistics = Statistics.getInstance(); - }); - - describe('getInstance', () => { - /** - * Target: testing getInstance - * Expected Output: - * the watcher WID should be WIDStatistics - */ - it('should return one instance with specific watcher WID', () => { - const statistics = Statistics.getInstance(); - expect(statistics.getWID()).to.equal('WIDStatistics'); - }); - }); - - describe('getErgsAndFee', () => { - /** - * Target: testing getErgsAndFee for the watcher - * Expected Output: - * The function should return watcher total received fee and Ergs amount - */ - it('should return watcher received ergs and fees', async () => { - const ergsAndTokens = await statistics.getErgsAndFee(); - expect(ergsAndTokens.ergs).to.equal(98900000n); - expect(ergsAndTokens.tokens).to.eql({ - '3c6cb596273a737c3e111c31d3ec868b84676b7bad82f9888ad574b44edef267': 11n, - '0034c44f0c7a38f833190d44125ff9b3a0dd9dbb89138160182a930bc521db95': 10n, - }); - }); - }); - - describe('getCommitmentsCount', () => { - /** - * Target: testing getCommitmentsCount - * Expected Output: - * The function should return watcher total commitments with his WID (3) - */ - it('should return 3 [Commitments]', async () => { - expect(await statistics.getCommitmentsCount()).to.equal(3); - }); - }); - - describe('getEventTriggersCount', () => { - /** - * Target: testing getEventTriggersCount - * Expected Output: - * The function should return watcher total eventTriggers with his WID (3) - */ - it('should return 3 [EventTriggers]', async () => { - expect(await statistics.getEventTriggersCount()).to.equal(3); - }); - }); - - describe('getCommitments', () => { - /** - * Target: testing getCommitments - * Expected Output: - * The function should return first watcher commitment - */ - it('should return watcher first commitment', async () => { - expect(await statistics.getCommitments(0, 1)).to.eql([ - { - eventId: 'eventId1', - boxId: 'boxIdStatistics1', - block: 'block', - height: 1005, - spendBlock: null, - spendHeight: null, - }, - ]); - }); - - /** - * Target: testing getCommitments - * Expected Output: - * The function should return second and third watcher commitment - */ - it('should return watcher second and third commitment', async () => { - expect(await statistics.getCommitments(1, 2)).to.eql([ - { - eventId: 'eventId2', - boxId: 'boxIdStatistics2', - block: 'block', - height: 1005, - spendBlock: null, - spendHeight: null, - }, - { - eventId: 'eventId3', - boxId: 'boxIdStatistics3', - block: 'block', - height: 1005, - spendBlock: null, - spendHeight: null, - }, - ]); - }); - }); - - describe('getEventTriggers', () => { - /** - * Target: testing getEventTriggers - * Expected Output: - * The function should return first watcher eventTrigger - */ - it('should return watcher first watcher eventTrigger', async () => { - expect(await statistics.getEventTriggers(0, 1)).to.eql([ - { - boxId: 'boxIdStatistics', - block: 'blockID', - height: 100, - fromChain: 'ergo', - toChain: 'toChainStar', - fromAddress: 'fromAddress', - toAddress: 'toAddress', - amount: '100', - bridgeFee: '200', - networkFee: '1000', - sourceChainTokenId: 'tokenIdStar', - targetChainTokenId: 'targetTokenId', - sourceTxId: 'txIdStar', - sourceBlockId: 'block', - spendBlock: null, - spendHeight: null, - }, - ]); - }); - - /** - * Target: testing getEventTriggers - * Expected Output: - * The function should return second and third watcher eventTrigger - */ - it('should return second and third watcher eventTrigger', async () => { - expect(await statistics.getEventTriggers(1, 2)).to.eql([ - { - boxId: 'boxIdStatistics2', - block: 'blockID', - height: 100, - fromChain: 'ergo', - toChain: 'toChainStar', - fromAddress: 'fromAddress', - toAddress: 'toAddress', - amount: '100', - bridgeFee: '200', - networkFee: '1000', - sourceChainTokenId: 'tokenIdStar', - targetChainTokenId: 'targetTokenId', - sourceTxId: 'txIdStar', - sourceBlockId: 'block', - spendBlock: null, - spendHeight: null, - }, - { - boxId: 'boxIdStatistics3', - block: 'blockID', - height: 100, - fromChain: 'ergo', - toChain: 'toChainStar', - fromAddress: 'fromAddress', - toAddress: 'toAddress', - amount: '100', - bridgeFee: '200', - networkFee: '1000', - sourceChainTokenId: 'tokenIdStar', - targetChainTokenId: 'targetTokenId', - sourceTxId: 'txIdStar', - sourceBlockId: 'block', - spendBlock: null, - spendHeight: null, - }, - ]); - }); - }); -}); diff --git a/tests/ergo/transactions/commitmentCreation.ts b/tests/ergo/transactions/commitmentCreation.ts index 729f6bc7..bbab9d76 100644 --- a/tests/ergo/transactions/commitmentCreation.ts +++ b/tests/ergo/transactions/commitmentCreation.ts @@ -21,8 +21,6 @@ import { expect } from 'chai'; import chai from 'chai'; import spies from 'chai-spies'; import sinon from 'sinon'; - -import { DetachWID } from '../../../src/transactions/detachWID'; import permitObj from './dataset/permitBox.json' assert { type: 'json' }; import permitObj2 from './dataset/permitBox2.json' assert { type: 'json' }; import permitObj3 from './dataset/permitBox3.json' assert { type: 'json' }; @@ -31,6 +29,7 @@ import WIDObj2 from './dataset/WIDBoxWithoutErg.json' assert { type: 'json' }; import plainObj from './dataset/plainBox.json' assert { type: 'json' }; import txObj from './dataset/commitmentTx.json' assert { type: 'json' }; import repoBox1Obj from './dataset/repoBox1.json' assert { type: 'json' }; +import repoConfigObj from './dataset/repConfigBox.json' assert { type: 'json' }; chai.use(spies); @@ -42,6 +41,7 @@ const WIDBoxWithoutErg = wasm.ErgoBox.from_json(JsonBI.stringify(WIDObj2)); const plainBox = [wasm.ErgoBox.from_json(JsonBI.stringify(plainObj))]; const signedTx = wasm.Transaction.from_json(JsonBI.stringify(txObj)); const repoBox1 = wasm.ErgoBox.from_json(JSON.stringify(repoBox1Obj)); +const repoConfig = wasm.ErgoBox.from_json(JSON.stringify(repoConfigObj)); const userAddress = '9h4gxtzV1f8oeujQUA5jeny1mCUCWKrCWrFUJv6mgxsmp5RxGb9'; const rwtID = @@ -114,6 +114,7 @@ describe('Commitment creation transaction tests', () => { chai.spy.on(boxes, 'createPermit'); chai.spy.on(boxes, 'createWIDBox'); chai.spy.on(ErgoUtils, 'getExtraTokenCount'); + sinon.stub(boxes, 'getRepoConfigBox').resolves(repoConfig); sinon.stub(boxes, 'RWTTokenId').value(wasm.TokenId.from_str(rwtID)); sinon.stub(ErgoNetwork, 'getMaxHeight').resolves(111); sinon.stub(ErgoUtils, 'createAndSignTx').resolves(signedTx); @@ -237,9 +238,8 @@ describe('Commitment creation transaction tests', () => { return; }); chai.spy.on(boxes, 'getPermits', () => permits); - chai.spy.on(boxes, 'getWIDBox', () => WIDBox); + chai.spy.on(boxes, 'getWIDBox', () => [WIDBox]); chai.spy.on(boxes, 'getUserPaymentBox'); - chai.spy.on(DetachWID, 'detachWIDtx', () => ''); sinon.stub(Transaction, 'watcherWID').value(WID); chai.spy.on(cc, 'createCommitmentTx', () => { return { txId: 'txId', commitmentBoxId: 'boxId' }; @@ -255,7 +255,6 @@ describe('Commitment creation transaction tests', () => { WIDBox, [] ); - expect(DetachWID.detachWIDtx).to.not.have.been.called(); }); /** @@ -278,7 +277,7 @@ describe('Commitment creation transaction tests', () => { return; }); chai.spy.on(boxes, 'getPermits', () => permits); - chai.spy.on(boxes, 'getWIDBox', () => WIDBoxWithoutErg); + chai.spy.on(boxes, 'getWIDBox', () => [WIDBoxWithoutErg]); chai.spy.on(boxes, 'getUserPaymentBox', () => plainBox); sinon.stub(Transaction, 'watcherWID').value(WID); chai.spy.on(cc, 'createCommitmentTx', () => { @@ -296,39 +295,5 @@ describe('Commitment creation transaction tests', () => { plainBox ); }); - - /** - * @target CommitmentCreation.job should call wid detach and skip the commitment creation - * @dependencies - * - WatcherUtils - * - Boxes - * - Transaction - * @scenario - * - mock detachWID - * - mock allReadyObservations to return the mocked observation - * - mock getPermits to return the mocked permit - * - mock getWIDBox to return the mocked WIDBox - * - mock WatcherWID to return a different token id - * - mock createCommitmentTx - * - run test - * - check calling detach tx - * - check not calling createCommitmentTx - * @expected - * - it should call DetachWID.detachWIDtx - * - should skip the rest of the process - */ - it('Should call wid detach and skip the commitment creation', async () => { - chai.spy.on(DetachWID, 'detachWIDtx', () => ''); - chai.spy.on(watcherUtils, 'allReadyObservations', () => [observation]); - chai.spy.on(boxes, 'getPermits', () => permits); - chai.spy.on(boxes, 'getWIDBox', () => WIDBoxWithoutErg); - sinon.stub(Transaction, 'watcherWID').value('differentWID'); - chai.spy.on(cc, 'createCommitmentTx', () => { - return { txId: 'txId', commitmentBoxId: 'boxId' }; - }); - await cc.job(); - expect(DetachWID.detachWIDtx).to.have.called(); - expect(cc.createCommitmentTx).to.not.have.called; - }); }); }); diff --git a/tests/ergo/transactions/commitmentRedeem.ts b/tests/ergo/transactions/commitmentRedeem.ts index b38035b0..fd07dc3a 100644 --- a/tests/ergo/transactions/commitmentRedeem.ts +++ b/tests/ergo/transactions/commitmentRedeem.ts @@ -23,8 +23,6 @@ import WIDObj2 from './dataset/WIDBox4.json' assert { type: 'json' }; import WIDObjWithoutErg from './dataset/WIDBoxWithoutErg.json' assert { type: 'json' }; import { CommitmentEntity } from '@rosen-bridge/watcher-data-extractor'; import { ObservationEntity } from '@rosen-bridge/observation-extractor'; -import { fail } from 'assert'; -import { DetachWID } from '../../../src/transactions/detachWID'; import { TxStatus } from '../../../src/database/entities/observationStatusEntity'; chai.use(spies); @@ -254,7 +252,6 @@ describe('Commitment redeem transaction tests', () => { * - mock allCommitedObservations to return the mocked observation with status * - mock getWIDBox to return the mocked WIDBox * - mock getUserPaymentBox - * - mock detachWID * - mock WatcherWID to return the correct test WID * - mock redeemCommitmentTx * - run test @@ -272,15 +269,13 @@ describe('Commitment redeem transaction tests', () => { { observation: observation, status: TxStatus.COMMITTED }, ]); chai.spy.on(watcherUtils, 'allTriggeredInvalidCommitments', () => []); - chai.spy.on(boxes, 'getWIDBox', () => WIDBox2); + chai.spy.on(boxes, 'getWIDBox', () => [WIDBox2]); chai.spy.on(boxes, 'getUserPaymentBox'); - chai.spy.on(DetachWID, 'detachWIDtx', () => ''); sinon.stub(Transaction, 'watcherWID').value(WID); chai.spy.on(cr, 'redeemCommitmentTx', () => WIDBox); await cr.job(); // Total value is enough should not call paymentBox expect(cr.redeemCommitmentTx).to.have.been.called(); - expect(DetachWID.detachWIDtx).to.not.have.been.called(); expect(boxes.getUserPaymentBox).to.not.have.called(); }); @@ -296,7 +291,6 @@ describe('Commitment redeem transaction tests', () => { * - mock allCommitedObservations to return the mocked observation with status * - mock getWIDBox to return the mocked WIDBox * - mock getUserPaymentBox - * - mock detachWID * - mock WatcherWID to return the correct test WID * - mock redeemCommitmentTx * - run test @@ -313,16 +307,14 @@ describe('Commitment redeem transaction tests', () => { chai.spy.on(watcherUtils, 'allCommitedObservations', () => [ { observation: observation, status: TxStatus.COMMITTED }, ]); - chai.spy.on(watcherUtils, 'allTriggeredInvalidCommitments', () => []) - chai.spy.on(boxes, 'getWIDBox', () => WIDBox); + chai.spy.on(watcherUtils, 'allTriggeredInvalidCommitments', () => []); + chai.spy.on(boxes, 'getWIDBox', () => [WIDBox]); chai.spy.on(boxes, 'getUserPaymentBox', () => [feeBox1]); - chai.spy.on(DetachWID, 'detachWIDtx', () => ''); sinon.stub(Transaction, 'watcherWID').value(WID); chai.spy.on(cr, 'redeemCommitmentTx', () => WIDBox2); await cr.job(); // Total value is NOT enough. Should call paymentBox expect(cr.redeemCommitmentTx).to.have.been.called(); - expect(DetachWID.detachWIDtx).to.not.have.been.called(); expect(boxes.getUserPaymentBox).to.have.called.once; }); @@ -337,7 +329,6 @@ describe('Commitment redeem transaction tests', () => { * - mock allCommitedObservations to return the mocked observation with status * - mock getWIDBox to return the mocked WIDBox * - mock getUserPaymentBox - * - mock detachWID * - mock WatcherWID to return the correct test WID * - mock redeemCommitmentTx * - run test @@ -358,50 +349,13 @@ describe('Commitment redeem transaction tests', () => { { observation: observation, status: TxStatus.COMMITTED }, ]); chai.spy.on(watcherUtils, 'allTriggeredInvalidCommitments', () => []); - chai.spy.on(boxes, 'getWIDBox', () => WIDBox); + chai.spy.on(boxes, 'getWIDBox', () => [WIDBox]); chai.spy.on(boxes, 'getUserPaymentBox', () => [feeBox1]); - chai.spy.on(DetachWID, 'detachWIDtx', () => ''); sinon.stub(Transaction, 'watcherWID').value(WID); chai.spy.on(cr, 'redeemCommitmentTx'); await cr.job(); expect(cr.redeemCommitmentTx).to.have.been.called.twice; - expect(DetachWID.detachWIDtx).to.not.have.been.called(); expect(boxes.getUserPaymentBox).to.have.called.twice; }); - - /** - * @target redeemCommitmentTx.job should call wid detach and skip the commitment redeem - * @dependencies - * - WatcherUtils - * - Boxes - * - Transaction - * @scenario - * - mock detachWID - * - mock allTimeoutCommitments to return two the mocked commitment - * - mock allCommitedObservations to return the mocked observation with status - * - mock getWIDBox to return the mocked WIDBox - * - mock WatcherWID to return a different token id - * - mock createCommitmentTx - * - run test - * - check calling detach tx - * - check not calling redeemCommitmentTx - * @expected - * - it should call DetachWID.detachWIDtx - * - should skip the rest of the process - */ - it('Should call wid detach and skip the commitment redeem', async () => { - chai.spy.on(DetachWID, 'detachWIDtx', () => ''); - chai.spy.on(watcherUtils, 'allTimeoutCommitments', () => [commitment]); - chai.spy.on(watcherUtils, 'allCommitedObservations', () => [ - { observation: observation, status: TxStatus.COMMITTED }, - ]); - chai.spy.on(watcherUtils, 'allTriggeredInvalidCommitments', () => []); - chai.spy.on(boxes, 'getWIDBox', () => WIDBoxWithoutErg); - sinon.stub(Transaction, 'watcherWID').value('differentWID'); - chai.spy.on(cr, 'redeemCommitmentTx'); - await cr.job(); - expect(DetachWID.detachWIDtx).to.have.called(); - expect(cr.redeemCommitmentTx).to.not.have.called; - }); }); }); diff --git a/tests/ergo/transactions/commitmentReveal.ts b/tests/ergo/transactions/commitmentReveal.ts index d556a220..b1e50b02 100644 --- a/tests/ergo/transactions/commitmentReveal.ts +++ b/tests/ergo/transactions/commitmentReveal.ts @@ -6,7 +6,6 @@ import { ErgoUtils } from '../../../src/ergo/utils'; import { ErgoNetwork } from '../../../src/ergo/network/ergoNetwork'; import { CommitmentReveal } from '../../../src/transactions/commitmentReveal'; import { Buffer } from 'buffer'; -import { CommitmentSet } from '../../../src/utils/interfaces'; import { observation } from './commitmentCreation'; import { TxType } from '../../../src/database/entities/txEntity'; import { secret1, userAddress } from './permit'; @@ -18,10 +17,10 @@ import chai from 'chai'; import spies from 'chai-spies'; import sinon from 'sinon'; -import repoBox1Obj from './dataset/repoBox1.json' assert { type: 'json' }; - chai.use(spies); +import repoBox1Obj from './dataset/repoBox1.json' assert { type: 'json' }; +import repoConfigObj from './dataset/repConfigBox.json' assert { type: 'json' }; import commitmentObj from './dataset/commitmentBox.json' assert { type: 'json' }; import WIDObj from './dataset/WIDBox.json' assert { type: 'json' }; import plainObj from './dataset/plainBox.json' assert { type: 'json' }; @@ -31,17 +30,16 @@ import { WatcherUtils, } from '../../../src/utils/watcherUtils'; import TransactionTest from '../../../src/api/TransactionTest'; +import { Transaction } from '../../../src/api/Transaction'; const commitments = [wasm.ErgoBox.from_json(JsonBI.stringify(commitmentObj))]; const WIDBox = wasm.ErgoBox.from_json(JsonBI.stringify(WIDObj)); const plainBox = [wasm.ErgoBox.from_json(JsonBI.stringify(plainObj))]; const signedTx = wasm.Transaction.from_json(JsonBI.stringify(txObj)); const repoBox1 = wasm.ErgoBox.from_json(JSON.stringify(repoBox1Obj)); +const repoConfigBox = wasm.ErgoBox.from_json(JSON.stringify(repoConfigObj)); -const WIDs = [ - Buffer.from(firstCommitment.WID, 'hex'), - Buffer.from(thirdCommitment.WID, 'hex'), -]; +const WIDs = [firstCommitment.WID, thirdCommitment.WID]; describe('Commitment reveal transaction tests', () => { let dataBase: WatcherDataBase, @@ -57,6 +55,7 @@ describe('Commitment reveal transaction tests', () => { boxes = new Boxes(dataBase); chai.spy.on(boxes, 'getRepoBox', () => WIDBox); TransactionTest.reset(); + chai.spy.on(Transaction, 'getWatcherState', () => undefined); await TransactionTest.setup(userAddress, secret1, boxes, dataBase); txUtils = new TransactionUtils(dataBase); transaction = TransactionTest.getInstance(); @@ -86,6 +85,7 @@ describe('Commitment reveal transaction tests', () => { await cr.triggerEventCreationTx( commitments, repoBox1, + repoConfigBox, observation, WIDs, plainBox diff --git a/tests/ergo/transactions/dataset/repConfigBox.json b/tests/ergo/transactions/dataset/repConfigBox.json new file mode 100644 index 00000000..03138f1e --- /dev/null +++ b/tests/ergo/transactions/dataset/repConfigBox.json @@ -0,0 +1,28 @@ +{ + "transactionId": "ea227d4688778a822d438c1094174ff8faa8faa9b98a3ea144f24d7e03316dc1", + "blockId": "f453d1456501f76cb143505af56f5b39773bc6b7c0fe74d6a515280a45c13296", + "value": 1100000, + "index": 1, + "globalIndex": 2384622, + "creationHeight": 1198624, + "settlementHeight": 1198626, + "ergoTree": "100604000400040004000e20648e9cf0b39560dd33454bb8e5c5e5bf48f12e161dc7c3112d8edfdb1606c40d0402d803d601b2db6501fe730000d602b2db6308b2a5730100730200d603b2db6308a7730300ea02d196830301aedb63087201d901044d0e938c7204017304938c7202018c720301938c7202028c72030298b2e4c672010510730500ade4c67201041ad901040ecdee7204", + "address": "prufxZid3SJMyUVhAa6eaMgMtHpTTkiF7FcKQaMurTF2iDyZaghSsYuMMLLQKsyFJyygHqSzuvAkokiTjZs2GXiF2JRW9JfXifKAYWSTLrZAHsk9ExH7jiJ5hT7Ex2YDBbRnoyafZ2j282op1wg4T3Yp7rzuihZShM1U96Xx4UF5MqnHJokjnogqjEMjUB1NgQ4Vha9eoHfepW1ULxdm", + "assets": [ + { + "tokenId": "99016d570b66c7188957cb72acbf131ab0be7611e011ba47c783a3c3f5773daf", + "index": 0, + "amount": 1, + "name": "E-RepoConfigNFT-loen", + "decimals": 0, + "type": "EIP-004" + } + ], + "additionalRegisters": { + "R4": { + "serializedValue": "1106028c01022880a8d6b90700" + } + }, + "spentTransactionId": null, + "mainChain": true +} diff --git a/tests/ergo/transactions/detachWID.ts b/tests/ergo/transactions/detachWID.ts index c5ef4b5f..a5c28bc7 100644 --- a/tests/ergo/transactions/detachWID.ts +++ b/tests/ergo/transactions/detachWID.ts @@ -66,7 +66,7 @@ describe('DetachWID', () => { sinon.stub(ErgoUtils, 'createAndSignTx').resolves(signedTx); chai.spy.on(boxes, 'getUserPaymentBox'); - await DetachWID.detachWIDtx(txUtils, boxes, WID, widBox); + await DetachWID.detachWIDtx(txUtils, boxes, WID, [widBox]); expect(txUtils.submitTransaction).to.have.been.called.with.exactly( signedTx, @@ -111,7 +111,7 @@ describe('DetachWID', () => { ]; }); - await DetachWID.detachWIDtx(txUtils, boxes, WID, widBox); + await DetachWID.detachWIDtx(txUtils, boxes, WID, [widBox]); expect(txUtils.submitTransaction).to.have.been.called.with.exactly( signedTx, diff --git a/tests/ergo/transactions/permit.ts b/tests/ergo/transactions/permit.ts index 9a2fdb56..72c175b3 100644 --- a/tests/ergo/transactions/permit.ts +++ b/tests/ergo/transactions/permit.ts @@ -13,7 +13,9 @@ import { mockedResponseBody } from '../objects/mockedResponseBody'; import { fillORM, loadDataBase } from '../../database/watcherDatabase'; import { ErgoNetwork } from '../../../src/ergo/network/ergoNetwork'; import TransactionTest from '../../../src/api/TransactionTest'; +import { Transaction } from '../../../src/api/Transaction'; import { TxType } from '../../../src/database/entities/txEntity'; +import { ErgoUtils } from '../../../src/ergo/utils'; chai.use(spies); @@ -81,29 +83,21 @@ describe('Watcher Permit Transactions', () => { * The function should return user WID */ it('checks is there any wid in the usersBoxes', async () => { - const sampleWID = - '4911d8b1e96bccba5cbbfe2938578b3b58a795156518959fcbfc3bd7232b35a8'; - chai.spy.on(boxes, 'getRepoBox', () => { - return wasm.ErgoBox.from_json(mockedResponseBody.repoBoxWithWIDToken); - }); - - chai.spy.on(ErgoNetwork, 'getBoxWithToken', (address, tokenId) => { - if (tokenId === sampleWID) - return wasm.ErgoBox.from_json( - mockedResponseBody.watcherBoxWithWIDToken - ); - else throw new Error('There is no box with this tokenId'); - }); - + chai.spy.on(ErgoUtils, 'getWatcherBalance', () => ({ + tokens: [ + { + tokenId: 'tokenId', + }, + { + tokenId: 'wid1', + }, + ], + })); + chai.spy.on(Transaction, 'getWatcherState', () => undefined); await TransactionTest.setup(userAddress, secret1, boxes, DB); TransactionTest.getInstance(); - const usersHex = ['414441', sampleWID]; - const users: Array = []; - for (const user of usersHex) { - users.push(hexStrToUint8Array(user)); - } - const WID = await TransactionTest.getWID(users); - expect(WID).to.be.equal(sampleWID); + const WID = await TransactionTest.getWID(['wid1', 'wid2']); + expect(WID).to.be.equal('wid1'); }); }); @@ -121,12 +115,7 @@ describe('Watcher Permit Transactions', () => { * the token map of input and output should be the same */ it('the token map of input and output should be the same', async () => { - chai.spy.on(boxes, 'getRepoBox', () => { - return wasm.ErgoBox.from_json(mockedResponseBody.repoBoxWithPermit); - }); - chai.spy.on(ErgoNetwork, 'getBoxWithToken', () => { - return wasm.ErgoBox.from_json(mockedResponseBody.watcherBox); - }); + chai.spy.on(Transaction, 'getWatcherState', () => undefined); await TransactionTest.setup(userAddress, secret1, boxes, DB); const transaction = TransactionTest.getInstance(); const ergoBoxes = wasm.ErgoBoxes.from_boxes_json([]); @@ -243,19 +232,7 @@ describe('Watcher Permit Transactions', () => { it('should return error when an active permit transaction is already in queue', async () => { await DB.submitTx('mockedTx', 'mockedTxId', TxType.PERMIT, 100); const mockedTx = (await DB.getActivePermitTransactions())[0]; - - chai.spy.on(boxes, 'getRepoBox', () => { - return wasm.ErgoBox.from_json(mockedResponseBody.repoBox); - }); - chai.spy.on(ErgoNetwork, 'getBoxWithToken', (address, tokenId) => { - if ( - tokenId === - 'a2a6c892c38d508a659caf857dbe29da4343371e597efd42e40f9bc99099a516' - ) - return wasm.ErgoBox.from_json(mockedResponseBody.watcherBox); - else throw Error('No box with token'); - }); - + chai.spy.on(Transaction, 'getWatcherState', () => undefined); await TransactionTest.setup(userAddress, secret1, boxes, DB); const transaction = TransactionTest.getInstance(); const res = await transaction.getPermit(100n); @@ -361,9 +338,7 @@ describe('Watcher Permit Transactions', () => { chai.spy.on(boxes, 'getPermits', () => { return [wasm.ErgoBox.from_json(boxesSample.firstWatcherPermitBox)]; }); - chai.spy.on(boxes, 'getRepoBox', () => { - return wasm.ErgoBox.from_json(boxesSample.secondRepoBox); - }); + chai.spy.on(Transaction, 'getWatcherState', () => undefined); await TransactionTest.setup( '9hz7H7bxzcEYLd333TocbEHawk7YKzdCgCg1PAaQVUWG83tghQL', secret2, @@ -393,21 +368,17 @@ describe('Watcher Permit Transactions', () => { * returnPermit should return true */ it('should be true', async () => { - initMockedAxios(); - chai.spy.on(boxes, 'getPermits', () => { - return [wasm.ErgoBox.from_json(mockedResponseBody.permitBox)]; - }); - chai.spy.on(boxes, 'getRepoBox', () => { - return wasm.ErgoBox.from_json(mockedResponseBody.repoBoxWithWIDToken); - }); - chai.spy.on(ErgoNetwork, 'getBoxWithToken', (address, tokenId) => { - if (tokenId === '6572676f') - throw Error('There is no box with token id'); - return wasm.ErgoBox.from_json( - mockedResponseBody.watcherBoxWithWIDToken - ); - }); - + chai.spy.on(DB, 'getAllWids', () => ['wid1', 'wid2']); + chai.spy.on(ErgoUtils, 'getWatcherBalance', () => ({ + tokens: [ + { + tokenId: 'tokenId', + }, + { + tokenId: 'wid1', + }, + ], + })); await TransactionTest.setup(watcherAddress, permitSecret, boxes, DB); const transaction = TransactionTest.getInstance(); await TransactionTest.getWatcherState(); @@ -427,16 +398,17 @@ describe('Watcher Permit Transactions', () => { * returnPermit should return false */ it('should be false', async () => { - initMockedAxios(); - chai.spy.on(boxes, 'getPermits', () => { - return [wasm.ErgoBox.from_json(mockedResponseBody.permitBox)]; - }); - chai.spy.on(boxes, 'getRepoBox', () => { - return wasm.ErgoBox.from_json(mockedResponseBody.repoBoxWithWIDToken); - }); - chai.spy.on(ErgoNetwork, 'getBoxWithToken', () => { - throw Error('There is no box with token id'); - }); + chai.spy.on(DB, 'getAllWids', () => ['wid1', 'wid2']); + chai.spy.on(ErgoUtils, 'getWatcherBalance', () => ({ + tokens: [ + { + tokenId: 'tokenId', + }, + { + tokenId: 'tokenId2', + }, + ], + })); await TransactionTest.setup(watcherAddress, permitSecret, boxes, DB); TransactionTest.getInstance(); await TransactionTest.getWatcherState(); diff --git a/tests/ergoUtils/boxes.ts b/tests/ergoUtils/boxes.ts index 1c496076..d88ef938 100644 --- a/tests/ergoUtils/boxes.ts +++ b/tests/ergoUtils/boxes.ts @@ -215,7 +215,7 @@ describe('Testing Box Creation', () => { const data = await boxes.getWIDBox( 'f875d3b916e56056968d02018133d1c122764d5c70538e70e56199f431e95e9b' ); - expect(data.box_id().to_str()).to.eq(WIDBox.boxId); + expect(data[0].box_id().to_str()).to.eq(WIDBox.boxId); }); }); @@ -233,7 +233,7 @@ describe('Testing Box Creation', () => { // chai.spy.on(boxes, 'getWIDBox', () => undefined); const WID = 'f875d3b916e56056968d02018133d1c122764d5c70538e70e56199f431e95e9b'; - const data = boxes.createWIDBox(111, WID, '1000000'); + const data = boxes.createWIDBox(111, WID, '1000000', '1'); expect(data.creation_height()).to.eq(111); expect(data.tokens().get(0).id().to_str()).to.eq(WID); expect(data.tokens().get(0).amount().as_i64().to_str()).to.eq('1'); @@ -407,17 +407,18 @@ describe('Testing Box Creation', () => { it('checks repoBox tokens order and count', async () => { const RWTCount = '100'; const RSNCount = '1'; + const AWCCount = '10'; const repoBox = await boxes.createRepo( 0, + '1100000', RWTCount, RSNCount, - [new Uint8Array([])], - [], - wasm.Constant.from_i64_str_array([]), + AWCCount, + new Uint8Array(), 0 ); - expect(repoBox.tokens().len()).to.be.equal(3); + expect(repoBox.tokens().len()).to.be.equal(4); expect(repoBox.value().as_i64().to_str()).to.be.equal(config.minBoxValue); expect(repoBox.tokens().get(1).amount().as_i64().to_str()).to.be.equal( RWTCount @@ -425,6 +426,18 @@ describe('Testing Box Creation', () => { expect(repoBox.tokens().get(2).amount().as_i64().to_str()).to.be.equal( RSNCount ); + expect(repoBox.tokens().get(3).amount().as_i64().to_str()).to.be.equal( + AWCCount + ); + expect(repoBox.tokens().get(1).id().to_str()).to.be.equal( + getConfig().rosen.RWTId + ); + expect(repoBox.tokens().get(2).id().to_str()).to.be.equal( + getConfig().rosen.RSN + ); + expect(repoBox.tokens().get(3).id().to_str()).to.be.equal( + getConfig().rosen.AWC + ); }); }); @@ -450,12 +463,7 @@ describe('Testing Box Creation', () => { expect(permitBox.tokens().get(0).id().to_str()).to.be.equal( getConfig().rosen.RWTId ); - expect( - permitBox.register_value(4)?.to_coll_coll_byte().length - ).to.be.equal(1); - expect(permitBox.register_value(4)?.to_coll_coll_byte()[0]).to.be.eql( - WID - ); + expect(permitBox.register_value(4)?.to_byte_array()).to.be.eql(WID); }); }); @@ -538,7 +546,7 @@ describe('Testing Box Creation', () => { const data = boxes.createTriggerEvent( value, 10, - [Buffer.from(WID), Buffer.from(WID)], + [WID, WID], firstObservation, 2n ); diff --git a/tests/ergoUtils/dataset/repoBox.json b/tests/ergoUtils/dataset/repoBox.json index af25fe54..06b988b8 100644 --- a/tests/ergoUtils/dataset/repoBox.json +++ b/tests/ergoUtils/dataset/repoBox.json @@ -1,5 +1,5 @@ { - "boxId": "c6629ef7b51112a6775342ceca73e41ecc17af2bb85932fb8e7f3832c40bef41", + "boxId": "0592bc1526cf72ed1e8e66944c00e929bee4994647928b57874d80450f6bca76", "value": 1100000, "ergoTree": "101c040204000e20a6ac381e6fa99929fd1477b3ba9499790a775e91d4c14c5aa86e9a118dfac8530101040204000402040404040400040004020402040204000400040004000e2013fe3ae277a195b83048e3e268529118fa4c18cca0931e3b48a8f5fccec75bc9040404000400040204020400040004000400d801d601b2a473000095938cb2db63087201730100017302d17303d811d602db6308a7d603b27202730400d6048c720302d605b2a5730500d606db63087205d607b27206730600d6088c720702d609e4c6a70511d60ab17209d60be4c672050511d60cb1720bd60de4c6a70611d60eb27206730700d60f8c720e02d610b27202730800d6118c721002d6129683050193c27205c2a793e4c672050611720d938cb27206730900018cb27202730a0001938c7207018c720301938c720e018c721001959172047208d806d613e4c67205041ad6149a720a730bd61599720c730cd616c5a7d6179972047208d618b2a5730d00d196830c01721293b17213721493b47213730e7215e4c6a7041a93b27213721500721693720c721493b4720b730f7215720993b2720b7215007217939c7217b2720d73100099720f7211938cb2db6308721873110002721793cbc27218731293e4c67218041a83010e7216938cb2db6308b2a5731300731400017216d804d613e4c6a7041ad614e4c672050704d6159972087204d616b27209721400d19683040172129383010eb27213721400e4c67201041a939c7215b2720d731500997211720f959172167215968302019372169ab2720b7214007215937213e4c67205041ad803d617e4c67205041ad6189a72147316d61999720a731796830501937216721593b4721373187214b472177319721493b472137218720ab472177214721993b47209731a7214b4720b731b721493b472097218720ab4720b72147219", "assets": [ @@ -16,13 +16,11 @@ "amount": 1001 } ], - "creationHeight": 224048, "additionalRegisters": { - "R4": "1a080341444120e7e510a1efceaba04926a23135caec8d28d8f5564c9f6a1e162a5415bf344b4020f8685c0397fbe7a7684324d678930830924d1d0954e433ae06fa988d998ab7e720d1907f8d9b649ab27eaba1f5788ff22a0ab5e5ae37187bc8c0ee32dccfc74c6d20906d389a39c914a393cb06c0ab7557d04b58f7e9e73284aac520d08e7dd46a8220e8aeca43ed5a9a8b5c7fea6890e3a159c591c685c0e0dfe06c8efa7b927113792009a37504235f97b8956f8d80da4d707316b8b695cab0d9d0f6e4d5f4ebca84fb205a1f5f711c9606139b54a5d3658f80ae10e36f2382f81fd2ca52b352a59464f1", - "R5": "11080002020206040202", - "R6": "1104c80166009e9c01", - "R7": "0400" + "R5": "050e", + "R4": "1a010763617264616e6f" }, + "creationHeight": 224048, "transactionId": "db283ad1ba4c51ab489a6f5b4664e008d44c8b656faf9b28514ce32f1d8e68ac", "index": 0 } diff --git a/tests/ergoUtils/dataset/repoConfigBox.json b/tests/ergoUtils/dataset/repoConfigBox.json new file mode 100644 index 00000000..76bc7047 --- /dev/null +++ b/tests/ergoUtils/dataset/repoConfigBox.json @@ -0,0 +1,17 @@ +{ + "boxId": "93e4b4a21b98a4d90099091b98531fa44df3380a0206e412c8b6cbcc0dd71596", + "value": 1100000, + "ergoTree": "100604000400040004000e20648e9cf0b39560dd33454bb8e5c5e5bf48f12e161dc7c3112d8edfdb1606c40d0402d803d601b2db6501fe730000d602b2db6308b2a5730100730200d603b2db6308a7730300ea02d196830301aedb63087201d901044d0e938c7204017304938c7202018c720301938c7202028c72030298b2e4c672010510730500ade4c67201041ad901040ecdee7204", + "assets": [ + { + "tokenId": "99016d570b66c7188957cb72acbf131ab0be7611e011ba47c783a3c3f5773daf", + "amount": 1 + } + ], + "additionalRegisters": { + "R4": "1104c80166009e9c01" + }, + "creationHeight": 1198624, + "transactionId": "ea227d4688778a822d438c1094174ff8faa8faa9b98a3ea144f24d7e03316dc1", + "index": 1 +} diff --git a/tests/ergoUtils/utils.ts b/tests/ergoUtils/utils.ts index f11be6cc..67af4247 100644 --- a/tests/ergoUtils/utils.ts +++ b/tests/ergoUtils/utils.ts @@ -49,6 +49,7 @@ const userSecret = wasm.SecretKey.dlog_from_bytes( ); import repoObj from './dataset/repoBox.json' assert { type: 'json' }; +import repoConfigObj from './dataset/repoConfigBox.json' assert { type: 'json' }; import { getConfig } from '../../src/config/config'; import { Transaction } from '../../src/api/Transaction'; import sinon from 'sinon'; @@ -58,6 +59,7 @@ import { initWatcherDB } from '../../src/init'; import { permitMockRWT, validBox1Token } from '../database/mockedData'; const repoBox = JSON.stringify(repoObj); +const repoConfigBox = JSON.stringify(repoConfigObj); describe('Testing ergoUtils', () => { describe('commitmentFromObservation', () => { @@ -360,8 +362,9 @@ describe('Testing ergoUtils', () => { * => result = 4 */ it('should return formula number as the required commitment count', async () => { - const box = wasm.ErgoBox.from_json(repoBox); - const data = ErgoUtils.requiredCommitmentCount(box); + const repo = wasm.ErgoBox.from_json(repoBox); + const config = wasm.ErgoBox.from_json(repoConfigBox); + const data = ErgoUtils.requiredCommitmentCount(repo, config); expect(data).to.eql(BigInt(4)); }); }); diff --git a/tests/ergoUtils/watcherUtils.ts b/tests/ergoUtils/watcherUtils.ts index cb80606c..e718ee3c 100644 --- a/tests/ergoUtils/watcherUtils.ts +++ b/tests/ergoUtils/watcherUtils.ts @@ -27,8 +27,8 @@ import { NoObservationStatus } from '../../src/errors/errors'; import { ErgoNetwork } from '../../src/ergo/network/ergoNetwork'; import { TransactionUtils, WatcherUtils } from '../../src/utils/watcherUtils'; import TransactionTest from '../../src/api/TransactionTest'; -import MinimumFee from '../../src/utils/MinimumFee'; -import { Fee } from '@rosen-bridge/minimum-fee'; +import MinimumFeeHandler from '../../src/utils/MinimumFeeHandler'; +import { ChainMinimumFee } from '@rosen-bridge/minimum-fee'; chai.use(spies); @@ -474,13 +474,17 @@ describe('Testing the WatcherUtils & TransactionUtils', () => { * The function should return false since the bridgeFee + networkFee is greater than amount of observation */ it('should return false since the bridgeFee + networkFee is greater than amount of observation', async () => { - const fee: Fee = { + const fee: ChainMinimumFee = { bridgeFee: 100000n, networkFee: 100000n, rsnRatio: 0n, feeRatio: 0n, + rsnRatioDivisor: 1000000000000n, + feeRatioDivisor: 10000n, }; - chai.spy.on(MinimumFee, 'getEventFeeConfig', () => fee); + const minimumFeeInstance = {}; + chai.spy.on(MinimumFeeHandler, 'getInstance', () => minimumFeeInstance); + chai.spy.on(minimumFeeInstance, 'getEventFeeConfig', () => fee); const data = await watcherUtils.hasValidAmount(observationEntity1); expect(data).to.be.false; @@ -493,13 +497,17 @@ describe('Testing the WatcherUtils & TransactionUtils', () => { * The function should return true since the bridgeFee + networkFee is less than amount of observation */ it('should return true since the bridgeFee + networkFee is less than amount of observation', async () => { - const fee: Fee = { + const fee: ChainMinimumFee = { bridgeFee: 2n, networkFee: 2n, rsnRatio: 0n, feeRatio: 0n, + rsnRatioDivisor: 1000000000000n, + feeRatioDivisor: 10000n, }; - chai.spy.on(MinimumFee, 'getEventFeeConfig', () => fee); + const minimumFeeInstance = {}; + chai.spy.on(MinimumFeeHandler, 'getInstance', () => minimumFeeInstance); + chai.spy.on(minimumFeeInstance, 'getEventFeeConfig', () => fee); const data = await watcherUtils.hasValidAmount(observationEntity1); expect(data).to.be.true;