diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 594770798..000000000 --- a/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -src/vendor -src/generated diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index aa1453fea..0b20b5f92 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -11,7 +11,7 @@ assignees: '' A clear and concise description of what the bug is. **What version are you on?** -Check `yarn.lock` or `package-lock.json` to find out precisely what version of `stellar-base` you're running. +Check `pnpm-lock.yaml` or `package-lock.json` to find out precisely what version of `stellar-base` you're running. **To Reproduce** Steps to reproduce the behavior: diff --git a/.github/workflows/bundle_size.yml b/.github/workflows/bundle_size.yml index 4b11b9992..365ba3d30 100644 --- a/.github/workflows/bundle_size.yml +++ b/.github/workflows/bundle_size.yml @@ -9,22 +9,26 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 9.15.3 + - name: Install Node.js 20 uses: actions/setup-node@v4 with: - node-version: '20.x' + node-version: "20.x" + cache: "pnpm" - # Workaround for some `yarn` nonsense, see: - # https://github.com/yarnpkg/yarn/issues/6312#issuecomment-429685210 - name: Install Dependencies - run: yarn install --network-concurrency 1 + run: pnpm install --frozen-lockfile - name: Build All - run: yarn build:prod + run: pnpm run build:prod - name: Report Bundle Size uses: preactjs/compressed-size-action@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} pattern: "dist/*.js" - compression: "none" \ No newline at end of file + compression: "none" diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 7216cb90d..2002123cd 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -2,7 +2,7 @@ name: Code Formatting on: push: - branches: [ master ] + branches: [master] pull_request: jobs: @@ -12,15 +12,21 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 9.15.3 + - name: Use Node.js 20 uses: actions/setup-node@v4 with: - node-version: '20.x' + node-version: "20.x" + cache: "pnpm" - # Workaround for some `yarn` nonsense, see: - # https://github.com/yarnpkg/yarn/issues/6312#issuecomment-429685210 - name: Install Dependencies - run: yarn install --network-concurrency 1 - + run: pnpm install --frozen-lockfile + - name: Check local TS version + run: pnpm tsc --version - name: Run Linter Checks - run: yarn fmt && yarn lint && (git diff-index --quiet HEAD; git diff) + run: | + pnpm run fmt && pnpm run lint && (git diff-index --quiet HEAD -- src/ test/; git diff -- src/ test/) diff --git a/.github/workflows/gh_pages.yml b/.github/workflows/gh_pages.yml index a7a4ecee6..1f761846b 100644 --- a/.github/workflows/gh_pages.yml +++ b/.github/workflows/gh_pages.yml @@ -12,16 +12,22 @@ jobs: with: fetch-depth: 0 + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 9.15.3 + - name: Install Node (20.x) uses: actions/setup-node@v4 with: node-version: 20 + cache: "pnpm" - name: Install Dependencies - run: yarn install + run: pnpm install --frozen-lockfile - name: Build & Test - run: yarn preversion + run: pnpm run preversion - name: Checkout GH pages uses: actions/checkout@v4 @@ -33,7 +39,7 @@ jobs: - name: Generate JS docs # because parsing errors still result in renderable docs continue-on-error: true - run: yarn docs + run: pnpm run docs - name: Publish JS docs run: | diff --git a/.github/workflows/npm_publish.yml b/.github/workflows/npm_publish.yml index 5cbddb17e..bfabcf892 100644 --- a/.github/workflows/npm_publish.yml +++ b/.github/workflows/npm_publish.yml @@ -4,7 +4,7 @@ on: types: [published] permissions: - id-token: write # Required for OIDC + id-token: write # Required for OIDC contents: read jobs: @@ -14,17 +14,23 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 9.15.3 + - name: Install Node uses: actions/setup-node@v4 with: - node-version: '20.x' - registry-url: 'https://registry.npmjs.org' + node-version: "20.x" + registry-url: "https://registry.npmjs.org" + cache: "pnpm" - - name: Install Depencencies - run: yarn install + - name: Install Dependencies + run: pnpm install --frozen-lockfile - name: Test & Build - run: yarn preversion + run: pnpm run preversion - name: Publish npm package to both places - run: yarn publish --access public --provenance + run: pnpm publish --access public --provenance diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6f8657aeb..9d6b4d3c7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -2,7 +2,7 @@ name: Tests on: push: - branches: [ master ] + branches: [master] pull_request: jobs: @@ -19,21 +19,28 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 9.15.3 + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} + cache: "pnpm" - # Workaround for some `yarn` nonsense, see: - # https://github.com/yarnpkg/yarn/issues/6312#issuecomment-429685210 - name: Install Dependencies - run: yarn install --network-concurrency 1 + run: pnpm install --frozen-lockfile - name: Build All - run: yarn build:prod + run: pnpm run build:prod - name: Run Node Tests - run: yarn test:node + run: pnpm run test:node + + - name: Run Vitest Tests + run: pnpm run test:vitest - name: Run Browser Tests - run: yarn test:browser + run: pnpm run test:browser diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..770533cbe --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "eslint.options": { + "overrideConfigFile": "./config/eslint.config.cjs" + }, + "prettier.configPath": "./config/prettier.config.cjs", + "prettier.ignorePath": "./config/.prettierignore" +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f028146cb..3bbeee964 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,42 +1,75 @@ # How to contribute -Please read the [Contribution Guide](https://github.com/stellar/docs/blob/master/CONTRIBUTING.md). - -Then please [sign the Contributor License Agreement](https://docs.google.com/forms/d/1g7EF6PERciwn7zfmfke5Sir2n10yddGGSXyZsq98tVY/viewform?usp=send_form). - +Please read the +[Contribution Guide](https://github.com/stellar/docs/blob/master/CONTRIBUTING.md). +Then please +[sign the Contributor License Agreement](https://docs.google.com/forms/d/1g7EF6PERciwn7zfmfke5Sir2n10yddGGSXyZsq98tVY/viewform?usp=send_form). # Releasing -SDK maintainers should follow [semantic versioning](https://semver.org/) best practices for releasing the SDK. -Use your best judgement when deciding on when to craft a release: maybe enough changes have accumulated to warrant a release, maybe there's a high-urgency fix that needs to be published immediately, or maybe you can put it off for a particular feature. It's all dependent on what else is going on. +SDK maintainers should follow [semantic versioning](https://semver.org/) best +practices for releasing the SDK. + +Use your best judgement when deciding on when to craft a release: maybe enough +changes have accumulated to warrant a release, maybe there's a high-urgency fix +that needs to be published immediately, or maybe you can put it off for a +particular feature. It's all dependent on what else is going on. -As you probably already know, there are two main components to the JavaScript SDK environment: the `stellar-base` package (this repo) and the higher-level `stellar-sdk` package (from [here](https://github.com/stellar/js-stellar-sdk)) that relies on this one as a dependency. Care should be taken when updating either, as there are quite a few small steps that can get overlooked. +As you probably already know, there are two main components to the JavaScript +SDK environment: the `stellar-base` package (this repo) and the higher-level +`stellar-sdk` package (from [here](https://github.com/stellar/js-stellar-sdk)) +that relies on this one as a dependency. Care should be taken when updating +either, as there are quite a few small steps that can get overlooked. ### Updating Base -Once all of the PRs for a particular release are in, it's time to actually publish & deploy a new version. - - [ ] Create a new branch with the new version, e.g. `git switch -C v1.0.0` +Once all of the PRs for a particular release are in, it's time to actually +publish & deploy a new version. - - [ ] First, look at the diff between the latest release and master: e.g. https://github.com/stellar/js-stellar-base/compare/v5.1.0...master. Replace `v5.1.0` here with the [latest release](https://github.com/stellar/js-stellar-base/releases/latest). +- [ ] Create a new branch with the new version, e.g. `git switch -C v1.0.0` - - [ ] Ensure that all of the PRs in this delta are accurately reflected in the [CHANGELOG](./CHANGELOG.md), broken down by impact and linking to the corresponding PRs. Update the file if necessary. +- [ ] First, look at the diff between the latest release and master: e.g. + https://github.com/stellar/js-stellar-base/compare/v5.1.0...master. + Replace `v5.1.0` here with the + [latest release](https://github.com/stellar/js-stellar-base/releases/latest). - - [ ] Ensure that the version being deprecated in the `npm_publish.yml` Action matches the latest `package.json` version: we want to ensure everything in `stellar-base` gets deprecated, but `@stellar/stellar-base` is not. +- [ ] Ensure that all of the PRs in this delta are accurately reflected in the + [CHANGELOG](./CHANGELOG.md), broken down by impact and linking to the + corresponding PRs. Update the file if necessary. - - [ ] Run `yarn preversion` to build and test an optimized bundle and ensure Typescript compatibility (one of the most common sources of bugs, since this library is written purely in JS but must be usable from TS). +- [ ] Ensure that the version being deprecated in the `npm_publish.yml` Action + matches the latest `package.json` version: we want to ensure everything in + `stellar-base` gets deprecated, but `@stellar/stellar-base` is not. - - [ ] Run `yarn version` to update the version number in the package.json (or modify the `"version"` field manually). +- [ ] Run `pnpm run preversion` to build and test an optimized bundle and ensure + Typescript compatibility (one of the most common sources of bugs, since + this library is written purely in JS but must be usable from TS). - - [ ] Commit & push your branch, then [create a PR](https://github.com/stellar/js-stellar-base/compare). +- [ ] Run `pnpm version` to update the version number in the package.json (or + modify the `"version"` field manually). - - [ ] Once approved, merge it and then [create a new release](https://github.com/stellar/js-stellar-base/releases/new), using the same version as you did for the branch; **let GitHub create the tag for you**. In the description for the release, paste in the relevant parts of the [CHANGELOG](./CHANGELOG.md). +- [ ] Commit & push your branch, then + [create a PR](https://github.com/stellar/js-stellar-base/compare). - - [ ] Once the release has been created and the build succeeds, the new version should be deployed to `npm` and accessible to all. You can watch this yourself, either via the [`npm` page](https://www.npmjs.com/package/stellar-base) or from the command line: +- [ ] Once approved, merge it and then + [create a new release](https://github.com/stellar/js-stellar-base/releases/new), + using the same version as you did for the branch; **let GitHub create the + tag for you**. In the description for the release, paste in the relevant + parts of the [CHANGELOG](./CHANGELOG.md). + +- [ ] Once the release has been created and the build succeeds, the new version + should be deployed to `npm` and accessible to all. You can watch this + yourself, either via the + [`npm` page](https://www.npmjs.com/package/stellar-base) or from the + command line: ```bash watch 'curl -s "https://registry.npmjs.org/stellar-base" | jq ".versions | keys | last"' ``` ### Updating SDK -Refer to the SDK's [contributing guide](https://github.com/stellar/js-stellar-sdk/blob/master/CONTRIBUTING.md#Releasing) for any additional steps required there. + +Refer to the SDK's +[contributing guide](https://github.com/stellar/js-stellar-sdk/blob/master/CONTRIBUTING.md#Releasing) +for any additional steps required there. diff --git a/README.md b/README.md index 8bd999a21..99b8f6114 100644 --- a/README.md +++ b/README.md @@ -12,22 +12,32 @@ implementation in JavaScript that can be used on either Node.js or web browsers. - **[API Reference](https://stellar.github.io/js-stellar-base/)** -> **Warning!** The Node version of this package uses the [`sodium-native`](https://www.npmjs.com/package/sodium-native) package, a native implementation of [Ed25519](https://ed25519.cr.yp.to/) in Node.js, as an [optional dependency](https://docs.npmjs.com/files/package.json#optionaldependencies). -> This means that if for any reason installation of this package fails, `stellar-base` will fallback to the much slower implementation contained in [`tweetnacl`](https://www.npmjs.com/package/tweetnacl). +> **Warning!** The Node version of this package uses the +> [`sodium-native`](https://www.npmjs.com/package/sodium-native) package, a +> native implementation of [Ed25519](https://ed25519.cr.yp.to/) in Node.js, as +> an +> [optional dependency](https://docs.npmjs.com/files/package.json#optionaldependencies). +> This means that if for any reason installation of this package fails, +> `stellar-base` will fallback to the much slower implementation contained in +> [`tweetnacl`](https://www.npmjs.com/package/tweetnacl). > -> If you'd explicitly prefer **not** to install the `sodium-native` package, pass the appropriate flag to skip optional dependencies when installing this package (e.g. `--no-optional` if using `npm install` or `--without-optional` using `yarn install`). +> If you'd explicitly prefer **not** to install the `sodium-native` package, +> pass the appropriate flag to skip optional dependencies when installing this +> package (e.g. `--no-optional` if using `npm install` or `--no-optional` using +> `pnpm install`). > -> If you are using `stellar-base` in a browser you can ignore this. However, for production backend deployments you should most likely be using `sodium-native`. -> If `sodium-native` is successfully installed and working, +> If you are using `stellar-base` in a browser you can ignore this. However, for +> production backend deployments you should most likely be using +> `sodium-native`. If `sodium-native` is successfully installed and working, > `StellarBase.FastSigning` variable will be equal `true`. Otherwise it will be > `false`. ## Quick start -Using yarn to include js-stellar-base in your own project: +Using pnpm to include js-stellar-base in your own project: ```shell -yarn add @stellar/stellar-base +pnpm add @stellar/stellar-base ``` For browsers, [use Bower to install it](#to-use-in-the-browser). It exports a @@ -45,16 +55,16 @@ relative to your html file. ### To use as a module in a Node.js project -1. Install it using yarn: +1. Install it using pnpm: ```shell -yarn add @stellar/stellar-base +pnpm add @stellar/stellar-base ``` 2. require/import it in your JavaScript: ```js -var StellarBase = require("@stellar/stellar-base"); +var StellarBase = require('@stellar/stellar-base'); ``` ### To self host for use in the browser @@ -100,17 +110,21 @@ Make sure that you are using the latest version number. They can be found on the 1. Install Node 20.x -We support the oldest LTS release of Node, which is [currently 20.x](https://nodejs.org/en/about/releases/). +We support the oldest LTS release of Node, which is +[currently 20.x](https://nodejs.org/en/about/releases/). -If you work on several projects that use different Node versions, you might find helpful to install a NodeJS version manager: +If you work on several projects that use different Node versions, you might find +helpful to install a NodeJS version manager: - https://github.com/creationix/nvm - https://github.com/wbyoung/avn - https://github.com/asdf-vm/asdf -2. Install Yarn +2. Install pnpm -This project uses [Yarn](https://yarnpkg.com/) to manages its dependencies. To install Yarn, follow the project instructions available at https://yarnpkg.com/en/docs/install. +This project uses [pnpm](https://pnpm.io/) to manage its dependencies. To +install pnpm, follow the project instructions available at +https://pnpm.io/installation. 3. Clone the repo @@ -122,7 +136,7 @@ git clone https://github.com/stellar/js-stellar-base.git ```shell cd js-stellar-base -yarn +pnpm install ``` 5. Observe the project's code style @@ -131,13 +145,13 @@ While you're making changes, make sure to regularly run the linter to catch any linting errors (in addition to making sure your text editor supports ESLint) ```shell -yarn lint +pnpm run lint ``` as well as fixing any formatting errors with ```shell -yarn fmt +pnpm run fmt ``` #### Updating XDR definitions @@ -146,20 +160,28 @@ XDR updates are complicated due to the fact that you need workarounds for bugs in the generator, formatter, or a namespace adjustment. 1. Make sure you have [Docker](https://www.docker.com/) installed and running. -2. Change the commit hash to the right version of [stellar-xdr](https://github.com/stellar/stellar-xdr) and add any filenames that might've been introduced. +2. Change the commit hash to the right version of + [stellar-xdr](https://github.com/stellar/stellar-xdr) and add any filenames + that might've been introduced. 3. Run `make reset-xdr` -4. Run `sed -ie s/\"/\'/g types/{curr,next}.d.ts` to minimize the diff (the generator's formatter uses `"` but the repo uses `'`). -5. Move `xdr.Operation` into a hidden namespace to avoid conflicts with the SDK's `Operation`. +4. Run `sed -ie s/\"/\'/g types/{curr,next}.d.ts` to minimize the diff (the + generator's formatter uses `"` but the repo uses `'`). +5. Move `xdr.Operation` into a hidden namespace to avoid conflicts with the + SDK's `Operation`. 6. Add generator workarounds: - `type Hash = Opaque[]` is a necessary alias that doesn't get generated -- `Hyper`, `UnsignedHyper`, and `ScSpecEventV0` need their signatures - fixed because linting wants an `Array` instead of a naked `[]`. -- Some constants aren't generated correctly (e.g, Ctrl+F `SCSYMBOL_LIMIT` in `src/curr_generated.js`) +- `Hyper`, `UnsignedHyper`, and `ScSpecEventV0` need their signatures fixed + because linting wants an `Array` instead of a naked `[]`. +- Some constants aren't generated correctly (e.g, Ctrl+F `SCSYMBOL_LIMIT` in + `src/curr_generated.js`) -7. Finally, make code adjustments related to the XDR (these are usually revealed by running the tests). +7. Finally, make code adjustments related to the XDR (these are usually revealed + by running the tests). -As an example PR to follow, [stellar-base#800](https://github.com/stellar/js-stellar-base/pull/800) has detailed steps for each part of the process. +As an example PR to follow, +[stellar-base#800](https://github.com/stellar/js-stellar-base/pull/800) has +detailed steps for each part of the process. ## Usage @@ -171,14 +193,14 @@ For information on how to use js-stellar-base, take a look at the docs in the To run all tests: ```shell -yarn test +pnpm run test ``` To run a specific set of tests: ```shell -yarn test:node -yarn test:browser +pnpm run test:node +pnpm run test:browser ``` Tests are also run automatically in Github Actions for every master commit and diff --git a/config/.eslintrc.js b/config/.eslintrc.js deleted file mode 100644 index 1ed1e0a91..000000000 --- a/config/.eslintrc.js +++ /dev/null @@ -1,43 +0,0 @@ -module.exports = { - env: { - es6: true, - es2020: true - }, - extends: ['airbnb-base', 'prettier'], - plugins: ['@babel', 'prettier', 'prefer-import'], - parser: '@babel/eslint-parser', - rules: { - // OFF - 'import/prefer-default-export': 0, - 'node/no-unsupported-features/es-syntax': 0, - 'node/no-unsupported-features/es-builtins': 0, - camelcase: 0, - 'class-methods-use-this': 0, - 'linebreak-style': 0, - 'new-cap': 0, - 'no-param-reassign': 0, - 'no-underscore-dangle': 0, - 'no-use-before-define': 0, - 'prefer-destructuring': 0, - 'lines-between-class-members': 0, - - // WARN - 'prefer-import/prefer-import-over-require': [1], - 'no-console': ['warn', { allow: ['assert'] }], - 'no-debugger': 1, - 'no-unused-vars': 1, - 'arrow-body-style': 1, - 'valid-jsdoc': [ - 1, - { - requireReturnDescription: false - } - ], - 'prefer-const': 1, - 'object-shorthand': 1, - 'require-await': 1, - - // ERROR - 'no-unused-expressions': [2, { allowTaggedTemplates: true }] - } -}; diff --git a/config/eslint.config.cjs b/config/eslint.config.cjs new file mode 100644 index 000000000..700d8695d --- /dev/null +++ b/config/eslint.config.cjs @@ -0,0 +1,90 @@ +const eslint = require("@eslint/js"); +const eslintConfig = require("eslint/config"); +const globals = require("globals"); +const tseslint = require("typescript-eslint"); +const { includeIgnoreFile } = require("@eslint/compat"); +const path = require("path"); +const importPlugin = require("eslint-plugin-import-x"); + +const gitignorePath = path.resolve(__dirname, "..", ".gitignore"); + +function addTypeScriptLanguageOptions(config) { + return { + ...config, + files: ["**/*.ts"], + languageOptions: { + ...config.languageOptions, + globals: { + ...config.languageOptions?.globals, + ...globals.es2020, + ...globals["shared-node-browser"], + Buffer: "readonly" + }, + parserOptions: { + projectService: true + }, + sourceType: "module" + } + }; +} + +const javascriptConfig = [ + eslint.configs.recommended, + { + name: "javascript/node-globals", + files: ["**/*.js"], + languageOptions: { + globals: { + ...globals.es2020, + ...globals["shared-node-browser"], + // This can be removed once we migrate fully to ESM + ...globals.commonjs, + Buffer: "readonly" + } + }, + rules: { + "no-unused-vars": ["error", { caughtErrors: "none" }] + } + }, + { + name: "test/globals", + files: ["test/**/*.js"], + languageOptions: { + globals: { + ...globals.mocha, + StellarBase: "readonly", + expect: "readonly", + chai: "readonly", + sinon: "readonly" + } + } + } +]; + +module.exports = eslintConfig.defineConfig( + includeIgnoreFile(gitignorePath), + { ignores: ["src/generated"] }, + javascriptConfig, + tseslint.configs.recommendedTypeChecked.map(addTypeScriptLanguageOptions), + addTypeScriptLanguageOptions({ + rules: { + "@typescript-eslint/no-floating-promises": "error", + "@typescript-eslint/prefer-promise-reject-errors": "error", + "@typescript-eslint/restrict-plus-operands": "error", + "@typescript-eslint/restrict-template-expressions": "error", + // See https://stackoverflow.com/questions/43353087/are-there-performance-concerns-with-return-await/70979225#70979225 + "@typescript-eslint/return-await": ["error", "always"], + "@typescript-eslint/require-await": "error", + "@typescript-eslint/sort-type-constituents": "error", + "@typescript-eslint/no-unused-vars": ["error", { caughtErrors: "none" }], + "no-return-await": "off" + } + }), + { + files: ["**/*.ts"], + plugins: { "import-x": importPlugin }, + rules: { + "import-x/extensions": ["error", "always", { ignorePackages: true }] + } + } +); diff --git a/config/karma.conf.js b/config/karma.conf.js index 0213d385f..c6c0195ac 100644 --- a/config/karma.conf.js +++ b/config/karma.conf.js @@ -1,22 +1,30 @@ -const webpackConfig = require('./webpack.config.browser.js'); +const webpackConfig = require("./webpack.config.browser.js"); delete webpackConfig.output; delete webpackConfig.entry; // karma fills these in -webpackConfig.plugins.shift(); // drop eslinter plugin module.exports = function (config) { config.set({ - frameworks: ['mocha', 'sinon-chai'], - browsers: ['FirefoxHeadless', 'ChromeHeadless'], + // Explicitly require plugins so pnpm's strict node_modules works + plugins: [ + require("karma-mocha"), + require("karma-sinon-chai"), + require("karma-chrome-launcher"), + require("karma-firefox-launcher"), + require("karma-webpack"), + require("karma-coverage") + ], + frameworks: ["mocha", "sinon-chai"], + browsers: ["FirefoxHeadless", "ChromeHeadless"], files: [ - '../dist/stellar-base.js', // webpack should build this first - '../test/test-helper.js', - '../test/unit/**/*.js' + "../dist/stellar-base.js", // webpack should build this first + "../test/test-helper-browser.js", + "../test/unit/**/*.js" ], preprocessors: { - '../test/**/*.js': ['webpack'] + "../test/**/*.js": ["webpack"] }, webpack: webpackConfig, @@ -27,9 +35,9 @@ module.exports = function (config) { colors: true, singleRun: true, - reporters: ['dots', 'coverage'], + reporters: ["dots", "coverage"], coverageReporter: { - type: 'text-summary', + type: "text-summary", instrumenterOptions: { istanbul: { noCompact: true } } diff --git a/config/prettier.config.js b/config/prettier.config.cjs similarity index 83% rename from config/prettier.config.js rename to config/prettier.config.cjs index 40f1444de..14f5bb33a 100644 --- a/config/prettier.config.js +++ b/config/prettier.config.cjs @@ -5,9 +5,8 @@ module.exports = { printWidth: 80, proseWrap: 'always', semi: true, - singleQuote: true, + singleQuote: false, tabWidth: 2, - parser: 'babel', trailingComma: 'none', useTabs: false }; diff --git a/config/webpack.config.browser.js b/config/webpack.config.browser.js index 9d86521ed..52ec4ea53 100644 --- a/config/webpack.config.browser.js +++ b/config/webpack.config.browser.js @@ -1,42 +1,59 @@ -var path = require('path'); -var webpack = require('webpack'); +var path = require("path"); +var webpack = require("webpack"); +var fs = require("fs"); +var TerserPlugin = require("terser-webpack-plugin"); +var NodePolyfillPlugin = require("node-polyfill-webpack-plugin"); -var ESLintPlugin = require('eslint-webpack-plugin'); -var TerserPlugin = require('terser-webpack-plugin'); -var NodePolyfillPlugin = require('node-polyfill-webpack-plugin'); +const entryFile = fs.existsSync(path.resolve(__dirname, "../src/index.ts")) + ? path.resolve(__dirname, "../src/index.ts") + : path.resolve(__dirname, "../src/index.js"); const config = { - target: 'web', + target: "web", // https://stackoverflow.com/a/34018909 entry: { - 'stellar-base': path.resolve(__dirname, '../src/index.js'), - 'stellar-base.min': path.resolve(__dirname, '../src/index.js') + "stellar-base": entryFile, + "stellar-base.min": entryFile }, resolve: { fallback: { - stream: require.resolve('stream-browserify'), - buffer: require.resolve('buffer') + stream: require.resolve("stream-browserify"), + buffer: require.resolve("buffer") }, - extensions: ['.ts', '.js'] + extensions: [".ts", ".js"], + extensionAlias: { + ".js": [".ts", ".js"] + } }, output: { clean: true, library: { - name: 'StellarBase', - type: 'umd', + name: "StellarBase", + type: "umd", umdNamedDefine: true }, - path: path.resolve(__dirname, '../dist') + path: path.resolve(__dirname, "../dist") }, - mode: process.env.NODE_ENV ?? 'development', - devtool: process.env.NODE_ENV === 'production' ? false : 'source-map', + mode: process.env.NODE_ENV ?? "development", + devtool: process.env.NODE_ENV === "production" ? false : "source-map", module: { rules: [ + { + test: /\.ts$/, + exclude: /node_modules/, + use: { + loader: "babel-loader", + options: { + cacheDirectory: true, + presets: ["@babel/preset-env", "@babel/preset-typescript"] + } + } + }, { test: /\.m?js$/, exclude: /node_modules\/(?!(js-xdr))/, use: { - loader: 'babel-loader', + loader: "babel-loader", options: { cacheDirectory: true } @@ -58,13 +75,9 @@ const config = { ] }, plugins: [ - // this must be first for karma to work (see line 5 of karma.conf.js) - new ESLintPlugin({ - overrideConfigFile: path.resolve(__dirname, './.eslintrc.js') - }), new NodePolyfillPlugin(), new webpack.ProvidePlugin({ - Buffer: ['buffer', 'Buffer'] + Buffer: ["buffer", "Buffer"] }) ], watchOptions: { diff --git a/examples/signing-data.js b/examples/signing-data.js index e127736b6..3d9904942 100644 --- a/examples/signing-data.js +++ b/examples/signing-data.js @@ -1,13 +1,13 @@ -import * as StellarBase from '../src'; +import * as StellarBase from "../src"; var keypair = StellarBase.Keypair.random(); -var data = 'data to sign'; +var data = "data to sign"; var signature = StellarBase.sign(data, keypair.rawSecretKey()); -console.log('Signature: ' + signature.toString('hex')); +console.log("Signature: " + signature.toString("hex")); if (StellarBase.verify(data, signature, keypair.rawPublicKey())) { - console.log('OK!'); + console.log("OK!"); } else { - console.log('Bad signature!'); + console.log("Bad signature!"); } diff --git a/mocharc.tsnode.json b/mocharc.tsnode.json new file mode 100644 index 000000000..4dcbc9159 --- /dev/null +++ b/mocharc.tsnode.json @@ -0,0 +1,7 @@ +{ + "require": ["./test/test-helper.js"], + "reporter": "dot", + "recursive": true, + "timeout": 5000, + "spec": "test/**/*.js" +} diff --git a/package.json b/package.json index 045545ed0..58fd9d44a 100644 --- a/package.json +++ b/package.json @@ -2,41 +2,42 @@ "name": "@stellar/stellar-base", "version": "14.0.4", "description": "Low-level support library for the Stellar network.", - "main": "./lib/index.js", - "browser": { - "./lib/index.js": "./dist/stellar-base.min.js" - }, + "main": "./lib/cjs/index.js", + "browser": "./dist/stellar-base.min.js", "types": "./types/index.d.ts", + "packageManager": "pnpm@9.15.3", + "exports": { + ".": { + "browser": "./dist/stellar-base.min.js", + "require": "./lib/cjs/index.js", + "default": "./lib/cjs/index.js" + } + }, "scripts": { - "build": "yarn build:node && yarn build:browser", + "build": "pnpm run build:cjs && pnpm run build:browser", + "build:cjs": "tsc -p tsconfig.cjs.json", "build:node": "babel --out-dir ./lib/ ./src/", "build:browser": "webpack -c ./config/webpack.config.browser.js", - "build:node:prod": "cross-env NODE_ENV=production yarn build", - "build:browser:prod": "cross-env NODE_ENV=production yarn build:browser", - "build:prod": "cross-env NODE_ENV=production yarn build", - "test": "yarn build && yarn test:node && yarn test:browser", - "test:node": "NODE_OPTIONS=--no-experimental-detect-module yarn _nyc mocha", + "build:node:prod": "cross-env NODE_ENV=production pnpm run build", + "build:browser:prod": "cross-env NODE_ENV=production pnpm run build:browser", + "build:prod": "cross-env NODE_ENV=production pnpm run build", + "test": "pnpm run build && pnpm run test:node && pnpm run test:browser", + "test:node": "NODE_OPTIONS=--no-experimental-detect-module pnpm run _nyc -- mocha --config ./mocharc.tsnode.json", "test:browser": "karma start ./config/karma.conf.js", + "test:vitest": "vitest", + "test:vitest:ui": "vitest --ui", + "test:vitest:coverage": "vitest --coverage", "docs": "jsdoc -c ./config/.jsdoc.json --verbose", - "lint": "eslint -c ./config/.eslintrc.js src/ && dtslint --localTs node_modules/typescript/lib types/", - "preversion": "yarn clean && yarn fmt && yarn lint && yarn build:prod && yarn test", - "fmt": "prettier --config ./config/prettier.config.js --ignore-path ./config/.prettierignore --write './**/*.js'", - "prepare": "yarn build:prod", + "lint": "eslint -c ./config/eslint.config.cjs src/ && dtslint --localTs node_modules/typescript/lib types/", + "preversion": "pnpm run clean && pnpm run fmt && pnpm run lint && pnpm run build:prod && pnpm run test", + "fmt": "prettier --config ./config/prettier.config.cjs --ignore-path ./config/.prettierignore --write './**/*.js'", + "prepare": "pnpm run build:prod", "clean": "rm -rf lib/ dist/ coverage/ .nyc_output/", "_nyc": "nyc --nycrc-path ./config/.nycrc" }, "engines": { "node": ">=20.0.0" }, - "mocha": { - "require": [ - "@babel/register", - "./test/test-helper.js" - ], - "reporter": "dot", - "recursive": true, - "timeout": 5000 - }, "nyc": { "sourceMap": false, "instrument": false, @@ -54,8 +55,8 @@ }, "lint-staged": { "**/*.{js,json}": [ - "yarn fmt", - "yarn lint" + "pnpm run fmt", + "pnpm run lint" ] }, "repository": { @@ -77,25 +78,23 @@ "@babel/eslint-parser": "^7.28.5", "@babel/eslint-plugin": "^7.27.1", "@babel/preset-env": "^7.28.5", + "@babel/preset-typescript": "^7.28.3", "@babel/register": "^7.28.3", "@definitelytyped/dtslint": "^0.0.182", + "@eslint/compat": "^2.0.2", + "@eslint/js": "^9.39.2", "@istanbuljs/nyc-config-babel": "3.0.0", "@types/node": "^20.14.11", - "@typescript-eslint/parser": "^6.20.0", + "@typescript-eslint/parser": "^8.54.0", "babel-loader": "^9.2.1", "babel-plugin-istanbul": "^6.1.1", "chai": "^4.3.10", "chai-as-promised": "^7.1.2", "cross-env": "^7.0.3", - "eslint": "^8.57.0", - "eslint-config-airbnb-base": "^15.0.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prefer-import": "^0.0.1", - "eslint-plugin-prettier": "^5.5.0", - "eslint-webpack-plugin": "^4.2.0", + "eslint": "^9.39.2", + "eslint-plugin-import-x": "^4.16.1", "ghooks": "^2.0.4", + "globals": "^17.3.0", "husky": "^8.0.3", "jsdoc": "^4.0.5", "karma": "^6.4.4", @@ -110,14 +109,16 @@ "mocha": "^10.8.2", "node-polyfill-webpack-plugin": "^3.0.0", "nyc": "^15.1.0", - "prettier": "^3.7.4", + "prettier": "^3.8.1", "randombytes": "^2.1.0", "sinon": "^16.1.0", "sinon-chai": "^3.7.0", "taffydb": "^2.7.3", "terser-webpack-plugin": "^5.3.16", "ts-node": "^10.9.2", - "typescript": "5.6.3", + "typescript": "5.9.3", + "typescript-eslint": "^8.54.0", + "vitest": "^4.0.18", "webpack": "^5.104.1", "webpack-cli": "^5.1.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 000000000..889608982 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,9551 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@noble/curves': + specifier: ^1.9.6 + version: 1.9.7 + '@stellar/js-xdr': + specifier: ^3.1.2 + version: 3.1.2 + base32.js: + specifier: ^0.1.0 + version: 0.1.0 + bignumber.js: + specifier: ^9.3.1 + version: 9.3.1 + buffer: + specifier: ^6.0.3 + version: 6.0.3 + sha.js: + specifier: ^2.4.12 + version: 2.4.12 + devDependencies: + '@babel/cli': + specifier: ^7.28.3 + version: 7.28.6(@babel/core@7.29.0) + '@babel/core': + specifier: ^7.28.5 + version: 7.29.0 + '@babel/eslint-parser': + specifier: ^7.28.5 + version: 7.28.6(@babel/core@7.29.0)(eslint@9.39.2) + '@babel/eslint-plugin': + specifier: ^7.27.1 + version: 7.27.1(@babel/eslint-parser@7.28.6(@babel/core@7.29.0)(eslint@9.39.2))(eslint@9.39.2) + '@babel/preset-env': + specifier: ^7.28.5 + version: 7.29.0(@babel/core@7.29.0) + '@babel/preset-typescript': + specifier: ^7.28.3 + version: 7.28.5(@babel/core@7.29.0) + '@babel/register': + specifier: ^7.28.3 + version: 7.28.6(@babel/core@7.29.0) + '@definitelytyped/dtslint': + specifier: ^0.0.182 + version: 0.0.182(typescript@5.9.3) + '@eslint/compat': + specifier: ^2.0.2 + version: 2.0.2(eslint@9.39.2) + '@eslint/js': + specifier: ^9.39.2 + version: 9.39.2 + '@istanbuljs/nyc-config-babel': + specifier: 3.0.0 + version: 3.0.0(@babel/register@7.28.6(@babel/core@7.29.0))(babel-plugin-istanbul@6.1.1) + '@types/node': + specifier: ^20.14.11 + version: 20.19.32 + '@typescript-eslint/parser': + specifier: ^8.54.0 + version: 8.54.0(eslint@9.39.2)(typescript@5.9.3) + babel-loader: + specifier: ^9.2.1 + version: 9.2.1(@babel/core@7.29.0)(webpack@5.105.0) + babel-plugin-istanbul: + specifier: ^6.1.1 + version: 6.1.1 + chai: + specifier: ^4.3.10 + version: 4.5.0 + chai-as-promised: + specifier: ^7.1.2 + version: 7.1.2(chai@4.5.0) + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + eslint: + specifier: ^9.39.2 + version: 9.39.2 + eslint-plugin-import-x: + specifier: ^4.16.1 + version: 4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2) + ghooks: + specifier: ^2.0.4 + version: 2.0.4 + globals: + specifier: ^17.3.0 + version: 17.3.0 + husky: + specifier: ^8.0.3 + version: 8.0.3 + jsdoc: + specifier: ^4.0.5 + version: 4.0.5 + karma: + specifier: ^6.4.4 + version: 6.4.4 + karma-chrome-launcher: + specifier: ^3.1.0 + version: 3.2.0 + karma-coverage: + specifier: ^2.2.1 + version: 2.2.1 + karma-firefox-launcher: + specifier: ^2.1.3 + version: 2.1.3 + karma-mocha: + specifier: ^2.0.0 + version: 2.0.1 + karma-sinon-chai: + specifier: ^2.0.2 + version: 2.0.2(chai@4.5.0)(sinon-chai@3.7.0(chai@4.5.0)(sinon@16.1.3))(sinon@16.1.3) + karma-webpack: + specifier: ^5.0.1 + version: 5.0.1(webpack@5.105.0) + lint-staged: + specifier: ^15.5.0 + version: 15.5.2 + minami: + specifier: ^1.1.1 + version: 1.2.3 + mocha: + specifier: ^10.8.2 + version: 10.8.2 + node-polyfill-webpack-plugin: + specifier: ^3.0.0 + version: 3.0.0(webpack@5.105.0) + nyc: + specifier: ^15.1.0 + version: 15.1.0 + prettier: + specifier: ^3.8.1 + version: 3.8.1 + randombytes: + specifier: ^2.1.0 + version: 2.1.0 + sinon: + specifier: ^16.1.0 + version: 16.1.3 + sinon-chai: + specifier: ^3.7.0 + version: 3.7.0(chai@4.5.0)(sinon@16.1.3) + taffydb: + specifier: ^2.7.3 + version: 2.7.3 + terser-webpack-plugin: + specifier: ^5.3.16 + version: 5.3.16(webpack@5.105.0) + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@types/node@20.19.32)(typescript@5.9.3) + typescript: + specifier: 5.9.3 + version: 5.9.3 + typescript-eslint: + specifier: ^8.54.0 + version: 8.54.0(eslint@9.39.2)(typescript@5.9.3) + vitest: + specifier: ^4.0.18 + version: 4.0.18(@types/node@20.19.32)(terser@5.46.0)(yaml@2.8.2) + webpack: + specifier: ^5.104.1 + version: 5.105.0(webpack-cli@5.1.4) + webpack-cli: + specifier: ^5.1.1 + version: 5.1.4(webpack@5.105.0) + +packages: + + '@babel/cli@7.28.6': + resolution: {integrity: sha512-6EUNcuBbNkj08Oj4gAZ+BUU8yLCgKzgVX4gaTh09Ya2C8ICM4P+G30g4m3akRxSYAp3A/gnWchrNst7px4/nUQ==} + engines: {node: '>=6.9.0'} + hasBin: true + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.29.0': + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + engines: {node: '>=6.9.0'} + + '@babel/eslint-parser@7.28.6': + resolution: {integrity: sha512-QGmsKi2PBO/MHSQk+AAgA9R6OHQr+VqnniFE0eMWZcVcfBZoA2dKn2hUsl3Csg/Plt9opRUWdY7//VXsrIlEiA==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 + + '@babel/eslint-plugin@7.27.1': + resolution: {integrity: sha512-vOG/EipZbIAcREK6XI4JRO3B3uZr70/KIhsrNLO9RXcgLMaW0sTsBpNeTpQUyelB0HsbWd45NIsuTgD3mqr/Og==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/eslint-parser': ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 + + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.28.6': + resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-create-regexp-features-plugin@7.28.5': + resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-define-polyfill-provider@0.6.6': + resolution: {integrity: sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.28.5': + resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.28.6': + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} + engines: {node: '>=6.9.0'} + + '@babel/helper-remap-async-to-generator@7.27.1': + resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-replace-supers@7.28.6': + resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-wrap-function@7.28.6': + resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.28.6': + resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.0': + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': + resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': + resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': + resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': + resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6': + resolution: {integrity: sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-assertions@7.28.6': + resolution: {integrity: sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.28.6': + resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.28.6': + resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.28.6': + resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-arrow-functions@7.27.1': + resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-generator-functions@7.29.0': + resolution: {integrity: sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-to-generator@7.28.6': + resolution: {integrity: sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoped-functions@7.27.1': + resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoping@7.28.6': + resolution: {integrity: sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-properties@7.28.6': + resolution: {integrity: sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-static-block@7.28.6': + resolution: {integrity: sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + + '@babel/plugin-transform-classes@7.28.6': + resolution: {integrity: sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-computed-properties@7.28.6': + resolution: {integrity: sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-destructuring@7.28.5': + resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-dotall-regex@7.28.6': + resolution: {integrity: sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-keys@7.27.1': + resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0': + resolution: {integrity: sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-dynamic-import@7.27.1': + resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-explicit-resource-management@7.28.6': + resolution: {integrity: sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-exponentiation-operator@7.28.6': + resolution: {integrity: sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-export-namespace-from@7.27.1': + resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-for-of@7.27.1': + resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-function-name@7.27.1': + resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-json-strings@7.28.6': + resolution: {integrity: sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-literals@7.27.1': + resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-logical-assignment-operators@7.28.6': + resolution: {integrity: sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-member-expression-literals@7.27.1': + resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-amd@7.27.1': + resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.28.6': + resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-systemjs@7.29.0': + resolution: {integrity: sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-umd@7.27.1': + resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-named-capturing-groups-regex@7.29.0': + resolution: {integrity: sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-new-target@7.27.1': + resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6': + resolution: {integrity: sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-numeric-separator@7.28.6': + resolution: {integrity: sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-rest-spread@7.28.6': + resolution: {integrity: sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-super@7.27.1': + resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-catch-binding@7.28.6': + resolution: {integrity: sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-chaining@7.28.6': + resolution: {integrity: sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.27.7': + resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-methods@7.28.6': + resolution: {integrity: sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-property-in-object@7.28.6': + resolution: {integrity: sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-property-literals@7.27.1': + resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regenerator@7.29.0': + resolution: {integrity: sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regexp-modifiers@7.28.6': + resolution: {integrity: sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-reserved-words@7.27.1': + resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.27.1': + resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.28.6': + resolution: {integrity: sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-sticky-regex@7.27.1': + resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-template-literals@7.27.1': + resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typeof-symbol@7.27.1': + resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.28.6': + resolution: {integrity: sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-escapes@7.27.1': + resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-property-regex@7.28.6': + resolution: {integrity: sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-regex@7.27.1': + resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-sets-regex@7.28.6': + resolution: {integrity: sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/preset-env@7.29.0': + resolution: {integrity: sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-modules@0.1.6-no-external-plugins': + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + + '@babel/preset-typescript@7.28.5': + resolution: {integrity: sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/register@7.28.6': + resolution: {integrity: sha512-pgcbbEl/dWQYb6L6Yew6F94rdwygfuv+vJ/tXfwIOYAfPB6TNWpXUMEtEq3YuTeHRdvMIhvz13bkT9CNaS+wqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@definitelytyped/dts-critic@0.0.178': + resolution: {integrity: sha512-1JiY6giD2qLYxDPSWPbZiICzmTX+cHBNMXf09SeY6CJX0kZPcAkX+Uhc64HSqlhutECRWy7SdQCp/NP3xVOt4Q==} + engines: {node: '>=10.17.0'} + peerDependencies: + typescript: '*' + + '@definitelytyped/dtslint@0.0.182': + resolution: {integrity: sha512-88t3yXrqXQbw+KmAY7D+PHJnC2BTzEZPxy7UvtksqrDL1RWLUxXKuG33/+0w36T3qDsdQTiqNBdLbAI+uzxsEA==} + engines: {node: '>=10.0.0'} + hasBin: true + peerDependencies: + typescript: '>= 3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.7.0-dev || >= 3.8.0-dev || >= 3.9.0-dev || >= 4.0.0-dev || >=5.0.0-dev' + + '@definitelytyped/header-parser@0.0.178': + resolution: {integrity: sha512-16FFuaWW2Hq+a0Abyt+9gvPAT0w/ezy4eph3RbtLSqxH3T/UHDla1jgnp1DMvfNeBWaIqHxcr+Vrr7BPquw7mw==} + + '@definitelytyped/typescript-versions@0.0.178': + resolution: {integrity: sha512-pPXy3z5gE4xnVgqIRApFcQ6M6kqtRK1gnqyGx/I0Yo1CH8RAsRvumCDB/KiZmQDpCHiy//E9dOIUFdquvC5t7g==} + + '@definitelytyped/utils@0.0.178': + resolution: {integrity: sha512-nYg3E51XpTodS0/5w5r1wM/DhPYhyqa9BP8ili4XgB5s9j4v4mDPX9Jwjns2q24derBvyhdUpzshKDh43aqwZw==} + + '@discoveryjs/json-ext@0.5.7': + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + + '@emnapi/core@1.8.1': + resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} + + '@emnapi/runtime@1.8.1': + resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} + + '@emnapi/wasi-threads@1.1.0': + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + + '@esbuild/aix-ppc64@0.27.3': + resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.27.3': + resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.27.3': + resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.27.3': + resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.27.3': + resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.3': + resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.27.3': + resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.3': + resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.27.3': + resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.27.3': + resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.27.3': + resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.27.3': + resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.27.3': + resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.27.3': + resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.3': + resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.27.3': + resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.27.3': + resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.27.3': + resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.3': + resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.27.3': + resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.3': + resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.3': + resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.27.3': + resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.27.3': + resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.27.3': + resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.27.3': + resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/compat@2.0.2': + resolution: {integrity: sha512-pR1DoD0h3HfF675QZx0xsyrsU8q70Z/plx7880NOhS02NuWLgBCOMDL787nUeQ7EWLkxv3bPQJaarjcPQb2Dwg==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + peerDependencies: + eslint: ^8.40 || 9 || 10 + peerDependenciesMeta: + eslint: + optional: true + + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@1.1.0': + resolution: {integrity: sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/eslintrc@3.3.3': + resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@9.39.2': + resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/nyc-config-babel@3.0.0': + resolution: {integrity: sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg==} + engines: {node: '>=8'} + peerDependencies: + '@babel/register': '*' + babel-plugin-istanbul: '>=5' + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@jsdoc/salty@0.2.9': + resolution: {integrity: sha512-yYxMVH7Dqw6nO0d5NIV8OQWnitU8k6vXH8NtgqAfIa/IUqRMxRv/NUJJ08VEKbAakwxlgBl5PJdrU0dMPStsnw==} + engines: {node: '>=v12.0.0'} + + '@napi-rs/wasm-runtime@0.2.12': + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} + + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': + resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} + + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': + resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} + + '@noble/curves@1.9.7': + resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} + engines: {node: ^14.21.3 || >=16} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@qiwi/npm-registry-client@8.9.1': + resolution: {integrity: sha512-rZF+mG+NfijR0SHphhTLHRr4aM4gtfdwoAMY6we2VGQam8vkN1cxGG1Lg/Llrj8Dd0Mu6VjdFQRyMMRZxtZR2A==} + + '@rollup/rollup-android-arm-eabi@4.57.1': + resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.57.1': + resolution: {integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.57.1': + resolution: {integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.57.1': + resolution: {integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.57.1': + resolution: {integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.57.1': + resolution: {integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': + resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.57.1': + resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.57.1': + resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.57.1': + resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.57.1': + resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.57.1': + resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.57.1': + resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-ppc64-musl@4.57.1': + resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.57.1': + resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.57.1': + resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.57.1': + resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.57.1': + resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.57.1': + resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openbsd-x64@4.57.1': + resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.57.1': + resolution: {integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.57.1': + resolution: {integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.57.1': + resolution: {integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.57.1': + resolution: {integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.57.1': + resolution: {integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==} + cpu: [x64] + os: [win32] + + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + + '@sinonjs/fake-timers@11.3.1': + resolution: {integrity: sha512-EVJO7nW5M/F5Tur0Rf2z/QoMo+1Ia963RiMtapiQrEWvY0iBUvADo8Beegwjpnle5BHkyHuoxSTW3jF43H1XRA==} + + '@sinonjs/samsam@8.0.3': + resolution: {integrity: sha512-hw6HbX+GyVZzmaYNh82Ecj1vdGZrqVIn/keDTg63IgAwiQPO+xCz99uG6Woqgb4tM0mUiFENKZ4cqd7IX94AXQ==} + + '@sinonjs/text-encoding@0.7.3': + resolution: {integrity: sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==} + + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + + '@stellar/js-xdr@3.1.2': + resolution: {integrity: sha512-VVolPL5goVEIsvuGqDc5uiKxV03lzfWdvYg1KikvwheDmTBO68CKDji3bAZ/kppZrx5iTA8z3Ld5yuytcvhvOQ==} + + '@tsconfig/node10@1.0.12': + resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + + '@types/cors@2.8.19': + resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} + + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + + '@types/node@14.18.63': + resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} + + '@types/node@20.19.32': + resolution: {integrity: sha512-Ez8QE4DMfhjjTsES9K2dwfV258qBui7qxUsoaixZDiTzbde4U12e1pXGNu/ECsUIOi5/zoCxAQxIhQnaUQ2VvA==} + + '@types/parsimmon@1.10.9': + resolution: {integrity: sha512-O2M2x1w+m7gWLen8i5DOy6tWRnbRcsW6Pke3j3HAsJUrPb4g0MgjksIUm2aqUtCYxy7Qjr3CzjjwQBzhiGn46A==} + + '@types/semver@7.7.1': + resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + + '@typescript-eslint/eslint-plugin@5.62.0': + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/eslint-plugin@8.54.0': + resolution: {integrity: sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.54.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/parser@5.62.0': + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@8.54.0': + resolution: {integrity: sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/project-service@8.54.0': + resolution: {integrity: sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/scope-manager@5.62.0': + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/scope-manager@8.54.0': + resolution: {integrity: sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.54.0': + resolution: {integrity: sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/type-utils@5.62.0': + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/type-utils@8.54.0': + resolution: {integrity: sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/types@5.62.0': + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/types@8.54.0': + resolution: {integrity: sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@5.62.0': + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@8.54.0': + resolution: {integrity: sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/utils@5.62.0': + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + + '@typescript-eslint/utils@8.54.0': + resolution: {integrity: sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/visitor-keys@5.62.0': + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/visitor-keys@8.54.0': + resolution: {integrity: sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + cpu: [x64] + os: [win32] + + '@vitest/expect@4.0.18': + resolution: {integrity: sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==} + + '@vitest/mocker@4.0.18': + resolution: {integrity: sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==} + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@4.0.18': + resolution: {integrity: sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==} + + '@vitest/runner@4.0.18': + resolution: {integrity: sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==} + + '@vitest/snapshot@4.0.18': + resolution: {integrity: sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==} + + '@vitest/spy@4.0.18': + resolution: {integrity: sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==} + + '@vitest/utils@4.0.18': + resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==} + + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} + + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} + + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} + + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} + + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} + + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + + '@webpack-cli/configtest@2.1.1': + resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + + '@webpack-cli/info@2.0.2': + resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + + '@webpack-cli/serve@2.0.5': + resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-import-phases@1.0.4: + resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} + engines: {node: '>=10.13.0'} + peerDependencies: + acorn: ^8.14.0 + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-escapes@7.3.0: + resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} + engines: {node: '>=18'} + + ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + + ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + append-transform@2.0.0: + resolution: {integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==} + engines: {node: '>=8'} + + aproba@1.2.0: + resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} + + archy@1.0.0: + resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + + are-we-there-yet@1.1.7: + resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} + deprecated: This package is no longer supported. + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + asn1.js@4.10.1: + resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} + + asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + + assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + + assert@2.1.0: + resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} + + assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + + aws4@1.13.2: + resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} + + babel-code-frame@6.26.0: + resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==} + + babel-loader@9.2.1: + resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@babel/core': ^7.12.0 + webpack: '>=5' + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-polyfill-corejs2@0.4.15: + resolution: {integrity: sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.14.0: + resolution: {integrity: sha512-AvDcMxJ34W4Wgy4KBIIePQTAOP1Ie2WFwkQp3dB7FQ/f0lI5+nM96zUnYEOE1P9sEg0es5VCP0HxiWu5fUHZAQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.6: + resolution: {integrity: sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base32.js@0.1.0: + resolution: {integrity: sha512-n3TkB02ixgBOhTvANakDb4xaMXnYUVkNoRFJjQflcqMQhyEKxEHdj3E6N8t8sUQ0mjH/3/JxzlXuz3ul/J90pQ==} + engines: {node: '>=0.12.0'} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + + baseline-browser-mapping@2.9.19: + resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} + hasBin: true + + bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + + bignumber.js@9.3.1: + resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + + bn.js@4.12.2: + resolution: {integrity: sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==} + + bn.js@5.2.2: + resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==} + + body-parser@1.20.4: + resolution: {integrity: sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + + browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + + browserify-aes@1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} + + browserify-cipher@1.0.1: + resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==} + + browserify-des@1.0.2: + resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==} + + browserify-rsa@4.1.1: + resolution: {integrity: sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==} + engines: {node: '>= 0.10'} + + browserify-sign@4.2.5: + resolution: {integrity: sha512-C2AUdAJg6rlM2W5QMp2Q4KGQMVBwR1lIimTsUnutJ8bMpW5B52pGpR2gEnNBNwijumDo5FojQ0L9JrXA8m4YEw==} + engines: {node: '>= 0.10'} + + browserify-zlib@0.2.0: + resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} + + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer-xor@1.0.3: + resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + builtin-modules@1.1.1: + resolution: {integrity: sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==} + engines: {node: '>=0.10.0'} + + builtin-status-codes@3.0.0: + resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} + + builtins@1.0.3: + resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + caching-transform@4.0.0: + resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==} + engines: {node: '>=8'} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001768: + resolution: {integrity: sha512-qY3aDRZC5nWPgHUgIB84WL+nySuo19wk0VJpp/XI9T34lrvkyhRvNVOFJOp2kxClQhiFBu+TaUSudf6oa3vkSA==} + + caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + + catharsis@0.9.0: + resolution: {integrity: sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==} + engines: {node: '>= 10'} + + chai-as-promised@7.1.2: + resolution: {integrity: sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==} + peerDependencies: + chai: '>= 2.1.2 < 6' + + chai@4.5.0: + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} + engines: {node: '>=4'} + + chai@6.2.2: + resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} + engines: {node: '>=18'} + + chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + charm@1.0.2: + resolution: {integrity: sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw==} + + check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + cipher-base@1.0.7: + resolution: {integrity: sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==} + engines: {node: '>= 0.10'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + + code-point-at@1.1.0: + resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} + engines: {node: '>=0.10.0'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + colors@0.6.2: + resolution: {integrity: sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==} + engines: {node: '>=0.1.90'} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + command-exists@1.2.9: + resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@13.1.0: + resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} + engines: {node: '>=18'} + + commander@2.1.0: + resolution: {integrity: sha512-J2wnb6TKniXNOtoHS8TSrG9IOQluPrsmyAJ8oCUJOBmv+uLBCyPYAZkD2jFvw2DCzIXNnISIM01NIvr35TkBMQ==} + engines: {node: '>= 0.6.x'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@2.9.0: + resolution: {integrity: sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==} + engines: {node: '>= 0.6.x'} + + commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + + comment-parser@1.4.5: + resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} + engines: {node: '>= 12.0.0'} + + common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + concat-stream@2.0.0: + resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} + engines: {'0': node >= 6.0} + + connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + + console-browserify@1.2.0: + resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + constants-browserify@1.0.0: + resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + + core-js-compat@3.48.0: + resolution: {integrity: sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==} + + core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cors@2.8.6: + resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} + engines: {node: '>= 0.10'} + + create-ecdh@4.0.4: + resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} + + create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + + create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crypto-browserify@3.12.1: + resolution: {integrity: sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==} + engines: {node: '>= 0.10'} + + custom-event@1.0.1: + resolution: {integrity: sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==} + + dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + + date-format@4.0.14: + resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} + engines: {node: '>=4.0'} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + + deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} + engines: {node: '>=6'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + default-require-extensions@3.0.1: + resolution: {integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==} + engines: {node: '>=8'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + des.js@1.1.0: + resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + di@0.0.1: + resolution: {integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==} + + diff@3.5.1: + resolution: {integrity: sha512-Z3u54A8qGyqFOSr2pk0ijYs8mOE9Qz8kTvtKeBI+upoG9j04Sq+oI7W8zAJiQybDcESET8/uIdHzs0p3k4fZlw==} + engines: {node: '>=0.3.1'} + + diff@4.0.4: + resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} + engines: {node: '>=0.3.1'} + + diff@5.2.2: + resolution: {integrity: sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==} + engines: {node: '>=0.3.1'} + + diffie-hellman@5.0.3: + resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-serialize@2.2.1: + resolution: {integrity: sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==} + + domain-browser@4.23.0: + resolution: {integrity: sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==} + engines: {node: '>=10'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.5.286: + resolution: {integrity: sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==} + + elliptic@6.6.1: + resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} + + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + + engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} + + engine.io@6.6.5: + resolution: {integrity: sha512-2RZdgEbXmp5+dVbRm0P7HQUImZpICccJy7rN7Tv+SFa55pH+lxnuw6/K1ZxxBfHoYpSkHLAO92oa8O4SwFXA2A==} + engines: {node: '>=10.2.0'} + + enhanced-resolve@5.19.0: + resolution: {integrity: sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==} + engines: {node: '>=10.13.0'} + + ent@2.2.2: + resolution: {integrity: sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==} + engines: {node: '>= 0.4'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + envinfo@7.21.0: + resolution: {integrity: sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==} + engines: {node: '>=4'} + hasBin: true + + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + + es-module-lexer@2.0.0: + resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + + esbuild@0.27.3: + resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-import-context@0.1.9: + resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + peerDependencies: + unrs-resolver: ^1.0.0 + peerDependenciesMeta: + unrs-resolver: + optional: true + + eslint-plugin-import-x@4.16.1: + resolution: {integrity: sha512-vPZZsiOKaBAIATpFE2uMI4w5IRwdv/FpQ+qZZMR4E+PeOcM4OeoEbqxRMnywdxP19TyB/3h6QBB0EWon7letSQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/utils': ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 + eslint-import-resolver-node: '*' + peerDependenciesMeta: + '@typescript-eslint/utils': + optional: true + eslint-import-resolver-node: + optional: true + + eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + eslint@9.39.2: + resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + eventemitter3@5.0.4: + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + evp_bytestokey@1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + expect-type@1.3.0: + resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} + engines: {node: '>=12.0.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + + find-cache-dir@2.1.0: + resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} + engines: {node: '>=6'} + + find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + + find-cache-dir@4.0.0: + resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} + engines: {node: '>=14.16'} + + find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + findup@0.1.5: + resolution: {integrity: sha512-Udxo3C9A6alt2GZ2MNsgnIvX7De0V3VGxeP/x98NSVgSlizcDHdmJza61LI7zJy4OEtSiJyE72s0/+tBl5/ZxA==} + engines: {node: '>=0.6'} + hasBin: true + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + follow-redirects@1.15.11: + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + foreground-child@2.0.0: + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} + + forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + + form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + + fromentries@1.3.2: + resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@6.0.1: + resolution: {integrity: sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs-readdir-recursive@1.1.0: + resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + fstream@1.0.12: + resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} + engines: {node: '>=0.6'} + deprecated: This package is no longer supported. + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + gauge@2.7.4: + resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} + deprecated: This package is no longer supported. + + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.4.0: + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} + engines: {node: '>=18'} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-tsconfig@4.13.6: + resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} + + getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + + ghooks@2.0.4: + resolution: {integrity: sha512-Ey6PSgelTufntLJBUQZsSHHeRg1PjsjM1oOS+0lpExHqXGjrL5uyQVQdOIlf2WR5EBJVdJbJlCdSHAVt+uZmNA==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@17.3.0: + resolution: {integrity: sha512-yMqGUQVVCkD4tqjOJf3TnrvaaHDMYp4VlUSObbkIiuCPe/ofdMBFIAcBbCSRFWOnos6qRiTVStDwqPLUclaxIw==} + engines: {node: '>=18'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graceful-readlink@1.0.1: + resolution: {integrity: sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + har-schema@2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + + har-validator@5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + + has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + + hash-base@3.0.5: + resolution: {integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==} + engines: {node: '>= 0.10'} + + hash-base@3.1.2: + resolution: {integrity: sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==} + engines: {node: '>= 0.8'} + + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + + hasha@5.2.2: + resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} + engines: {node: '>=8'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} + + http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + + http-signature@1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + + https-browserify@1.0.0: + resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + husky@8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} + hasBin: true + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + engines: {node: '>=8'} + hasBin: true + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} + + is-arguments@1.2.0: + resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} + engines: {node: '>= 0.4'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@1.0.0: + resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.1.0: + resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} + engines: {node: '>=18'} + + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-hook@3.0.0: + resolution: {integrity: sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==} + engines: {node: '>=8'} + + istanbul-lib-instrument@4.0.3: + resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + istanbul-lib-processinfo@2.0.3: + resolution: {integrity: sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==} + engines: {node: '>=8'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + js-tokens@3.0.2: + resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + js2xmlparser@4.0.2: + resolution: {integrity: sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==} + + jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + + jsdoc@4.0.5: + resolution: {integrity: sha512-P4C6MWP9yIlMiK8nwoZvxN84vb6MsnXcHuy7XzVOvQoCizWX5JFCBsWIIWKXBltpoRZXddUOVQmCTOZt9yDj9g==} + engines: {node: '>=12.0.0'} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stable-stringify@1.3.0: + resolution: {integrity: sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==} + engines: {node: '>= 0.4'} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonify@0.0.1: + resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} + + jsprim@1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + + just-extend@6.2.0: + resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} + + karma-chrome-launcher@3.2.0: + resolution: {integrity: sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==} + + karma-coverage@2.2.1: + resolution: {integrity: sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==} + engines: {node: '>=10.0.0'} + + karma-firefox-launcher@2.1.3: + resolution: {integrity: sha512-LMM2bseebLbYjODBOVt7TCPP9OI2vZIXCavIXhkO9m+10Uj5l7u/SKoeRmYx8FYHTVGZSpk6peX+3BMHC1WwNw==} + + karma-mocha@2.0.1: + resolution: {integrity: sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ==} + + karma-sinon-chai@2.0.2: + resolution: {integrity: sha512-SDgh6V0CUd+7ruL1d3yG6lFzmJNGRNQuEuCYXLaorruNP9nwQfA7hpsp4clx4CbOo5Gsajh3qUOT7CrVStUKMw==} + peerDependencies: + chai: '>=3.5.0' + sinon: '>=2.1.0' + sinon-chai: '>=2.9.0' + + karma-webpack@5.0.1: + resolution: {integrity: sha512-oo38O+P3W2mSPCSUrQdySSPv1LvPpXP+f+bBimNomS5sW+1V4SuhCuW8TfJzV+rDv921w2fDSDw0xJbPe6U+kQ==} + engines: {node: '>= 18'} + peerDependencies: + webpack: ^5.0.0 + + karma@6.4.4: + resolution: {integrity: sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==} + engines: {node: '>= 10'} + hasBin: true + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + klaw@3.0.0: + resolution: {integrity: sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + + lint-staged@15.5.2: + resolution: {integrity: sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w==} + engines: {node: '>=18.12.0'} + hasBin: true + + listr2@8.3.3: + resolution: {integrity: sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==} + engines: {node: '>=18.0.0'} + + loader-runner@4.3.1: + resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} + engines: {node: '>=6.11.5'} + + locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash._baseclone@4.5.7: + resolution: {integrity: sha512-nOtLg6tdIdD+TehqBv0WI7jbkLaohHhKSwLmS/UXSFWMWWUxdJc9EVtAfD4L0mV15vV+lZVfF4LEo363VdrMBw==} + + lodash.clone@4.3.2: + resolution: {integrity: sha512-Yc/0UmZvWkFsbx7NB4feSX5bSX03SR0ft8CTkI8RCb3w/TzT71HXew2iNDm0aml93P49tIR/NJHOIoE+XEKz9A==} + deprecated: This package is deprecated. Use structuredClone instead. + + lodash.clone@4.5.0: + resolution: {integrity: sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg==} + deprecated: This package is deprecated. Use structuredClone instead. + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.flattendeep@4.4.0: + resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.23: + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} + + log4js@6.9.1: + resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==} + engines: {node: '>=8.0'} + + loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + manage-path@2.0.0: + resolution: {integrity: sha512-NJhyB+PJYTpxhxZJ3lecIGgh4kwIY2RAh44XvAz9UlqthlQwtPBf62uBVR8XaD8CRuSjQ6TnZH2lNJkbLPZM2A==} + + markdown-it-anchor@8.6.7: + resolution: {integrity: sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==} + peerDependencies: + '@types/markdown-it': '*' + markdown-it: '*' + + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + + marked@4.3.0: + resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} + engines: {node: '>= 12'} + hasBin: true + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + miller-rabin@4.0.1: + resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} + hasBin: true + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + minami@1.2.3: + resolution: {integrity: sha512-3f2QqqbUC1usVux0FkQMFYB73yd9JIxmHSn1dWQacizL6hOUaNu6mA3KxZ9SfiCc4qgcgq+5XP59+hP7URa1Dw==} + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mocha@10.8.2: + resolution: {integrity: sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==} + engines: {node: '>= 14.0.0'} + hasBin: true + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + + natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + nise@5.1.9: + resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} + + node-polyfill-webpack-plugin@3.0.0: + resolution: {integrity: sha512-QpG496dDBiaelQZu9wDcVvpLbtk7h9Ctz693RaUMZBgl8DUoFToO90ZTLKq57gP7rwKqYtGbMBXkcEgLSag2jQ==} + engines: {node: '>=14'} + peerDependencies: + webpack: '>=5' + + node-preload@0.2.1: + resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==} + engines: {node: '>=8'} + + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + + normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-package-arg@8.1.5: + resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==} + engines: {node: '>=10'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + npmlog@4.1.2: + resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} + deprecated: This package is no longer supported. + + number-is-nan@1.0.1: + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} + engines: {node: '>=0.10.0'} + + nyc@15.1.0: + resolution: {integrity: sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==} + engines: {node: '>=8.9'} + hasBin: true + + oauth-sign@0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + obug@2.1.1: + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + + on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + opt-cli@1.5.1: + resolution: {integrity: sha512-iRFQBiQjXZ+LX/8pis04prUhS6FOYcJiZRouofN3rUJEB282b/e0s3jp9vT7aHgXY6TUpgPwu12f0i+qF40Kjw==} + hasBin: true + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + os-browserify@0.3.0: + resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-map@3.0.0: + resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-hash@4.0.0: + resolution: {integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==} + engines: {node: '>=8'} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-asn1@5.1.9: + resolution: {integrity: sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==} + engines: {node: '>= 0.10'} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + parsimmon@1.18.1: + resolution: {integrity: sha512-u7p959wLfGAhJpSDJVYXoyMCXWYwHia78HhRBWqk7AIbxdmlrfdp5wX0l3xv/iTSH5HvhN9K7o26hwwpgS5Nmw==} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + + pbkdf2@3.1.5: + resolution: {integrity: sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==} + engines: {node: '>= 0.10'} + + performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + + pkg-dir@3.0.0: + resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} + engines: {node: '>=6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-dir@7.0.0: + resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} + engines: {node: '>=14.16'} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@3.8.1: + resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} + engines: {node: '>=14'} + hasBin: true + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process-on-spawn@1.1.0: + resolution: {integrity: sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==} + engines: {node: '>=8'} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + + public-encrypt@4.0.3: + resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qjobs@1.2.0: + resolution: {integrity: sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==} + engines: {node: '>=0.9'} + + qs@6.14.1: + resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} + engines: {node: '>=0.6'} + + qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + + querystring-es3@0.2.1: + resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} + engines: {node: '>=0.4.x'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + randomfill@1.0.4: + resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.3: + resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} + engines: {node: '>= 0.8'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + + regenerate-unicode-properties@10.2.2: + resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regexpu-core@6.4.0: + resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} + engines: {node: '>=4'} + + regjsgen@0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + + regjsparser@0.13.0: + resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} + hasBin: true + + release-zalgo@1.0.0: + resolution: {integrity: sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==} + engines: {node: '>=4'} + + request@2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + requizzle@0.2.4: + resolution: {integrity: sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + ripemd160@2.0.3: + resolution: {integrity: sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==} + engines: {node: '>= 0.8'} + + rollup@4.57.1: + resolution: {integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + schema-utils@4.3.3: + resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} + engines: {node: '>= 10.13.0'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + sha.js@2.4.12: + resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} + engines: {node: '>= 0.10'} + hasBin: true + + shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sinon-chai@3.7.0: + resolution: {integrity: sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==} + peerDependencies: + chai: ^4.0.0 + sinon: '>=4.0.0' + + sinon@16.1.3: + resolution: {integrity: sha512-mjnWWeyxcAf9nC0bXcPmiDut+oE8HYridTNzBbF98AYVLmWwGRp2ISEpyhYflG1ifILT+eNn3BmKUJPxjXUPlA==} + + slash@2.0.0: + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} + engines: {node: '>=6'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.2: + resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} + engines: {node: '>=18'} + + slide@1.1.6: + resolution: {integrity: sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==} + + socket.io-adapter@2.5.6: + resolution: {integrity: sha512-DkkO/dz7MGln0dHn5bmN3pPy+JmywNICWrJqVWiVOyvXjWQFIv9c2h24JrQLLFJ2aQVQf/Cvl1vblnd4r2apLQ==} + + socket.io-parser@4.2.5: + resolution: {integrity: sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==} + engines: {node: '>=10.0.0'} + + socket.io@4.8.3: + resolution: {integrity: sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==} + engines: {node: '>=10.2.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + spawn-command@0.0.2: + resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} + + spawn-command@0.0.2-1: + resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==} + + spawn-wrap@2.0.0: + resolution: {integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==} + engines: {node: '>=8'} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.22: + resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + ssri@8.0.1: + resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} + engines: {node: '>= 8'} + + stable-hash-x@0.2.0: + resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} + engines: {node: '>=12.0.0'} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + + stream-browserify@3.0.0: + resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + + stream-http@3.2.0: + resolution: {integrity: sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==} + + streamroller@3.1.5: + resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} + engines: {node: '>=8.0'} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@1.0.2: + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} + engines: {node: '>=0.10.0'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + engines: {node: '>=12'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + taffydb@2.7.3: + resolution: {integrity: sha512-GQ3gtYFSOAxSMN/apGtDKKkbJf+8izz5YfbGqIsUc7AMiQOapARZ76dhilRY2h39cynYxBFdafQo5HUL5vgkrg==} + + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + + terser-webpack-plugin@5.3.16: + resolution: {integrity: sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.46.0: + resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==} + engines: {node: '>=10'} + hasBin: true + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + timers-browserify@2.0.12: + resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==} + engines: {node: '>=0.6.0'} + + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tinyrainbow@3.0.3: + resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} + engines: {node: '>=14.0.0'} + + tmp@0.2.5: + resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} + engines: {node: '>=14.14'} + + to-buffer@1.2.2: + resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} + engines: {node: '>= 0.4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + tough-cookie@2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + + ts-api-utils@2.4.0: + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + 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 + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tslint@5.14.0: + resolution: {integrity: sha512-IUla/ieHVnB8Le7LdQFRGlVJid2T/gaJe5VkjzRVSRR6pA2ODYrnfR1hmxi+5+au9l50jBwpbBL34txgv4NnTQ==} + engines: {node: '>=4.8.0'} + hasBin: true + peerDependencies: + typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev' + + tsutils@2.29.0: + resolution: {integrity: sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==} + peerDependencies: + typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev' + + tsutils@3.21.0: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + 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' + + tty-browserify@0.0.1: + resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==} + + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + + typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + + typescript-eslint@8.54.0: + resolution: {integrity: sha512-CKsJ+g53QpsNPqbzUsfKVgd3Lny4yKZ1pP4qN3jdMOg/sisIDLGyDMezycquXLE5JsEU0wp3dGNdzig0/fmSVQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + ua-parser-js@0.7.41: + resolution: {integrity: sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg==} + hasBin: true + + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + underscore@1.13.7: + resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==} + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.2.1: + resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.2.0: + resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} + engines: {node: '>=4'} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url@0.11.4: + resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} + engines: {node: '>= 0.4'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + validate-npm-package-name@3.0.0: + resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + + vite@7.3.1: + resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitest@4.0.18: + resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@opentelemetry/api': ^1.9.0 + '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 + '@vitest/browser-playwright': 4.0.18 + '@vitest/browser-preview': 4.0.18 + '@vitest/browser-webdriverio': 4.0.18 + '@vitest/ui': 4.0.18 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@opentelemetry/api': + optional: true + '@types/node': + optional: true + '@vitest/browser-playwright': + optional: true + '@vitest/browser-preview': + optional: true + '@vitest/browser-webdriverio': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + vm-browserify@1.1.2: + resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} + + void-elements@2.0.1: + resolution: {integrity: sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==} + engines: {node: '>=0.10.0'} + + watchpack@2.5.1: + resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==} + engines: {node: '>=10.13.0'} + + webpack-cli@5.1.4: + resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} + engines: {node: '>=14.15.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + webpack: 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + + webpack-merge@4.2.2: + resolution: {integrity: sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==} + + webpack-merge@5.10.0: + resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + engines: {node: '>=10.0.0'} + + webpack-sources@3.3.3: + resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} + engines: {node: '>=10.13.0'} + + webpack@5.105.0: + resolution: {integrity: sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + which-typed-array@1.1.20: + resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} + engines: {node: '>= 0.4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@3.0.1: + resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + workerpool@6.5.1: + resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + 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 + + xmlcreate@2.0.4: + resolution: {integrity: sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + engines: {node: '>= 14.6'} + hasBin: true + + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.2.2: + resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} + engines: {node: '>=12.20'} + +snapshots: + + '@babel/cli@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@jridgewell/trace-mapping': 0.3.31 + commander: 6.2.1 + convert-source-map: 2.0.0 + fs-readdir-recursive: 1.1.0 + glob: 7.2.3 + make-dir: 2.1.0 + slash: 2.0.0 + optionalDependencies: + '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3 + chokidar: 3.6.0 + + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.0': {} + + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/eslint-parser@7.28.6(@babel/core@7.29.0)(eslint@9.39.2)': + dependencies: + '@babel/core': 7.29.0 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 9.39.2 + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + + '@babel/eslint-plugin@7.27.1(@babel/eslint-parser@7.28.6(@babel/core@7.29.0)(eslint@9.39.2))(eslint@9.39.2)': + dependencies: + '@babel/eslint-parser': 7.28.6(@babel/core@7.29.0)(eslint@9.39.2) + eslint: 9.39.2 + eslint-rule-composer: 0.3.0 + + '@babel/generator@7.29.1': + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.27.3': + dependencies: + '@babel/types': 7.29.0 + + '@babel/helper-compilation-targets@7.28.6': + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.29.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + regexpu-core: 6.4.0 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.6.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + debug: 4.4.3(supports-color@8.1.1) + lodash.debounce: 4.0.8 + resolve: 1.22.11 + transitivePeerDependencies: + - supports-color + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-member-expression-to-functions@7.28.5': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.28.6': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.27.1': + dependencies: + '@babel/types': 7.29.0 + + '@babel/helper-plugin-utils@7.28.6': {} + + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-wrap-function': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helper-wrap-function@7.28.6': + dependencies: + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@7.28.6': + dependencies: + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + + '@babel/parser@7.29.0': + dependencies: + '@babel/types': 7.29.0 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + + '@babel/plugin-syntax-import-assertions@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-globals': 7.28.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/template': 7.28.6 + + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-dotall-regex@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-explicit-resource-management@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-exponentiation-operator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-json-strings@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-regexp-modifiers@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-spread@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-unicode-property-regex@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-unicode-sets-regex@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/preset-env@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0) + '@babel/plugin-syntax-import-assertions': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-explicit-resource-management': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-exponentiation-operator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-json-strings': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-modules-systemjs': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-regexp-modifiers': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-property-regex': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.29.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0) + babel-plugin-polyfill-corejs2: 0.4.15(@babel/core@7.29.0) + babel-plugin-polyfill-corejs3: 0.14.0(@babel/core@7.29.0) + babel-plugin-polyfill-regenerator: 0.6.6(@babel/core@7.29.0) + core-js-compat: 3.48.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/types': 7.29.0 + esutils: 2.0.3 + + '@babel/preset-typescript@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/register@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + clone-deep: 4.0.1 + find-cache-dir: 2.1.0 + make-dir: 2.1.0 + pirates: 4.0.7 + source-map-support: 0.5.21 + + '@babel/template@7.28.6': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + + '@babel/traverse@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@colors/colors@1.5.0': {} + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@definitelytyped/dts-critic@0.0.178(typescript@5.9.3)': + dependencies: + '@definitelytyped/header-parser': 0.0.178 + command-exists: 1.2.9 + rimraf: 3.0.2 + semver: 7.7.3 + tmp: 0.2.5 + typescript: 5.9.3 + yargs: 15.4.1 + + '@definitelytyped/dtslint@0.0.182(typescript@5.9.3)': + dependencies: + '@definitelytyped/dts-critic': 0.0.178(typescript@5.9.3) + '@definitelytyped/header-parser': 0.0.178 + '@definitelytyped/typescript-versions': 0.0.178 + '@definitelytyped/utils': 0.0.178 + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) + eslint: 8.57.1 + fs-extra: 6.0.1 + json-stable-stringify: 1.3.0 + strip-json-comments: 2.0.1 + tslint: 5.14.0(typescript@5.9.3) + typescript: 5.9.3 + yargs: 15.4.1 + transitivePeerDependencies: + - supports-color + + '@definitelytyped/header-parser@0.0.178': + dependencies: + '@definitelytyped/typescript-versions': 0.0.178 + '@types/parsimmon': 1.10.9 + parsimmon: 1.18.1 + + '@definitelytyped/typescript-versions@0.0.178': {} + + '@definitelytyped/utils@0.0.178': + dependencies: + '@definitelytyped/typescript-versions': 0.0.178 + '@qiwi/npm-registry-client': 8.9.1 + '@types/node': 14.18.63 + charm: 1.0.2 + fs-extra: 8.1.0 + fstream: 1.0.12 + tar: 6.2.1 + tar-stream: 2.2.0 + + '@discoveryjs/json-ext@0.5.7': {} + + '@emnapi/core@1.8.1': + dependencies: + '@emnapi/wasi-threads': 1.1.0 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.8.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.1.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild/aix-ppc64@0.27.3': + optional: true + + '@esbuild/android-arm64@0.27.3': + optional: true + + '@esbuild/android-arm@0.27.3': + optional: true + + '@esbuild/android-x64@0.27.3': + optional: true + + '@esbuild/darwin-arm64@0.27.3': + optional: true + + '@esbuild/darwin-x64@0.27.3': + optional: true + + '@esbuild/freebsd-arm64@0.27.3': + optional: true + + '@esbuild/freebsd-x64@0.27.3': + optional: true + + '@esbuild/linux-arm64@0.27.3': + optional: true + + '@esbuild/linux-arm@0.27.3': + optional: true + + '@esbuild/linux-ia32@0.27.3': + optional: true + + '@esbuild/linux-loong64@0.27.3': + optional: true + + '@esbuild/linux-mips64el@0.27.3': + optional: true + + '@esbuild/linux-ppc64@0.27.3': + optional: true + + '@esbuild/linux-riscv64@0.27.3': + optional: true + + '@esbuild/linux-s390x@0.27.3': + optional: true + + '@esbuild/linux-x64@0.27.3': + optional: true + + '@esbuild/netbsd-arm64@0.27.3': + optional: true + + '@esbuild/netbsd-x64@0.27.3': + optional: true + + '@esbuild/openbsd-arm64@0.27.3': + optional: true + + '@esbuild/openbsd-x64@0.27.3': + optional: true + + '@esbuild/openharmony-arm64@0.27.3': + optional: true + + '@esbuild/sunos-x64@0.27.3': + optional: true + + '@esbuild/win32-arm64@0.27.3': + optional: true + + '@esbuild/win32-ia32@0.27.3': + optional: true + + '@esbuild/win32-x64@0.27.3': + optional: true + + '@eslint-community/eslint-utils@4.9.1(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2)': + dependencies: + eslint: 9.39.2 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/compat@2.0.2(eslint@9.39.2)': + dependencies: + '@eslint/core': 1.1.0 + optionalDependencies: + eslint: 9.39.2 + + '@eslint/config-array@0.21.1': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.3(supports-color@8.1.1) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/core@1.1.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.4.3(supports-color@8.1.1) + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.3.3': + dependencies: + ajv: 6.12.6 + debug: 4.4.3(supports-color@8.1.1) + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.1': {} + + '@eslint/js@9.39.2': {} + + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.7': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.4.3 + + '@humanwhocodes/config-array@0.13.0': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.4.3(supports-color@8.1.1) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.2 + resolve-from: 5.0.0 + + '@istanbuljs/nyc-config-babel@3.0.0(@babel/register@7.28.6(@babel/core@7.29.0))(babel-plugin-istanbul@6.1.1)': + dependencies: + '@babel/register': 7.28.6(@babel/core@7.29.0) + babel-plugin-istanbul: 6.1.1 + + '@istanbuljs/schema@0.1.3': {} + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@jsdoc/salty@0.2.9': + dependencies: + lodash: 4.17.23 + + '@napi-rs/wasm-runtime@0.2.12': + dependencies: + '@emnapi/core': 1.8.1 + '@emnapi/runtime': 1.8.1 + '@tybys/wasm-util': 0.10.1 + optional: true + + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': + optional: true + + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': + dependencies: + eslint-scope: 5.1.1 + + '@noble/curves@1.9.7': + dependencies: + '@noble/hashes': 1.8.0 + + '@noble/hashes@1.8.0': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@qiwi/npm-registry-client@8.9.1': + dependencies: + concat-stream: 2.0.0 + graceful-fs: 4.2.11 + normalize-package-data: 3.0.3 + npm-package-arg: 8.1.5 + once: 1.4.0 + request: 2.88.2 + retry: 0.12.0 + safe-buffer: 5.2.1 + semver: 7.7.3 + slide: 1.1.6 + ssri: 8.0.1 + optionalDependencies: + npmlog: 4.1.2 + + '@rollup/rollup-android-arm-eabi@4.57.1': + optional: true + + '@rollup/rollup-android-arm64@4.57.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.57.1': + optional: true + + '@rollup/rollup-darwin-x64@4.57.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.57.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.57.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.57.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.57.1': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.57.1': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.57.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.57.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.57.1': + optional: true + + '@rollup/rollup-openbsd-x64@4.57.1': + optional: true + + '@rollup/rollup-openharmony-arm64@4.57.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.57.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.57.1': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.57.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.57.1': + optional: true + + '@sinonjs/commons@3.0.1': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@10.3.0': + dependencies: + '@sinonjs/commons': 3.0.1 + + '@sinonjs/fake-timers@11.3.1': + dependencies: + '@sinonjs/commons': 3.0.1 + + '@sinonjs/samsam@8.0.3': + dependencies: + '@sinonjs/commons': 3.0.1 + type-detect: 4.1.0 + + '@sinonjs/text-encoding@0.7.3': {} + + '@socket.io/component-emitter@3.1.2': {} + + '@standard-schema/spec@1.1.0': {} + + '@stellar/js-xdr@3.1.2': {} + + '@tsconfig/node10@1.0.12': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + + '@types/cors@2.8.19': + dependencies: + '@types/node': 20.19.32 + + '@types/deep-eql@4.0.2': {} + + '@types/eslint-scope@3.7.7': + dependencies: + '@types/eslint': 9.6.1 + '@types/estree': 1.0.8 + + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + + '@types/estree@1.0.8': {} + + '@types/json-schema@7.0.15': {} + + '@types/linkify-it@5.0.0': {} + + '@types/markdown-it@14.1.2': + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + + '@types/mdurl@2.0.0': {} + + '@types/node@14.18.63': {} + + '@types/node@20.19.32': + dependencies: + undici-types: 6.21.0 + + '@types/parsimmon@1.10.9': {} + + '@types/semver@7.7.1': {} + + '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) + debug: 4.4.3(supports-color@8.1.1) + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare-lite: 1.4.0 + semver: 7.7.3 + tsutils: 3.21.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/type-utils': 8.54.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.54.0 + eslint: 9.39.2 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) + debug: 4.4.3(supports-color@8.1.1) + eslint: 8.57.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.54.0 + debug: 4.4.3(supports-color@8.1.1) + eslint: 9.39.2 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.54.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.9.3) + '@typescript-eslint/types': 8.54.0 + debug: 4.4.3(supports-color@8.1.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@5.62.0': + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + + '@typescript-eslint/scope-manager@8.54.0': + dependencies: + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/visitor-keys': 8.54.0 + + '@typescript-eslint/tsconfig-utils@8.54.0(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + + '@typescript-eslint/type-utils@5.62.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) + debug: 4.4.3(supports-color@8.1.1) + eslint: 8.57.1 + tsutils: 3.21.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/type-utils@8.54.0(eslint@9.39.2)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2)(typescript@5.9.3) + debug: 4.4.3(supports-color@8.1.1) + eslint: 9.39.2 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@5.62.0': {} + + '@typescript-eslint/types@8.54.0': {} + + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.4.3(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.7.3 + tsutils: 3.21.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.54.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.54.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.9.3) + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/visitor-keys': 8.54.0 + debug: 4.4.3(supports-color@8.1.1) + minimatch: 9.0.5 + semver: 7.7.3 + tinyglobby: 0.2.15 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) + '@types/json-schema': 7.0.15 + '@types/semver': 7.7.1 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) + eslint: 8.57.1 + eslint-scope: 5.1.1 + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@8.54.0(eslint@9.39.2)(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2) + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + eslint: 9.39.2 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@5.62.0': + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@8.54.0': + dependencies: + '@typescript-eslint/types': 8.54.0 + eslint-visitor-keys: 4.2.1 + + '@ungap/structured-clone@1.3.0': {} + + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + optional: true + + '@unrs/resolver-binding-android-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.12 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + optional: true + + '@vitest/expect@4.0.18': + dependencies: + '@standard-schema/spec': 1.1.0 + '@types/chai': 5.2.3 + '@vitest/spy': 4.0.18 + '@vitest/utils': 4.0.18 + chai: 6.2.2 + tinyrainbow: 3.0.3 + + '@vitest/mocker@4.0.18(vite@7.3.1(@types/node@20.19.32)(terser@5.46.0)(yaml@2.8.2))': + dependencies: + '@vitest/spy': 4.0.18 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 7.3.1(@types/node@20.19.32)(terser@5.46.0)(yaml@2.8.2) + + '@vitest/pretty-format@4.0.18': + dependencies: + tinyrainbow: 3.0.3 + + '@vitest/runner@4.0.18': + dependencies: + '@vitest/utils': 4.0.18 + pathe: 2.0.3 + + '@vitest/snapshot@4.0.18': + dependencies: + '@vitest/pretty-format': 4.0.18 + magic-string: 0.30.21 + pathe: 2.0.3 + + '@vitest/spy@4.0.18': {} + + '@vitest/utils@4.0.18': + dependencies: + '@vitest/pretty-format': 4.0.18 + tinyrainbow: 3.0.3 + + '@webassemblyjs/ast@1.14.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} + + '@webassemblyjs/helper-api-error@1.13.2': {} + + '@webassemblyjs/helper-buffer@1.14.1': {} + + '@webassemblyjs/helper-numbers@1.13.2': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} + + '@webassemblyjs/helper-wasm-section@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 + + '@webassemblyjs/ieee754@1.13.2': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.13.2': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.13.2': {} + + '@webassemblyjs/wasm-edit@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 + + '@webassemblyjs/wasm-gen@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wasm-opt@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + + '@webassemblyjs/wasm-parser@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wast-printer@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@xtuc/long': 4.2.2 + + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.105.0)': + dependencies: + webpack: 5.105.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.105.0) + + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.105.0)': + dependencies: + webpack: 5.105.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.105.0) + + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.105.0)': + dependencies: + webpack: 5.105.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.105.0) + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-import-phases@1.0.4(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.15.0 + + acorn@8.15.0: {} + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + + ajv-formats@2.1.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + + ajv-keywords@5.1.0(ajv@8.17.1): + dependencies: + ajv: 8.17.1 + fast-deep-equal: 3.1.3 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-colors@4.1.3: {} + + ansi-escapes@7.3.0: + dependencies: + environment: 1.1.0 + + ansi-regex@2.1.1: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} + + ansi-styles@2.2.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.3: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + append-transform@2.0.0: + dependencies: + default-require-extensions: 3.0.1 + + aproba@1.2.0: + optional: true + + archy@1.0.0: {} + + are-we-there-yet@1.1.7: + dependencies: + delegates: 1.0.0 + readable-stream: 2.3.8 + optional: true + + arg@4.1.3: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + array-union@2.1.0: {} + + asn1.js@4.10.1: + dependencies: + bn.js: 4.12.2 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + asn1@0.2.6: + dependencies: + safer-buffer: 2.1.2 + + assert-plus@1.0.0: {} + + assert@2.1.0: + dependencies: + call-bind: 1.0.8 + is-nan: 1.3.2 + object-is: 1.1.6 + object.assign: 4.1.7 + util: 0.12.5 + + assertion-error@1.1.0: {} + + assertion-error@2.0.1: {} + + asynckit@0.4.0: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + aws-sign2@0.7.0: {} + + aws4@1.13.2: {} + + babel-code-frame@6.26.0: + dependencies: + chalk: 1.1.3 + esutils: 2.0.3 + js-tokens: 3.0.2 + + babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.105.0): + dependencies: + '@babel/core': 7.29.0 + find-cache-dir: 4.0.0 + schema-utils: 4.3.3 + webpack: 5.105.0(webpack-cli@5.1.4) + + babel-plugin-istanbul@6.1.1: + dependencies: + '@babel/helper-plugin-utils': 7.28.6 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs2@0.4.15(@babel/core@7.29.0): + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.14.0(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) + core-js-compat: 3.48.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.6.6(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + balanced-match@1.0.2: {} + + base32.js@0.1.0: {} + + base64-js@1.5.1: {} + + base64id@2.0.0: {} + + baseline-browser-mapping@2.9.19: {} + + bcrypt-pbkdf@1.0.2: + dependencies: + tweetnacl: 0.14.5 + + bignumber.js@9.3.1: {} + + binary-extensions@2.3.0: {} + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + bluebird@3.7.2: {} + + bn.js@4.12.2: {} + + bn.js@5.2.2: {} + + body-parser@1.20.4: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.1 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.14.1 + raw-body: 2.5.3 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + brorand@1.1.0: {} + + browser-stdout@1.3.1: {} + + browserify-aes@1.2.0: + dependencies: + buffer-xor: 1.0.3 + cipher-base: 1.0.7 + create-hash: 1.2.0 + evp_bytestokey: 1.0.3 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + browserify-cipher@1.0.1: + dependencies: + browserify-aes: 1.2.0 + browserify-des: 1.0.2 + evp_bytestokey: 1.0.3 + + browserify-des@1.0.2: + dependencies: + cipher-base: 1.0.7 + des.js: 1.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + browserify-rsa@4.1.1: + dependencies: + bn.js: 5.2.2 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + + browserify-sign@4.2.5: + dependencies: + bn.js: 5.2.2 + browserify-rsa: 4.1.1 + create-hash: 1.2.0 + create-hmac: 1.1.7 + elliptic: 6.6.1 + inherits: 2.0.4 + parse-asn1: 5.1.9 + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + + browserify-zlib@0.2.0: + dependencies: + pako: 1.0.11 + + browserslist@4.28.1: + dependencies: + baseline-browser-mapping: 2.9.19 + caniuse-lite: 1.0.30001768 + electron-to-chromium: 1.5.286 + node-releases: 2.0.27 + update-browserslist-db: 1.2.3(browserslist@4.28.1) + + buffer-from@1.1.2: {} + + buffer-xor@1.0.3: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + builtin-modules@1.1.1: {} + + builtin-status-codes@3.0.0: {} + + builtins@1.0.3: {} + + bytes@3.1.2: {} + + caching-transform@4.0.0: + dependencies: + hasha: 5.2.2 + make-dir: 3.1.0 + package-hash: 4.0.0 + write-file-atomic: 3.0.3 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + callsites@3.1.0: {} + + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001768: {} + + caseless@0.12.0: {} + + catharsis@0.9.0: + dependencies: + lodash: 4.17.23 + + chai-as-promised@7.1.2(chai@4.5.0): + dependencies: + chai: 4.5.0 + check-error: 1.0.3 + + chai@4.5.0: + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.4 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.1.0 + + chai@6.2.2: {} + + chalk@1.1.3: + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.6.2: {} + + charm@1.0.2: + dependencies: + inherits: 2.0.4 + + check-error@1.0.3: + dependencies: + get-func-name: 2.0.2 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chownr@2.0.0: {} + + chrome-trace-event@1.0.4: {} + + cipher-base@1.0.7: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + to-buffer: 1.2.2 + + clean-stack@2.2.0: {} + + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.2.0 + + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + + cliui@7.0.4: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-deep@4.0.1: + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + + code-point-at@1.1.0: + optional: true + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + colorette@2.0.20: {} + + colors@0.6.2: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + command-exists@1.2.9: {} + + commander@10.0.1: {} + + commander@13.1.0: {} + + commander@2.1.0: {} + + commander@2.20.3: {} + + commander@2.9.0: + dependencies: + graceful-readlink: 1.0.1 + + commander@6.2.1: {} + + comment-parser@1.4.5: {} + + common-path-prefix@3.0.0: {} + + commondir@1.0.1: {} + + concat-map@0.0.1: {} + + concat-stream@2.0.0: + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + typedarray: 0.0.6 + + connect@3.7.0: + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + + console-browserify@1.2.0: {} + + console-control-strings@1.1.0: + optional: true + + constants-browserify@1.0.0: {} + + content-type@1.0.5: {} + + convert-source-map@1.9.0: {} + + convert-source-map@2.0.0: {} + + cookie@0.7.2: {} + + core-js-compat@3.48.0: + dependencies: + browserslist: 4.28.1 + + core-util-is@1.0.2: {} + + core-util-is@1.0.3: {} + + cors@2.8.6: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + create-ecdh@4.0.4: + dependencies: + bn.js: 4.12.2 + elliptic: 6.6.1 + + create-hash@1.2.0: + dependencies: + cipher-base: 1.0.7 + inherits: 2.0.4 + md5.js: 1.3.5 + ripemd160: 2.0.3 + sha.js: 2.4.12 + + create-hmac@1.1.7: + dependencies: + cipher-base: 1.0.7 + create-hash: 1.2.0 + inherits: 2.0.4 + ripemd160: 2.0.3 + safe-buffer: 5.2.1 + sha.js: 2.4.12 + + create-require@1.1.1: {} + + cross-env@7.0.3: + dependencies: + cross-spawn: 7.0.6 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-browserify@3.12.1: + dependencies: + browserify-cipher: 1.0.1 + browserify-sign: 4.2.5 + create-ecdh: 4.0.4 + create-hash: 1.2.0 + create-hmac: 1.1.7 + diffie-hellman: 5.0.3 + hash-base: 3.0.5 + inherits: 2.0.4 + pbkdf2: 3.1.5 + public-encrypt: 4.0.3 + randombytes: 2.1.0 + randomfill: 1.0.4 + + custom-event@1.0.1: {} + + dashdash@1.14.1: + dependencies: + assert-plus: 1.0.0 + + date-format@4.0.14: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@4.4.3(supports-color@8.1.1): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 + + decamelize@1.2.0: {} + + decamelize@4.0.0: {} + + deep-eql@4.1.4: + dependencies: + type-detect: 4.1.0 + + deep-is@0.1.4: {} + + default-require-extensions@3.0.1: + dependencies: + strip-bom: 4.0.0 + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + delayed-stream@1.0.0: {} + + delegates@1.0.0: + optional: true + + depd@2.0.0: {} + + des.js@1.1.0: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + destroy@1.2.0: {} + + di@0.0.1: {} + + diff@3.5.1: {} + + diff@4.0.4: {} + + diff@5.2.2: {} + + diffie-hellman@5.0.3: + dependencies: + bn.js: 4.12.2 + miller-rabin: 4.0.1 + randombytes: 2.1.0 + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + dom-serialize@2.2.1: + dependencies: + custom-event: 1.0.1 + ent: 2.2.2 + extend: 3.0.2 + void-elements: 2.0.1 + + domain-browser@4.23.0: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + ecc-jsbn@0.1.2: + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + + ee-first@1.1.1: {} + + electron-to-chromium@1.5.286: {} + + elliptic@6.6.1: + dependencies: + bn.js: 4.12.2 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + emoji-regex@10.6.0: {} + + emoji-regex@8.0.0: {} + + encodeurl@1.0.2: {} + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + + engine.io-parser@5.2.3: {} + + engine.io@6.6.5: + dependencies: + '@types/cors': 2.8.19 + '@types/node': 20.19.32 + accepts: 1.3.8 + base64id: 2.0.0 + cookie: 0.7.2 + cors: 2.8.6 + debug: 4.4.3(supports-color@8.1.1) + engine.io-parser: 5.2.3 + ws: 8.18.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + enhanced-resolve@5.19.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.0 + + ent@2.2.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + punycode: 1.4.1 + safe-regex-test: 1.1.0 + + entities@4.5.0: {} + + envinfo@7.21.0: {} + + environment@1.1.0: {} + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-module-lexer@1.7.0: {} + + es-module-lexer@2.0.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es6-error@4.1.1: {} + + esbuild@0.27.3: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.3 + '@esbuild/android-arm': 0.27.3 + '@esbuild/android-arm64': 0.27.3 + '@esbuild/android-x64': 0.27.3 + '@esbuild/darwin-arm64': 0.27.3 + '@esbuild/darwin-x64': 0.27.3 + '@esbuild/freebsd-arm64': 0.27.3 + '@esbuild/freebsd-x64': 0.27.3 + '@esbuild/linux-arm': 0.27.3 + '@esbuild/linux-arm64': 0.27.3 + '@esbuild/linux-ia32': 0.27.3 + '@esbuild/linux-loong64': 0.27.3 + '@esbuild/linux-mips64el': 0.27.3 + '@esbuild/linux-ppc64': 0.27.3 + '@esbuild/linux-riscv64': 0.27.3 + '@esbuild/linux-s390x': 0.27.3 + '@esbuild/linux-x64': 0.27.3 + '@esbuild/netbsd-arm64': 0.27.3 + '@esbuild/netbsd-x64': 0.27.3 + '@esbuild/openbsd-arm64': 0.27.3 + '@esbuild/openbsd-x64': 0.27.3 + '@esbuild/openharmony-arm64': 0.27.3 + '@esbuild/sunos-x64': 0.27.3 + '@esbuild/win32-arm64': 0.27.3 + '@esbuild/win32-ia32': 0.27.3 + '@esbuild/win32-x64': 0.27.3 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@2.0.0: {} + + escape-string-regexp@4.0.0: {} + + eslint-import-context@0.1.9(unrs-resolver@1.11.1): + dependencies: + get-tsconfig: 4.13.6 + stable-hash-x: 0.2.0 + optionalDependencies: + unrs-resolver: 1.11.1 + + eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2): + dependencies: + '@typescript-eslint/types': 8.54.0 + comment-parser: 1.4.5 + debug: 4.4.3(supports-color@8.1.1) + eslint: 9.39.2 + eslint-import-context: 0.1.9(unrs-resolver@1.11.1) + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.3 + stable-hash-x: 0.2.0 + unrs-resolver: 1.11.1 + optionalDependencies: + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2)(typescript@5.9.3) + transitivePeerDependencies: + - supports-color + + eslint-rule-composer@0.3.0: {} + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@2.1.0: {} + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.1: {} + + eslint@8.57.1: + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.2 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.3.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3(supports-color@8.1.1) + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.1 + 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.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + eslint@9.39.2: + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.3 + '@eslint/js': 9.39.2 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.7 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3(supports-color@8.1.1) + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + espree@10.4.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 + + espree@9.6.1: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 3.4.3 + + esprima@4.0.1: {} + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.8 + + esutils@2.0.3: {} + + event-target-shim@5.0.1: {} + + eventemitter3@4.0.7: {} + + eventemitter3@5.0.4: {} + + events@3.3.0: {} + + evp_bytestokey@1.0.3: + dependencies: + md5.js: 1.3.5 + safe-buffer: 5.2.1 + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + expect-type@1.3.0: {} + + extend@3.0.2: {} + + extsprintf@1.3.0: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-uri@3.1.0: {} + + fastest-levenshtein@1.0.16: {} + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@1.1.2: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + find-cache-dir@2.1.0: + dependencies: + commondir: 1.0.1 + make-dir: 2.1.0 + pkg-dir: 3.0.0 + + find-cache-dir@3.3.2: + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + + find-cache-dir@4.0.0: + dependencies: + common-path-prefix: 3.0.0 + pkg-dir: 7.0.0 + + find-up@3.0.0: + dependencies: + locate-path: 3.0.0 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + find-up@6.3.0: + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + + findup@0.1.5: + dependencies: + colors: 0.6.2 + commander: 2.1.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + rimraf: 3.0.2 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + + flat@5.0.2: {} + + flatted@3.3.3: {} + + follow-redirects@1.15.11: {} + + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + + foreground-child@2.0.0: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 3.0.7 + + forever-agent@0.6.1: {} + + form-data@2.3.3: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + fromentries@1.3.2: {} + + fs-constants@1.0.0: {} + + fs-extra@6.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs-readdir-recursive@1.1.0: {} + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + fstream@1.0.12: + dependencies: + graceful-fs: 4.2.11 + inherits: 2.0.4 + mkdirp: 0.5.6 + rimraf: 2.7.1 + + function-bind@1.1.2: {} + + gauge@2.7.4: + dependencies: + aproba: 1.2.0 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 1.0.2 + strip-ansi: 3.0.1 + wide-align: 1.1.5 + optional: true + + generator-function@2.0.1: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.4.0: {} + + get-func-name@2.0.2: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-package-type@0.1.0: {} + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stream@8.0.1: {} + + get-tsconfig@4.13.6: + dependencies: + resolve-pkg-maps: 1.0.0 + + getpass@0.1.7: + dependencies: + assert-plus: 1.0.0 + + ghooks@2.0.4: + dependencies: + findup: 0.1.5 + lodash.clone: 4.5.0 + manage-path: 2.0.0 + opt-cli: 1.5.1 + path-exists: 3.0.0 + spawn-command: 0.0.2 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globals@14.0.0: {} + + globals@17.3.0: {} + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + graceful-readlink@1.0.1: {} + + graphemer@1.4.0: {} + + har-schema@2.0.0: {} + + har-validator@5.1.5: + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + + has-ansi@2.0.0: + dependencies: + ansi-regex: 2.1.1 + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + has-unicode@2.0.1: + optional: true + + hash-base@3.0.5: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + hash-base@3.1.2: + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + to-buffer: 1.2.2 + + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + hasha@5.2.2: + dependencies: + is-stream: 2.0.1 + type-fest: 0.8.1 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + hmac-drbg@1.0.1: + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + hosted-git-info@4.1.0: + dependencies: + lru-cache: 6.0.0 + + html-escaper@2.0.2: {} + + http-errors@2.0.1: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 + + http-proxy@1.18.1: + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.11 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + + http-signature@1.2.0: + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.18.0 + + https-browserify@1.0.0: {} + + human-signals@5.0.0: {} + + husky@8.0.3: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + ignore@7.0.5: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-local@3.2.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + interpret@3.1.1: {} + + is-arguments@1.2.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-callable@1.2.7: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-docker@2.2.1: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@1.0.0: + dependencies: + number-is-nan: 1.0.1 + optional: true + + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@4.0.0: {} + + is-fullwidth-code-point@5.1.0: + dependencies: + get-east-asian-width: 1.4.0 + + is-generator-function@1.1.2: + dependencies: + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-nan@1.3.2: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + is-plain-obj@2.1.0: {} + + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-stream@2.0.1: {} + + is-stream@3.0.0: {} + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.20 + + is-typedarray@1.0.0: {} + + is-unicode-supported@0.1.0: {} + + is-windows@1.0.2: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + isarray@1.0.0: {} + + isarray@2.0.5: {} + + isbinaryfile@4.0.10: {} + + isexe@2.0.0: {} + + isobject@3.0.1: {} + + isstream@0.1.2: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-hook@3.0.0: + dependencies: + append-transform: 2.0.0 + + istanbul-lib-instrument@4.0.3: + dependencies: + '@babel/core': 7.29.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + istanbul-lib-processinfo@2.0.3: + dependencies: + archy: 1.0.0 + cross-spawn: 7.0.6 + istanbul-lib-coverage: 3.2.2 + p-map: 3.0.0 + rimraf: 3.0.2 + uuid: 8.3.2 + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@4.0.1: + dependencies: + debug: 4.4.3(supports-color@8.1.1) + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jest-worker@27.5.1: + dependencies: + '@types/node': 20.19.32 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + js-tokens@3.0.2: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.2: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + js2xmlparser@4.0.2: + dependencies: + xmlcreate: 2.0.4 + + jsbn@0.1.1: {} + + jsdoc@4.0.5: + dependencies: + '@babel/parser': 7.29.0 + '@jsdoc/salty': 0.2.9 + '@types/markdown-it': 14.1.2 + bluebird: 3.7.2 + catharsis: 0.9.0 + escape-string-regexp: 2.0.0 + js2xmlparser: 4.0.2 + klaw: 3.0.0 + markdown-it: 14.1.0 + markdown-it-anchor: 8.6.7(@types/markdown-it@14.1.2)(markdown-it@14.1.0) + marked: 4.3.0 + mkdirp: 1.0.4 + requizzle: 0.2.4 + strip-json-comments: 3.1.1 + underscore: 1.13.7 + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-schema@0.4.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json-stable-stringify@1.3.0: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + isarray: 2.0.5 + jsonify: 0.0.1 + object-keys: 1.1.1 + + json-stringify-safe@5.0.1: {} + + json5@2.2.3: {} + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonify@0.0.1: {} + + jsprim@1.4.2: + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + + just-extend@6.2.0: {} + + karma-chrome-launcher@3.2.0: + dependencies: + which: 1.3.1 + + karma-coverage@2.2.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 5.2.1 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.2.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + karma-firefox-launcher@2.1.3: + dependencies: + is-wsl: 2.2.0 + which: 3.0.1 + + karma-mocha@2.0.1: + dependencies: + minimist: 1.2.8 + + karma-sinon-chai@2.0.2(chai@4.5.0)(sinon-chai@3.7.0(chai@4.5.0)(sinon@16.1.3))(sinon@16.1.3): + dependencies: + chai: 4.5.0 + sinon: 16.1.3 + sinon-chai: 3.7.0(chai@4.5.0)(sinon@16.1.3) + + karma-webpack@5.0.1(webpack@5.105.0): + dependencies: + glob: 7.2.3 + minimatch: 9.0.5 + webpack: 5.105.0(webpack-cli@5.1.4) + webpack-merge: 4.2.2 + + karma@6.4.4: + dependencies: + '@colors/colors': 1.5.0 + body-parser: 1.20.4 + braces: 3.0.3 + chokidar: 3.6.0 + connect: 3.7.0 + di: 0.0.1 + dom-serialize: 2.2.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + http-proxy: 1.18.1 + isbinaryfile: 4.0.10 + lodash: 4.17.23 + log4js: 6.9.1 + mime: 2.6.0 + minimatch: 3.1.2 + mkdirp: 0.5.6 + qjobs: 1.2.0 + range-parser: 1.2.1 + rimraf: 3.0.2 + socket.io: 4.8.3 + source-map: 0.6.1 + tmp: 0.2.5 + ua-parser-js: 0.7.41 + yargs: 16.2.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@6.0.3: {} + + klaw@3.0.0: + dependencies: + graceful-fs: 4.2.11 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lilconfig@3.1.3: {} + + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + + lint-staged@15.5.2: + dependencies: + chalk: 5.6.2 + commander: 13.1.0 + debug: 4.4.3(supports-color@8.1.1) + execa: 8.0.1 + lilconfig: 3.1.3 + listr2: 8.3.3 + micromatch: 4.0.8 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.8.2 + transitivePeerDependencies: + - supports-color + + listr2@8.3.3: + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.4 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.2 + + loader-runner@4.3.1: {} + + locate-path@3.0.0: + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + locate-path@7.2.0: + dependencies: + p-locate: 6.0.0 + + lodash._baseclone@4.5.7: {} + + lodash.clone@4.3.2: + dependencies: + lodash._baseclone: 4.5.7 + + lodash.clone@4.5.0: {} + + lodash.debounce@4.0.8: {} + + lodash.flattendeep@4.4.0: {} + + lodash.merge@4.6.2: {} + + lodash@4.17.23: {} + + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + log-update@6.1.0: + dependencies: + ansi-escapes: 7.3.0 + cli-cursor: 5.0.0 + slice-ansi: 7.1.2 + strip-ansi: 7.1.2 + wrap-ansi: 9.0.2 + + log4js@6.9.1: + dependencies: + date-format: 4.0.14 + debug: 4.4.3(supports-color@8.1.1) + flatted: 3.3.3 + rfdc: 1.4.1 + streamroller: 3.1.5 + transitivePeerDependencies: + - supports-color + + loupe@2.3.7: + dependencies: + get-func-name: 2.0.2 + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + make-dir@2.1.0: + dependencies: + pify: 4.0.1 + semver: 5.7.2 + + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + + make-dir@4.0.0: + dependencies: + semver: 7.7.3 + + make-error@1.3.6: {} + + manage-path@2.0.0: {} + + markdown-it-anchor@8.6.7(@types/markdown-it@14.1.2)(markdown-it@14.1.0): + dependencies: + '@types/markdown-it': 14.1.2 + markdown-it: 14.1.0 + + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + marked@4.3.0: {} + + math-intrinsics@1.1.0: {} + + md5.js@1.3.5: + dependencies: + hash-base: 3.0.5 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + mdurl@2.0.0: {} + + media-typer@0.3.0: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + miller-rabin@4.0.1: + dependencies: + bn.js: 4.12.2 + brorand: 1.1.0 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@2.6.0: {} + + mimic-fn@4.0.0: {} + + mimic-function@5.0.1: {} + + minami@1.2.3: {} + + minimalistic-assert@1.0.1: {} + + minimalistic-crypto-utils@1.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.2 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.2 + + minimist@1.2.8: {} + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mkdirp@1.0.4: {} + + mocha@10.8.2: + dependencies: + ansi-colors: 4.1.3 + browser-stdout: 1.3.1 + chokidar: 3.6.0 + debug: 4.4.3(supports-color@8.1.1) + diff: 5.2.2 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 8.1.0 + he: 1.2.0 + js-yaml: 4.1.1 + log-symbols: 4.1.0 + minimatch: 5.1.6 + ms: 2.1.3 + serialize-javascript: 6.0.2 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + workerpool: 6.5.1 + yargs: 16.2.0 + yargs-parser: 20.2.9 + yargs-unparser: 2.0.0 + + ms@2.0.0: {} + + ms@2.1.3: {} + + nanoid@3.3.11: {} + + napi-postinstall@0.3.4: {} + + natural-compare-lite@1.4.0: {} + + natural-compare@1.4.0: {} + + negotiator@0.6.3: {} + + neo-async@2.6.2: {} + + nise@5.1.9: + dependencies: + '@sinonjs/commons': 3.0.1 + '@sinonjs/fake-timers': 11.3.1 + '@sinonjs/text-encoding': 0.7.3 + just-extend: 6.2.0 + path-to-regexp: 6.3.0 + + node-polyfill-webpack-plugin@3.0.0(webpack@5.105.0): + dependencies: + assert: 2.1.0 + browserify-zlib: 0.2.0 + buffer: 6.0.3 + console-browserify: 1.2.0 + constants-browserify: 1.0.0 + crypto-browserify: 3.12.1 + domain-browser: 4.23.0 + events: 3.3.0 + https-browserify: 1.0.0 + os-browserify: 0.3.0 + path-browserify: 1.0.1 + process: 0.11.10 + punycode: 2.3.1 + querystring-es3: 0.2.1 + readable-stream: 4.7.0 + stream-browserify: 3.0.0 + stream-http: 3.2.0 + string_decoder: 1.3.0 + timers-browserify: 2.0.12 + tty-browserify: 0.0.1 + type-fest: 4.41.0 + url: 0.11.4 + util: 0.12.5 + vm-browserify: 1.1.2 + webpack: 5.105.0(webpack-cli@5.1.4) + + node-preload@0.2.1: + dependencies: + process-on-spawn: 1.1.0 + + node-releases@2.0.27: {} + + normalize-package-data@3.0.3: + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.16.1 + semver: 7.7.3 + validate-npm-package-license: 3.0.4 + + normalize-path@3.0.0: {} + + npm-package-arg@8.1.5: + dependencies: + hosted-git-info: 4.1.0 + semver: 7.7.3 + validate-npm-package-name: 3.0.0 + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + npmlog@4.1.2: + dependencies: + are-we-there-yet: 1.1.7 + console-control-strings: 1.1.0 + gauge: 2.7.4 + set-blocking: 2.0.0 + optional: true + + number-is-nan@1.0.1: + optional: true + + nyc@15.1.0: + dependencies: + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + caching-transform: 4.0.0 + convert-source-map: 1.9.0 + decamelize: 1.2.0 + find-cache-dir: 3.3.2 + find-up: 4.1.0 + foreground-child: 2.0.0 + get-package-type: 0.1.0 + glob: 7.2.3 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-hook: 3.0.0 + istanbul-lib-instrument: 4.0.3 + istanbul-lib-processinfo: 2.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.2.0 + make-dir: 3.1.0 + node-preload: 0.2.1 + p-map: 3.0.0 + process-on-spawn: 1.1.0 + resolve-from: 5.0.0 + rimraf: 3.0.2 + signal-exit: 3.0.7 + spawn-wrap: 2.0.0 + test-exclude: 6.0.0 + yargs: 15.4.1 + transitivePeerDependencies: + - supports-color + + oauth-sign@0.9.0: {} + + object-assign@4.1.1: {} + + object-inspect@1.13.4: {} + + object-is@1.1.6: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + obug@2.1.1: {} + + on-finished@2.3.0: + dependencies: + ee-first: 1.1.1 + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + opt-cli@1.5.1: + dependencies: + commander: 2.9.0 + lodash.clone: 4.3.2 + manage-path: 2.0.0 + spawn-command: 0.0.2-1 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + os-browserify@0.3.0: {} + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-limit@4.0.0: + dependencies: + yocto-queue: 1.2.2 + + p-locate@3.0.0: + dependencies: + p-limit: 2.3.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-locate@6.0.0: + dependencies: + p-limit: 4.0.0 + + p-map@3.0.0: + dependencies: + aggregate-error: 3.1.0 + + p-try@2.2.0: {} + + package-hash@4.0.0: + dependencies: + graceful-fs: 4.2.11 + hasha: 5.2.2 + lodash.flattendeep: 4.4.0 + release-zalgo: 1.0.0 + + pako@1.0.11: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-asn1@5.1.9: + dependencies: + asn1.js: 4.10.1 + browserify-aes: 1.2.0 + evp_bytestokey: 1.0.3 + pbkdf2: 3.1.5 + safe-buffer: 5.2.1 + + parseurl@1.3.3: {} + + parsimmon@1.18.1: {} + + path-browserify@1.0.1: {} + + path-exists@3.0.0: {} + + path-exists@4.0.0: {} + + path-exists@5.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-parse@1.0.7: {} + + path-to-regexp@6.3.0: {} + + path-type@4.0.0: {} + + pathe@2.0.3: {} + + pathval@1.1.1: {} + + pbkdf2@3.1.5: + dependencies: + create-hash: 1.2.0 + create-hmac: 1.1.7 + ripemd160: 2.0.3 + safe-buffer: 5.2.1 + sha.js: 2.4.12 + to-buffer: 1.2.2 + + performance-now@2.1.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.3: {} + + pidtree@0.6.0: {} + + pify@4.0.1: {} + + pirates@4.0.7: {} + + pkg-dir@3.0.0: + dependencies: + find-up: 3.0.0 + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + pkg-dir@7.0.0: + dependencies: + find-up: 6.3.0 + + possible-typed-array-names@1.1.0: {} + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier@3.8.1: {} + + process-nextick-args@2.0.1: {} + + process-on-spawn@1.1.0: + dependencies: + fromentries: 1.3.2 + + process@0.11.10: {} + + psl@1.15.0: + dependencies: + punycode: 2.3.1 + + public-encrypt@4.0.3: + dependencies: + bn.js: 4.12.2 + browserify-rsa: 4.1.1 + create-hash: 1.2.0 + parse-asn1: 5.1.9 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + + punycode.js@2.3.1: {} + + punycode@1.4.1: {} + + punycode@2.3.1: {} + + qjobs@1.2.0: {} + + qs@6.14.1: + dependencies: + side-channel: 1.1.0 + + qs@6.5.3: {} + + querystring-es3@0.2.1: {} + + queue-microtask@1.2.3: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + randomfill@1.0.4: + dependencies: + randombytes: 2.1.0 + safe-buffer: 5.2.1 + + range-parser@1.2.1: {} + + raw-body@2.5.3: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.1 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readable-stream@4.7.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + rechoir@0.8.0: + dependencies: + resolve: 1.22.11 + + regenerate-unicode-properties@10.2.2: + dependencies: + regenerate: 1.4.2 + + regenerate@1.4.2: {} + + regexpu-core@6.4.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.2 + regjsgen: 0.8.0 + regjsparser: 0.13.0 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.1 + + regjsgen@0.8.0: {} + + regjsparser@0.13.0: + dependencies: + jsesc: 3.1.0 + + release-zalgo@1.0.0: + dependencies: + es6-error: 4.1.1 + + request@2.88.2: + dependencies: + aws-sign2: 0.7.0 + aws4: 1.13.2 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + require-main-filename@2.0.0: {} + + requires-port@1.0.0: {} + + requizzle@0.2.4: + dependencies: + lodash: 4.17.23 + + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + + retry@0.12.0: {} + + reusify@1.1.0: {} + + rfdc@1.4.1: {} + + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + ripemd160@2.0.3: + dependencies: + hash-base: 3.1.2 + inherits: 2.0.4 + + rollup@4.57.1: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.57.1 + '@rollup/rollup-android-arm64': 4.57.1 + '@rollup/rollup-darwin-arm64': 4.57.1 + '@rollup/rollup-darwin-x64': 4.57.1 + '@rollup/rollup-freebsd-arm64': 4.57.1 + '@rollup/rollup-freebsd-x64': 4.57.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.57.1 + '@rollup/rollup-linux-arm-musleabihf': 4.57.1 + '@rollup/rollup-linux-arm64-gnu': 4.57.1 + '@rollup/rollup-linux-arm64-musl': 4.57.1 + '@rollup/rollup-linux-loong64-gnu': 4.57.1 + '@rollup/rollup-linux-loong64-musl': 4.57.1 + '@rollup/rollup-linux-ppc64-gnu': 4.57.1 + '@rollup/rollup-linux-ppc64-musl': 4.57.1 + '@rollup/rollup-linux-riscv64-gnu': 4.57.1 + '@rollup/rollup-linux-riscv64-musl': 4.57.1 + '@rollup/rollup-linux-s390x-gnu': 4.57.1 + '@rollup/rollup-linux-x64-gnu': 4.57.1 + '@rollup/rollup-linux-x64-musl': 4.57.1 + '@rollup/rollup-openbsd-x64': 4.57.1 + '@rollup/rollup-openharmony-arm64': 4.57.1 + '@rollup/rollup-win32-arm64-msvc': 4.57.1 + '@rollup/rollup-win32-ia32-msvc': 4.57.1 + '@rollup/rollup-win32-x64-gnu': 4.57.1 + '@rollup/rollup-win32-x64-msvc': 4.57.1 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + + safer-buffer@2.1.2: {} + + schema-utils@4.3.3: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + ajv-keywords: 5.1.0(ajv@8.17.1) + + semver@5.7.2: {} + + semver@6.3.1: {} + + semver@7.7.3: {} + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + set-blocking@2.0.0: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + setimmediate@1.0.5: {} + + setprototypeof@1.2.0: {} + + sha.js@2.4.12: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + to-buffer: 1.2.2 + + shallow-clone@3.0.1: + dependencies: + kind-of: 6.0.3 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + siginfo@2.0.0: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + sinon-chai@3.7.0(chai@4.5.0)(sinon@16.1.3): + dependencies: + chai: 4.5.0 + sinon: 16.1.3 + + sinon@16.1.3: + dependencies: + '@sinonjs/commons': 3.0.1 + '@sinonjs/fake-timers': 10.3.0 + '@sinonjs/samsam': 8.0.3 + diff: 5.2.2 + nise: 5.1.9 + supports-color: 7.2.0 + + slash@2.0.0: {} + + slash@3.0.0: {} + + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.3 + is-fullwidth-code-point: 4.0.0 + + slice-ansi@7.1.2: + dependencies: + ansi-styles: 6.2.3 + is-fullwidth-code-point: 5.1.0 + + slide@1.1.6: {} + + socket.io-adapter@2.5.6: + dependencies: + debug: 4.4.3(supports-color@8.1.1) + ws: 8.18.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-parser@4.2.5: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + socket.io@4.8.3: + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.6 + debug: 4.4.3(supports-color@8.1.1) + engine.io: 6.6.5 + socket.io-adapter: 2.5.6 + socket.io-parser: 4.2.5 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + source-map-js@1.2.1: {} + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + spawn-command@0.0.2: {} + + spawn-command@0.0.2-1: {} + + spawn-wrap@2.0.0: + dependencies: + foreground-child: 2.0.0 + is-windows: 1.0.2 + make-dir: 3.1.0 + rimraf: 3.0.2 + signal-exit: 3.0.7 + which: 2.0.2 + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.22 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.22 + + spdx-license-ids@3.0.22: {} + + sprintf-js@1.0.3: {} + + sshpk@1.18.0: + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + + ssri@8.0.1: + dependencies: + minipass: 3.3.6 + + stable-hash-x@0.2.0: {} + + stackback@0.0.2: {} + + statuses@1.5.0: {} + + statuses@2.0.2: {} + + std-env@3.10.0: {} + + stream-browserify@3.0.0: + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + + stream-http@3.2.0: + dependencies: + builtin-status-codes: 3.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + xtend: 4.0.2 + + streamroller@3.1.5: + dependencies: + date-format: 4.0.14 + debug: 4.4.3(supports-color@8.1.1) + fs-extra: 8.1.0 + transitivePeerDependencies: + - supports-color + + string-argv@0.3.2: {} + + string-width@1.0.2: + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + strip-ansi: 3.0.1 + optional: true + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.6.0 + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.2 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@3.0.1: + dependencies: + ansi-regex: 2.1.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.2: + dependencies: + ansi-regex: 6.2.2 + + strip-bom@4.0.0: {} + + strip-final-newline@3.0.0: {} + + strip-json-comments@2.0.1: {} + + strip-json-comments@3.1.1: {} + + supports-color@2.0.0: {} + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + taffydb@2.7.3: {} + + tapable@2.3.0: {} + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.5 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + terser-webpack-plugin@5.3.16(webpack@5.105.0): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.3.3 + serialize-javascript: 6.0.2 + terser: 5.46.0 + webpack: 5.105.0(webpack-cli@5.1.4) + + terser@5.46.0: + dependencies: + '@jridgewell/source-map': 0.3.11 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + test-exclude@6.0.0: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + + text-table@0.2.0: {} + + timers-browserify@2.0.12: + dependencies: + setimmediate: 1.0.5 + + tinybench@2.9.0: {} + + tinyexec@1.0.2: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + tinyrainbow@3.0.3: {} + + tmp@0.2.5: {} + + to-buffer@1.2.2: + dependencies: + isarray: 2.0.5 + safe-buffer: 5.2.1 + typed-array-buffer: 1.0.3 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + tough-cookie@2.5.0: + dependencies: + psl: 1.15.0 + punycode: 2.3.1 + + ts-api-utils@2.4.0(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + + ts-node@10.9.2(@types/node@20.19.32)(typescript@5.9.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.12 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.19.32 + acorn: 8.15.0 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.4 + make-error: 1.3.6 + typescript: 5.9.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + tslib@1.14.1: {} + + tslib@2.8.1: + optional: true + + tslint@5.14.0(typescript@5.9.3): + dependencies: + babel-code-frame: 6.26.0 + builtin-modules: 1.1.1 + chalk: 2.4.2 + commander: 2.20.3 + diff: 3.5.1 + glob: 7.2.3 + js-yaml: 3.14.2 + minimatch: 3.1.2 + mkdirp: 0.5.6 + resolve: 1.22.11 + semver: 5.7.2 + tslib: 1.14.1 + tsutils: 2.29.0(typescript@5.9.3) + typescript: 5.9.3 + + tsutils@2.29.0(typescript@5.9.3): + dependencies: + tslib: 1.14.1 + typescript: 5.9.3 + + tsutils@3.21.0(typescript@5.9.3): + dependencies: + tslib: 1.14.1 + typescript: 5.9.3 + + tty-browserify@0.0.1: {} + + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + + tweetnacl@0.14.5: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-detect@4.0.8: {} + + type-detect@4.1.0: {} + + type-fest@0.20.2: {} + + type-fest@0.8.1: {} + + type-fest@4.41.0: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typedarray-to-buffer@3.1.5: + dependencies: + is-typedarray: 1.0.0 + + typedarray@0.0.6: {} + + typescript-eslint@8.54.0(eslint@9.39.2)(typescript@5.9.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2)(typescript@5.9.3) + eslint: 9.39.2 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + typescript@5.9.3: {} + + ua-parser-js@0.7.41: {} + + uc.micro@2.1.0: {} + + underscore@1.13.7: {} + + undici-types@6.21.0: {} + + unicode-canonical-property-names-ecmascript@2.0.1: {} + + unicode-match-property-ecmascript@2.0.0: + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.1 + unicode-property-aliases-ecmascript: 2.2.0 + + unicode-match-property-value-ecmascript@2.2.1: {} + + unicode-property-aliases-ecmascript@2.2.0: {} + + universalify@0.1.2: {} + + unpipe@1.0.0: {} + + unrs-resolver@1.11.1: + dependencies: + napi-postinstall: 0.3.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 + '@unrs/resolver-binding-android-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-x64': 1.11.1 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + + update-browserslist-db@1.2.3(browserslist@4.28.1): + dependencies: + browserslist: 4.28.1 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + url@0.11.4: + dependencies: + punycode: 1.4.1 + qs: 6.14.1 + + util-deprecate@1.0.2: {} + + util@0.12.5: + dependencies: + inherits: 2.0.4 + is-arguments: 1.2.0 + is-generator-function: 1.1.2 + is-typed-array: 1.1.15 + which-typed-array: 1.1.20 + + utils-merge@1.0.1: {} + + uuid@3.4.0: {} + + uuid@8.3.2: {} + + v8-compile-cache-lib@3.0.1: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + validate-npm-package-name@3.0.0: + dependencies: + builtins: 1.0.3 + + vary@1.1.2: {} + + verror@1.10.0: + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + + vite@7.3.1(@types/node@20.19.32)(terser@5.46.0)(yaml@2.8.2): + dependencies: + esbuild: 0.27.3 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.57.1 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 20.19.32 + fsevents: 2.3.3 + terser: 5.46.0 + yaml: 2.8.2 + + vitest@4.0.18(@types/node@20.19.32)(terser@5.46.0)(yaml@2.8.2): + dependencies: + '@vitest/expect': 4.0.18 + '@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@20.19.32)(terser@5.46.0)(yaml@2.8.2)) + '@vitest/pretty-format': 4.0.18 + '@vitest/runner': 4.0.18 + '@vitest/snapshot': 4.0.18 + '@vitest/spy': 4.0.18 + '@vitest/utils': 4.0.18 + es-module-lexer: 1.7.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.1 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + tinyrainbow: 3.0.3 + vite: 7.3.1(@types/node@20.19.32)(terser@5.46.0)(yaml@2.8.2) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 20.19.32 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - yaml + + vm-browserify@1.1.2: {} + + void-elements@2.0.1: {} + + watchpack@2.5.1: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + webpack-cli@5.1.4(webpack@5.105.0): + dependencies: + '@discoveryjs/json-ext': 0.5.7 + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.105.0) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.105.0) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.105.0) + colorette: 2.0.20 + commander: 10.0.1 + cross-spawn: 7.0.6 + envinfo: 7.21.0 + fastest-levenshtein: 1.0.16 + import-local: 3.2.0 + interpret: 3.1.1 + rechoir: 0.8.0 + webpack: 5.105.0(webpack-cli@5.1.4) + webpack-merge: 5.10.0 + + webpack-merge@4.2.2: + dependencies: + lodash: 4.17.23 + + webpack-merge@5.10.0: + dependencies: + clone-deep: 4.0.1 + flat: 5.0.2 + wildcard: 2.0.1 + + webpack-sources@3.3.3: {} + + webpack@5.105.0(webpack-cli@5.1.4): + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.15.0 + acorn-import-phases: 1.0.4(acorn@8.15.0) + browserslist: 4.28.1 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.19.0 + es-module-lexer: 2.0.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.1 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 4.3.3 + tapable: 2.3.0 + terser-webpack-plugin: 5.3.16(webpack@5.105.0) + watchpack: 2.5.1 + webpack-sources: 3.3.3 + optionalDependencies: + webpack-cli: 5.1.4(webpack@5.105.0) + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + which-module@2.0.1: {} + + which-typed-array@1.1.20: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@1.3.1: + dependencies: + isexe: 2.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + which@3.0.1: + dependencies: + isexe: 2.0.0 + + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + wide-align@1.1.5: + dependencies: + string-width: 1.0.2 + optional: true + + wildcard@2.0.1: {} + + word-wrap@1.2.5: {} + + workerpool@6.5.1: {} + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@9.0.2: + dependencies: + ansi-styles: 6.2.3 + string-width: 7.2.0 + strip-ansi: 7.1.2 + + wrappy@1.0.2: {} + + write-file-atomic@3.0.3: + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + + ws@8.18.3: {} + + xmlcreate@2.0.4: {} + + xtend@4.0.2: {} + + y18n@4.0.3: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yaml@2.8.2: {} + + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + + yargs-parser@20.2.9: {} + + yargs-unparser@2.0.0: + dependencies: + camelcase: 6.3.0 + decamelize: 4.0.0 + flat: 5.0.2 + is-plain-obj: 2.1.0 + + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + + yargs@16.2.0: + dependencies: + cliui: 7.0.4 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + + yn@3.1.1: {} + + yocto-queue@0.1.0: {} + + yocto-queue@1.2.2: {} diff --git a/src/account.js b/src/account.js index b9914892f..96628fc14 100644 --- a/src/account.js +++ b/src/account.js @@ -1,6 +1,6 @@ -import BigNumber from './util/bignumber'; +import BigNumber from "./util/bignumber"; -import { StrKey } from './strkey'; +import { StrKey } from "./strkey"; /** * Create a new Account object. @@ -22,14 +22,14 @@ import { StrKey } from './strkey'; export class Account { constructor(accountId, sequence) { if (StrKey.isValidMed25519PublicKey(accountId)) { - throw new Error('accountId is an M-address; use MuxedAccount instead'); + throw new Error("accountId is an M-address; use MuxedAccount instead"); } if (!StrKey.isValidEd25519PublicKey(accountId)) { - throw new Error('accountId is invalid'); + throw new Error("accountId is invalid"); } - if (!(typeof sequence === 'string')) { - throw new Error('sequence must be of type string'); + if (!(typeof sequence === "string")) { + throw new Error("sequence must be of type string"); } this._accountId = accountId; diff --git a/src/address.js b/src/address.js index d3d0734d1..b9385f186 100644 --- a/src/address.js +++ b/src/address.js @@ -1,5 +1,5 @@ -import { StrKey } from './strkey'; -import xdr from './xdr'; +import { StrKey } from "./strkey"; +import xdr from "./xdr"; /** * Create a new Address object. @@ -17,19 +17,19 @@ import xdr from './xdr'; export class Address { constructor(address) { if (StrKey.isValidEd25519PublicKey(address)) { - this._type = 'account'; + this._type = "account"; this._key = StrKey.decodeEd25519PublicKey(address); } else if (StrKey.isValidContract(address)) { - this._type = 'contract'; + this._type = "contract"; this._key = StrKey.decodeContract(address); } else if (StrKey.isValidMed25519PublicKey(address)) { - this._type = 'muxedAccount'; + this._type = "muxedAccount"; this._key = StrKey.decodeMed25519PublicKey(address); } else if (StrKey.isValidClaimableBalance(address)) { - this._type = 'claimableBalance'; + this._type = "claimableBalance"; this._key = StrKey.decodeClaimableBalance(address); } else if (StrKey.isValidLiquidityPool(address)) { - this._type = 'liquidityPool'; + this._type = "liquidityPool"; this._key = StrKey.decodeLiquidityPool(address); } else { throw new Error(`Unsupported address type: ${address}`); @@ -121,7 +121,7 @@ export class Address { case xdr.ScAddressType.scAddressTypeMuxedAccount().value: { const raw = Buffer.concat([ scAddress.muxedAccount().ed25519(), - scAddress.muxedAccount().id().toXDR('raw') + scAddress.muxedAccount().id().toXDR("raw") ]); return Address.muxedAccount(raw); } @@ -145,18 +145,18 @@ export class Address { */ toString() { switch (this._type) { - case 'account': + case "account": return StrKey.encodeEd25519PublicKey(this._key); - case 'contract': + case "contract": return StrKey.encodeContract(this._key); - case 'claimableBalance': + case "claimableBalance": return StrKey.encodeClaimableBalance(this._key); - case 'liquidityPool': + case "liquidityPool": return StrKey.encodeLiquidityPool(this._key); - case 'muxedAccount': + case "muxedAccount": return StrKey.encodeMed25519PublicKey(this._key); default: - throw new Error('Unsupported address type'); + throw new Error("Unsupported address type"); } } @@ -176,16 +176,16 @@ export class Address { */ toScAddress() { switch (this._type) { - case 'account': + case "account": return xdr.ScAddress.scAddressTypeAccount( xdr.PublicKey.publicKeyTypeEd25519(this._key) ); - case 'contract': + case "contract": return xdr.ScAddress.scAddressTypeContract(this._key); - case 'liquidityPool': + case "liquidityPool": return xdr.ScAddress.scAddressTypeLiquidityPool(this._key); - case 'claimableBalance': + case "claimableBalance": return xdr.ScAddress.scAddressTypeClaimableBalance( new xdr.ClaimableBalanceId( `claimableBalanceIdTypeV${this._key.at(0)}`, // future-proof for cb v1 @@ -193,11 +193,11 @@ export class Address { ) ); - case 'muxedAccount': + case "muxedAccount": return xdr.ScAddress.scAddressTypeMuxedAccount( new xdr.MuxedEd25519Account({ ed25519: this._key.subarray(0, 32), - id: xdr.Uint64.fromXDR(this._key.subarray(32, 40), 'raw') + id: xdr.Uint64.fromXDR(this._key.subarray(32, 40), "raw") }) ); diff --git a/src/asset.js b/src/asset.js index eb74e69de..d854074b6 100644 --- a/src/asset.js +++ b/src/asset.js @@ -1,8 +1,8 @@ -import { trimEnd } from './util/util'; -import xdr from './xdr'; -import { Keypair } from './keypair'; -import { StrKey } from './strkey'; -import { hash } from './hashing'; +import { trimEnd } from "./util/util"; +import xdr from "./xdr"; +import { Keypair } from "./keypair"; +import { StrKey } from "./strkey"; +import { hash } from "./hashing"; /** * Asset class represents an asset, either the native asset (`XLM`) @@ -19,19 +19,19 @@ export class Asset { constructor(code, issuer) { if (!/^[a-zA-Z0-9]{1,12}$/.test(code)) { throw new Error( - 'Asset code is invalid (maximum alphanumeric, 12 characters at max)' + "Asset code is invalid (maximum alphanumeric, 12 characters at max)" ); } - if (String(code).toLowerCase() !== 'xlm' && !issuer) { - throw new Error('Issuer cannot be null'); + if (String(code).toLowerCase() !== "xlm" && !issuer) { + throw new Error("Issuer cannot be null"); } if (issuer && !StrKey.isValidEd25519PublicKey(issuer)) { - throw new Error('Issuer is invalid'); + throw new Error("Issuer is invalid"); } - if (String(code).toLowerCase() === 'xlm') { + if (String(code).toLowerCase() === "xlm") { // transform all xLM, Xlm, etc. variants -> XLM - this.code = 'XLM'; + this.code = "XLM"; } else { this.code = code; } @@ -44,7 +44,7 @@ export class Asset { * @Return {Asset} */ static native() { - return new Asset('XLM'); + return new Asset("XLM"); } /** @@ -65,7 +65,7 @@ export class Asset { case xdr.AssetType.assetTypeCreditAlphanum12(): anum = anum || assetXdr.alphaNum12(); issuer = StrKey.encodeEd25519PublicKey(anum.issuer().ed25519()); - code = trimEnd(anum.assetCode(), '\0'); + code = trimEnd(anum.assetCode(), "\0"); return new this(code, issuer); default: throw new Error(`Invalid asset type: ${assetXdr.switch().name}`); @@ -136,17 +136,16 @@ export class Asset { let xdrTypeString; if (this.code.length <= 4) { xdrType = xdr.AlphaNum4; - xdrTypeString = 'assetTypeCreditAlphanum4'; + xdrTypeString = "assetTypeCreditAlphanum4"; } else { xdrType = xdr.AlphaNum12; - xdrTypeString = 'assetTypeCreditAlphanum12'; + xdrTypeString = "assetTypeCreditAlphanum12"; } // pad code with null bytes if necessary const padLength = this.code.length <= 4 ? 4 : 12; - const paddedCode = this.code.padEnd(padLength, '\0'); + const paddedCode = this.code.padEnd(padLength, "\0"); - // eslint-disable-next-line new-cap const assetType = new xdrType({ assetCode: paddedCode, issuer: Keypair.fromPublicKey(this.issuer).xdrAccountId() @@ -187,13 +186,13 @@ export class Asset { getAssetType() { switch (this.getRawAssetType().value) { case xdr.AssetType.assetTypeNative().value: - return 'native'; + return "native"; case xdr.AssetType.assetTypeCreditAlphanum4().value: - return 'credit_alphanum4'; + return "credit_alphanum4"; case xdr.AssetType.assetTypeCreditAlphanum12().value: - return 'credit_alphanum12'; + return "credit_alphanum12"; default: - return 'unknown'; + return "unknown"; } } @@ -229,7 +228,7 @@ export class Asset { toString() { if (this.isNative()) { - return 'native'; + return "native"; } return `${this.getCode()}:${this.getIssuer()}`; @@ -251,10 +250,10 @@ export class Asset { */ static compare(assetA, assetB) { if (!assetA || !(assetA instanceof Asset)) { - throw new Error('assetA is invalid'); + throw new Error("assetA is invalid"); } if (!assetB || !(assetB instanceof Asset)) { - throw new Error('assetB is invalid'); + throw new Error("assetB is invalid"); } if (assetA.equals(assetB)) { @@ -290,5 +289,5 @@ export class Asset { * @warning No type-checks are done on the parameters */ function asciiCompare(a, b) { - return Buffer.compare(Buffer.from(a, 'ascii'), Buffer.from(b, 'ascii')); + return Buffer.compare(Buffer.from(a, "ascii"), Buffer.from(b, "ascii")); } diff --git a/src/auth.js b/src/auth.js index 335425afb..d59312951 100644 --- a/src/auth.js +++ b/src/auth.js @@ -1,12 +1,12 @@ -import xdr from './xdr'; +import xdr from "./xdr"; -import { Keypair } from './keypair'; -import { StrKey } from './strkey'; -import { Networks } from './network'; -import { hash } from './hashing'; +import { Keypair } from "./keypair"; +import { StrKey } from "./strkey"; +import { Networks } from "./network"; +import { hash } from "./hashing"; -import { Address } from './address'; -import { nativeToScVal } from './scval'; +import { Address } from "./address"; +import { nativeToScVal } from "./scval"; /** * @async @@ -144,7 +144,7 @@ export async function authorizeEntry( let signature; let publicKey; - if (typeof signer === 'function') { + if (typeof signer === "function") { const sigResult = await signer(preimage); if (sigResult?.signature) { signature = Buffer.from(sigResult.signature); @@ -175,8 +175,8 @@ export async function authorizeEntry( }, { type: { - public_key: ['symbol', null], - signature: ['symbol', null] + public_key: ["symbol", null], + signature: ["symbol", null] } } ); @@ -225,7 +225,7 @@ export function authorizeInvocation( signer, validUntilLedgerSeq, invocation, - publicKey = '', + publicKey = "", networkPassphrase = Networks.FUTURENET ) { // We use keypairs as a source of randomness for the nonce to avoid mucking @@ -255,6 +255,5 @@ export function authorizeInvocation( } function bytesToInt64(bytes) { - // eslint-disable-next-line no-bitwise return bytes.subarray(0, 8).reduce((accum, b) => (accum << 8) | b, 0); } diff --git a/src/claimant.js b/src/claimant.js index 0d3c79c31..89c14748f 100644 --- a/src/claimant.js +++ b/src/claimant.js @@ -1,6 +1,6 @@ -import xdr from './xdr'; -import { Keypair } from './keypair'; -import { StrKey } from './strkey'; +import xdr from "./xdr"; +import { Keypair } from "./keypair"; +import { StrKey } from "./strkey"; /** * Claimant class represents an xdr.Claimant @@ -14,7 +14,7 @@ import { StrKey } from './strkey'; export class Claimant { constructor(destination, predicate) { if (destination && !StrKey.isValidEd25519PublicKey(destination)) { - throw new Error('Destination is invalid'); + throw new Error("Destination is invalid"); } this._destination = destination; @@ -23,7 +23,7 @@ export class Claimant { } else if (predicate instanceof xdr.ClaimPredicate) { this._predicate = predicate; } else { - throw new Error('Predicate should be an xdr.ClaimPredicate'); + throw new Error("Predicate should be an xdr.ClaimPredicate"); } } @@ -43,10 +43,10 @@ export class Claimant { */ static predicateAnd(left, right) { if (!(left instanceof xdr.ClaimPredicate)) { - throw new Error('left Predicate should be an xdr.ClaimPredicate'); + throw new Error("left Predicate should be an xdr.ClaimPredicate"); } if (!(right instanceof xdr.ClaimPredicate)) { - throw new Error('right Predicate should be an xdr.ClaimPredicate'); + throw new Error("right Predicate should be an xdr.ClaimPredicate"); } return xdr.ClaimPredicate.claimPredicateAnd([left, right]); @@ -60,10 +60,10 @@ export class Claimant { */ static predicateOr(left, right) { if (!(left instanceof xdr.ClaimPredicate)) { - throw new Error('left Predicate should be an xdr.ClaimPredicate'); + throw new Error("left Predicate should be an xdr.ClaimPredicate"); } if (!(right instanceof xdr.ClaimPredicate)) { - throw new Error('right Predicate should be an xdr.ClaimPredicate'); + throw new Error("right Predicate should be an xdr.ClaimPredicate"); } return xdr.ClaimPredicate.claimPredicateOr([left, right]); @@ -76,7 +76,7 @@ export class Claimant { */ static predicateNot(predicate) { if (!(predicate instanceof xdr.ClaimPredicate)) { - throw new Error('right Predicate should be an xdr.ClaimPredicate'); + throw new Error("right Predicate should be an xdr.ClaimPredicate"); } return xdr.ClaimPredicate.claimPredicateNot(predicate); @@ -155,7 +155,7 @@ export class Claimant { } set destination(value) { - throw new Error('Claimant is immutable'); + throw new Error("Claimant is immutable"); } /** @@ -167,6 +167,6 @@ export class Claimant { } set predicate(value) { - throw new Error('Claimant is immutable'); + throw new Error("Claimant is immutable"); } } diff --git a/src/contract.js b/src/contract.js index 568925749..580a309cc 100644 --- a/src/contract.js +++ b/src/contract.js @@ -1,7 +1,7 @@ -import { Address } from './address'; -import { Operation } from './operation'; -import xdr from './xdr'; -import { StrKey } from './strkey'; +import { Address } from "./address"; +import { Operation } from "./operation"; +import xdr from "./xdr"; +import { StrKey } from "./strkey"; /** * Create a new Contract object. diff --git a/src/events.js b/src/events.js index e177db104..1c7c70e54 100644 --- a/src/events.js +++ b/src/events.js @@ -1,5 +1,5 @@ -import { StrKey } from './strkey'; -import { scValToNative } from './scval'; +import { StrKey } from "./strkey"; +import { scValToNative } from "./scval"; /** * Converts raw diagnostic or contract events into something with a flatter, @@ -29,7 +29,7 @@ export function humanizeEvents(events) { function extractEvent(event) { return { - ...(typeof event.contractId === 'function' && + ...(typeof event.contractId === "function" && event.contractId() != null && { contractId: StrKey.encodeContract(event.contractId()) }), diff --git a/src/fee_bump_transaction.js b/src/fee_bump_transaction.js index ea91d8b1f..4aa379fa3 100644 --- a/src/fee_bump_transaction.js +++ b/src/fee_bump_transaction.js @@ -1,9 +1,9 @@ -import xdr from './xdr'; -import { hash } from './hashing'; +import xdr from "./xdr"; +import { hash } from "./hashing"; -import { Transaction } from './transaction'; -import { TransactionBase } from './transaction_base'; -import { encodeMuxedAccountToAddress } from './util/decode_encode_muxed_account'; +import { Transaction } from "./transaction"; +import { TransactionBase } from "./transaction_base"; +import { encodeMuxedAccountToAddress } from "./util/decode_encode_muxed_account"; /** * Use {@link TransactionBuilder.buildFeeBumpTransaction} to build a @@ -23,8 +23,8 @@ import { encodeMuxedAccountToAddress } from './util/decode_encode_muxed_account' */ export class FeeBumpTransaction extends TransactionBase { constructor(envelope, networkPassphrase) { - if (typeof envelope === 'string') { - const buffer = Buffer.from(envelope, 'base64'); + if (typeof envelope === "string") { + const buffer = Buffer.from(envelope, "base64"); envelope = xdr.TransactionEnvelope.fromXDR(buffer); } diff --git a/src/get_liquidity_pool_id.js b/src/get_liquidity_pool_id.js index de0871fde..683c8bfa1 100644 --- a/src/get_liquidity_pool_id.js +++ b/src/get_liquidity_pool_id.js @@ -1,6 +1,6 @@ -import xdr from './xdr'; -import { Asset } from './asset'; -import { hash } from './hashing'; +import xdr from "./xdr"; +import { Asset } from "./asset"; +import { hash } from "./hashing"; // LiquidityPoolFeeV18 is the default liquidity pool fee in protocol v18. It defaults to 30 base points (0.3%). export const LiquidityPoolFeeV18 = 30; @@ -23,23 +23,23 @@ export function getLiquidityPoolId( liquidityPoolType, liquidityPoolParameters = {} ) { - if (liquidityPoolType !== 'constant_product') { - throw new Error('liquidityPoolType is invalid'); + if (liquidityPoolType !== "constant_product") { + throw new Error("liquidityPoolType is invalid"); } const { assetA, assetB, fee } = liquidityPoolParameters; if (!assetA || !(assetA instanceof Asset)) { - throw new Error('assetA is invalid'); + throw new Error("assetA is invalid"); } if (!assetB || !(assetB instanceof Asset)) { - throw new Error('assetB is invalid'); + throw new Error("assetB is invalid"); } if (!fee || fee !== LiquidityPoolFeeV18) { - throw new Error('fee is invalid'); + throw new Error("fee is invalid"); } if (Asset.compare(assetA, assetB) !== -1) { - throw new Error('Assets are not in lexicographic order'); + throw new Error("Assets are not in lexicographic order"); } const lpTypeData = diff --git a/src/hashing.js b/src/hashing.js index c8e948169..fc9d3e1be 100644 --- a/src/hashing.js +++ b/src/hashing.js @@ -1,7 +1,7 @@ -import { sha256 } from 'sha.js'; +import { sha256 } from "sha.js"; export function hash(data) { const hasher = new sha256(); - hasher.update(data, 'utf8'); + hasher.update(data, "utf8"); return hasher.digest(); } diff --git a/src/index.js b/src/index.js index ded100fac..056e28a34 100644 --- a/src/index.js +++ b/src/index.js @@ -1,62 +1,61 @@ -/* eslint-disable import/no-import-module-exports */ -import xdr from './xdr'; -import cereal from './jsxdr'; +import xdr from "./xdr"; +import cereal from "./jsxdr"; export { xdr }; export { cereal }; -export { hash } from './hashing'; -export { sign, verify } from './signing'; +export { hash } from "./hashing"; +export { sign, verify } from "./signing"; export { getLiquidityPoolId, LiquidityPoolFeeV18 -} from './get_liquidity_pool_id'; -export { Keypair } from './keypair'; -export { UnsignedHyper, Hyper } from '@stellar/js-xdr'; -export { TransactionBase } from './transaction_base'; -export { Transaction } from './transaction'; -export { FeeBumpTransaction } from './fee_bump_transaction'; +} from "./get_liquidity_pool_id"; +export { Keypair } from "./keypair"; +export { UnsignedHyper, Hyper } from "@stellar/js-xdr"; +export { TransactionBase } from "./transaction_base"; +export { Transaction } from "./transaction"; +export { FeeBumpTransaction } from "./fee_bump_transaction"; export { TransactionBuilder, TimeoutInfinite, BASE_FEE -} from './transaction_builder'; -export { Asset } from './asset'; -export { LiquidityPoolAsset } from './liquidity_pool_asset'; -export { LiquidityPoolId } from './liquidity_pool_id'; +} from "./transaction_builder"; +export { Asset } from "./asset"; +export { LiquidityPoolAsset } from "./liquidity_pool_asset"; +export { LiquidityPoolId } from "./liquidity_pool_id"; export { Operation, AuthRequiredFlag, AuthRevocableFlag, AuthImmutableFlag, AuthClawbackEnabledFlag -} from './operation'; -export * from './memo'; -export { Account } from './account'; -export { MuxedAccount } from './muxed_account'; -export { Claimant } from './claimant'; -export { Networks } from './network'; -export { StrKey } from './strkey'; -export { SignerKey } from './signerkey'; -export { Soroban } from './soroban'; +} from "./operation"; +export * from "./memo"; +export { Account } from "./account"; +export { MuxedAccount } from "./muxed_account"; +export { Claimant } from "./claimant"; +export { Networks } from "./network"; +export { StrKey } from "./strkey"; +export { SignerKey } from "./signerkey"; +export { Soroban } from "./soroban"; export { decodeAddressToMuxedAccount, encodeMuxedAccountToAddress, extractBaseAddress, encodeMuxedAccount -} from './util/decode_encode_muxed_account'; +} from "./util/decode_encode_muxed_account"; // // Soroban // -export { Contract } from './contract'; -export { Address } from './address'; -export * from './numbers'; -export * from './scval'; -export * from './events'; -export * from './sorobandata_builder'; -export * from './auth'; +export { Contract } from "./contract"; +export { Address } from "./address"; +export * from "./numbers"; +export * from "./scval"; +export * from "./events"; +export * from "./sorobandata_builder"; +export * from "./auth"; -export * from './invocation'; +export * from "./invocation"; export default module.exports; diff --git a/src/invocation.js b/src/invocation.js index 344b3571a..97221906c 100644 --- a/src/invocation.js +++ b/src/invocation.js @@ -1,6 +1,6 @@ -import { Asset } from './asset'; -import { Address } from './address'; -import { scValToNative } from './scval'; +import { Asset } from "./asset"; +import { Address } from "./address"; +import { scValToNative } from "./scval"; /** * @typedef CreateInvocation @@ -94,7 +94,7 @@ export function buildInvocationTree(root) { switch (fn.switch().value) { // sorobanAuthorizedFunctionTypeContractFn case 0: - output.type = 'execute'; + output.type = "execute"; output.args = { source: Address.fromScAddress(inner.contractAddress()).toString(), function: inner.functionName(), @@ -107,7 +107,7 @@ export function buildInvocationTree(root) { case 1: // fallthrough: just no ctor args in V1 case 2: { const createV2 = fn.switch().value === 2; - output.type = 'create'; + output.type = "create"; output.args = {}; // If the executable is a WASM, the preimage MUST be an address. If it's a @@ -132,10 +132,10 @@ export function buildInvocationTree(root) { /** @type {xdr.ContractIdPreimageFromAddress} */ const details = preimage.fromAddress(); - output.args.type = 'wasm'; + output.args.type = "wasm"; output.args.wasm = { - salt: details.salt().toString('hex'), - hash: exec.wasmHash().toString('hex'), + salt: details.salt().toString("hex"), + hash: exec.wasmHash().toString("hex"), address: Address.fromScAddress(details.address()).toString(), // only apply constructor args for WASM+CreateV2 scenario ...(createV2 && { @@ -149,7 +149,7 @@ export function buildInvocationTree(root) { // contractExecutableStellarAsset case 1: - output.args.type = 'sac'; + output.args.type = "sac"; output.args.asset = Asset.fromOperation( preimage.fromAsset() ).toString(); diff --git a/src/jsxdr.js b/src/jsxdr.js index f662a7798..7c49a502f 100644 --- a/src/jsxdr.js +++ b/src/jsxdr.js @@ -1,4 +1,4 @@ -import { XdrWriter, XdrReader } from '@stellar/js-xdr'; +import { XdrWriter, XdrReader } from "@stellar/js-xdr"; const cereal = { XdrWriter, XdrReader }; export default cereal; diff --git a/src/keypair.js b/src/keypair.js index 8d36b3852..1524be0e6 100644 --- a/src/keypair.js +++ b/src/keypair.js @@ -1,11 +1,11 @@ /* eslint no-bitwise: ["error", {"allow": ["^"]}] */ -import { ed25519 } from '@noble/curves/ed25519'; -import { sign, verify, generate } from './signing'; -import { StrKey } from './strkey'; -import { hash } from './hashing'; +import { ed25519 } from "@noble/curves/ed25519"; +import { sign, verify, generate } from "./signing"; +import { StrKey } from "./strkey"; +import { hash } from "./hashing"; -import xdr from './xdr'; +import xdr from "./xdr"; /** * `Keypair` represents public (and secret) keys of the account. @@ -26,8 +26,8 @@ import xdr from './xdr'; */ export class Keypair { constructor(keys) { - if (keys.type !== 'ed25519') { - throw new Error('Invalid keys type'); + if (keys.type !== "ed25519") { + throw new Error("Invalid keys type"); } this.type = keys.type; @@ -36,7 +36,7 @@ export class Keypair { keys.secretKey = Buffer.from(keys.secretKey); if (keys.secretKey.length !== 32) { - throw new Error('secretKey length is invalid'); + throw new Error("secretKey length is invalid"); } this._secretSeed = keys.secretKey; @@ -47,13 +47,13 @@ export class Keypair { keys.publicKey && !this._publicKey.equals(Buffer.from(keys.publicKey)) ) { - throw new Error('secretKey does not match publicKey'); + throw new Error("secretKey does not match publicKey"); } } else { this._publicKey = Buffer.from(keys.publicKey); if (this._publicKey.length !== 32) { - throw new Error('publicKey length is invalid'); + throw new Error("publicKey length is invalid"); } } } @@ -76,7 +76,7 @@ export class Keypair { * @returns {Keypair} */ static fromRawEd25519Seed(rawSeed) { - return new this({ type: 'ed25519', secretKey: rawSeed }); + return new this({ type: "ed25519", secretKey: rawSeed }); } /** @@ -87,7 +87,7 @@ export class Keypair { static master(networkPassphrase) { if (!networkPassphrase) { throw new Error( - 'No network selected. Please pass a network argument, e.g. `Keypair.master(Networks.PUBLIC)`.' + "No network selected. Please pass a network argument, e.g. `Keypair.master(Networks.PUBLIC)`." ); } @@ -102,9 +102,9 @@ export class Keypair { static fromPublicKey(publicKey) { publicKey = StrKey.decodeEd25519PublicKey(publicKey); if (publicKey.length !== 32) { - throw new Error('Invalid Stellar public key'); + throw new Error("Invalid Stellar public key"); } - return new this({ type: 'ed25519', publicKey }); + return new this({ type: "ed25519", publicKey }); } /** @@ -136,8 +136,8 @@ export class Keypair { * @return {xdr.MuxedAccount} */ xdrMuxedAccount(id) { - if (typeof id !== 'undefined') { - if (typeof id !== 'string') { + if (typeof id !== "undefined") { + if (typeof id !== "string") { throw new TypeError(`expected string for ID, got ${typeof id}`); } @@ -180,14 +180,14 @@ export class Keypair { */ secret() { if (!this._secretSeed) { - throw new Error('no secret key available'); + throw new Error("no secret key available"); } - if (this.type === 'ed25519') { + if (this.type === "ed25519") { return StrKey.encodeEd25519SecretSeed(this._secretSeed); } - throw new Error('Invalid Keypair type'); + throw new Error("Invalid Keypair type"); } /** @@ -213,7 +213,7 @@ export class Keypair { */ sign(data) { if (!this.canSign()) { - throw new Error('cannot sign: no secret key available'); + throw new Error("cannot sign: no secret key available"); } return sign(data, this._secretKey); diff --git a/src/liquidity_pool_asset.js b/src/liquidity_pool_asset.js index 38c3adddc..7828ec3c5 100644 --- a/src/liquidity_pool_asset.js +++ b/src/liquidity_pool_asset.js @@ -1,9 +1,9 @@ -import xdr from './xdr'; -import { Asset } from './asset'; +import xdr from "./xdr"; +import { Asset } from "./asset"; import { LiquidityPoolFeeV18, getLiquidityPoolId -} from './get_liquidity_pool_id'; +} from "./get_liquidity_pool_id"; /** * LiquidityPoolAsset class represents a liquidity pool trustline change. @@ -16,16 +16,16 @@ import { export class LiquidityPoolAsset { constructor(assetA, assetB, fee) { if (!assetA || !(assetA instanceof Asset)) { - throw new Error('assetA is invalid'); + throw new Error("assetA is invalid"); } if (!assetB || !(assetB instanceof Asset)) { - throw new Error('assetB is invalid'); + throw new Error("assetB is invalid"); } if (Asset.compare(assetA, assetB) !== -1) { - throw new Error('Assets are not in lexicographic order'); + throw new Error("Assets are not in lexicographic order"); } if (!fee || fee !== LiquidityPoolFeeV18) { - throw new Error('fee is invalid'); + throw new Error("fee is invalid"); } this.assetA = assetA; @@ -72,10 +72,10 @@ export class LiquidityPoolAsset { fee: this.fee }); const lpParamsXdr = new xdr.LiquidityPoolParameters( - 'liquidityPoolConstantProduct', + "liquidityPoolConstantProduct", lpConstantProductParamsXdr ); - return new xdr.ChangeTrustAsset('assetTypePoolShare', lpParamsXdr); + return new xdr.ChangeTrustAsset("assetTypePoolShare", lpParamsXdr); } /** @@ -95,7 +95,7 @@ export class LiquidityPoolAsset { * @returns {AssetType.liquidityPoolShares} asset type. Can only be `liquidity_pool_shares`. */ getAssetType() { - return 'liquidity_pool_shares'; + return "liquidity_pool_shares"; } /** @@ -112,9 +112,9 @@ export class LiquidityPoolAsset { toString() { const poolId = getLiquidityPoolId( - 'constant_product', + "constant_product", this.getLiquidityPoolParameters() - ).toString('hex'); + ).toString("hex"); return `liquidity_pool:${poolId}`; } } diff --git a/src/liquidity_pool_id.js b/src/liquidity_pool_id.js index e1e40402d..3844a433c 100644 --- a/src/liquidity_pool_id.js +++ b/src/liquidity_pool_id.js @@ -1,4 +1,4 @@ -import xdr from './xdr'; +import xdr from "./xdr"; /** * LiquidityPoolId class represents the asset referenced by a trustline to a @@ -10,10 +10,10 @@ import xdr from './xdr'; export class LiquidityPoolId { constructor(liquidityPoolId) { if (!liquidityPoolId) { - throw new Error('liquidityPoolId cannot be empty'); + throw new Error("liquidityPoolId cannot be empty"); } if (!/^[a-f0-9]{64}$/.test(liquidityPoolId)) { - throw new Error('Liquidity pool ID is not a valid hash'); + throw new Error("Liquidity pool ID is not a valid hash"); } this.liquidityPoolId = liquidityPoolId; @@ -27,7 +27,7 @@ export class LiquidityPoolId { static fromOperation(tlAssetXdr) { const assetType = tlAssetXdr.switch(); if (assetType === xdr.AssetType.assetTypePoolShare()) { - const liquidityPoolId = tlAssetXdr.liquidityPoolId().toString('hex'); + const liquidityPoolId = tlAssetXdr.liquidityPoolId().toString("hex"); return new this(liquidityPoolId); } @@ -44,8 +44,8 @@ export class LiquidityPoolId { * @returns {xdr.TrustLineAsset} XDR LiquidityPoolId object */ toXDRObject() { - const xdrPoolId = xdr.PoolId.fromXDR(this.liquidityPoolId, 'hex'); - return new xdr.TrustLineAsset('assetTypePoolShare', xdrPoolId); + const xdrPoolId = xdr.PoolId.fromXDR(this.liquidityPoolId, "hex"); + return new xdr.TrustLineAsset("assetTypePoolShare", xdrPoolId); } /** @@ -60,7 +60,7 @@ export class LiquidityPoolId { * @returns {AssetType.liquidityPoolShares} asset type. Can only be `liquidity_pool_shares`. */ getAssetType() { - return 'liquidity_pool_shares'; + return "liquidity_pool_shares"; } /** diff --git a/src/memo.js b/src/memo.js index 1547f2be8..36bd29503 100644 --- a/src/memo.js +++ b/src/memo.js @@ -1,27 +1,27 @@ -import { UnsignedHyper } from '@stellar/js-xdr'; -import BigNumber from './util/bignumber'; -import xdr from './xdr'; +import { UnsignedHyper } from "@stellar/js-xdr"; +import BigNumber from "./util/bignumber"; +import xdr from "./xdr"; /** * Type of {@link Memo}. */ -export const MemoNone = 'none'; +export const MemoNone = "none"; /** * Type of {@link Memo}. */ -export const MemoID = 'id'; +export const MemoID = "id"; /** * Type of {@link Memo}. */ -export const MemoText = 'text'; +export const MemoText = "text"; /** * Type of {@link Memo}. */ -export const MemoHash = 'hash'; +export const MemoHash = "hash"; /** * Type of {@link Memo}. */ -export const MemoReturn = 'return'; +export const MemoReturn = "return"; /** * `Memo` represents memos attached to transactions. @@ -49,12 +49,12 @@ export class Memo { case MemoReturn: Memo._validateHashValue(value); // We want MemoHash and MemoReturn to have Buffer as a value - if (typeof value === 'string') { - this._value = Buffer.from(value, 'hex'); + if (typeof value === "string") { + this._value = Buffer.from(value, "hex"); } break; default: - throw new Error('Invalid memo type'); + throw new Error("Invalid memo type"); } } @@ -66,7 +66,7 @@ export class Memo { } set type(type) { - throw new Error('Memo is immutable'); + throw new Error("Memo is immutable"); } /** @@ -87,18 +87,18 @@ export class Memo { case MemoReturn: return Buffer.from(this._value); default: - throw new Error('Invalid memo type'); + throw new Error("Invalid memo type"); } } set value(value) { - throw new Error('Memo is immutable'); + throw new Error("Memo is immutable"); } static _validateIdValue(value) { const error = new Error(`Expects a int64 as a string. Got ${value}`); - if (typeof value !== 'string') { + if (typeof value !== "string") { throw error; } @@ -121,8 +121,8 @@ export class Memo { } static _validateTextValue(value) { - if (!xdr.Memo.armTypeForArm('text').isValid(value)) { - throw new Error('Expects string, array or buffer, max 28 bytes'); + if (!xdr.Memo.armTypeForArm("text").isValid(value)) { + throw new Error("Expects string, array or buffer, max 28 bytes"); } } @@ -131,16 +131,16 @@ export class Memo { `Expects a 32 byte hash value or hex encoded string. Got ${value}` ); - if (value === null || typeof value === 'undefined') { + if (value === null || typeof value === "undefined") { throw error; } let valueBuffer; - if (typeof value === 'string') { + if (typeof value === "string") { if (!/^[0-9A-Fa-f]{64}$/g.test(value)) { throw error; } - valueBuffer = Buffer.from(value, 'hex'); + valueBuffer = Buffer.from(value, "hex"); } else if (Buffer.isBuffer(value)) { valueBuffer = Buffer.from(value); } else { @@ -224,22 +224,22 @@ export class Memo { */ static fromXDRObject(object) { switch (object.arm()) { - case 'id': + case "id": return Memo.id(object.value().toString()); - case 'text': + case "text": return Memo.text(object.value()); - case 'hash': + case "hash": return Memo.hash(object.value()); - case 'retHash': + case "retHash": return Memo.return(object.value()); default: break; } - if (typeof object.value() === 'undefined') { + if (typeof object.value() === "undefined") { return Memo.none(); } - throw new Error('Unknown type'); + throw new Error("Unknown type"); } } diff --git a/src/muxed_account.js b/src/muxed_account.js index edb2fd91b..33383014e 100644 --- a/src/muxed_account.js +++ b/src/muxed_account.js @@ -1,12 +1,12 @@ -import xdr from './xdr'; -import { Account } from './account'; -import { StrKey } from './strkey'; +import xdr from "./xdr"; +import { Account } from "./account"; +import { StrKey } from "./strkey"; import { decodeAddressToMuxedAccount, encodeMuxedAccountToAddress, encodeMuxedAccount, extractBaseAddress -} from './util/decode_encode_muxed_account'; +} from "./util/decode_encode_muxed_account"; /** * Represents a muxed account for transactions and operations. @@ -49,7 +49,7 @@ export class MuxedAccount { constructor(baseAccount, id) { const accountId = baseAccount.accountId(); if (!StrKey.isValidEd25519PublicKey(accountId)) { - throw new Error('accountId is invalid'); + throw new Error("accountId is invalid"); } this.account = baseAccount; @@ -97,8 +97,8 @@ export class MuxedAccount { } setId(id) { - if (typeof id !== 'string') { - throw new Error('id should be a string representing a number (uint64)'); + if (typeof id !== "string") { + throw new Error("id should be a string representing a number (uint64)"); } this._muxedXdr.med25519().id(xdr.Uint64.fromString(id)); diff --git a/src/network.js b/src/network.js index 20c7ac12c..7dd6cbe29 100644 --- a/src/network.js +++ b/src/network.js @@ -8,9 +8,9 @@ * @type {{PUBLIC: string, TESTNET: string, FUTURENET: string, STANDALONE: string }} */ export const Networks = { - PUBLIC: 'Public Global Stellar Network ; September 2015', - TESTNET: 'Test SDF Network ; September 2015', - FUTURENET: 'Test SDF Future Network ; October 2022', - SANDBOX: 'Local Sandbox Stellar Network ; September 2022', - STANDALONE: 'Standalone Network ; February 2017' + PUBLIC: "Public Global Stellar Network ; September 2015", + TESTNET: "Test SDF Network ; September 2015", + FUTURENET: "Test SDF Future Network ; October 2022", + SANDBOX: "Local Sandbox Stellar Network ; September 2022", + STANDALONE: "Standalone Network ; February 2017" }; diff --git a/src/numbers/index.js b/src/numbers/index.js index 3208c61b3..b2caeb2f5 100644 --- a/src/numbers/index.js +++ b/src/numbers/index.js @@ -1,10 +1,10 @@ -import { XdrLargeInt } from './xdr_large_int'; +import { XdrLargeInt } from "./xdr_large_int"; -export { Uint128 } from './uint128'; -export { Uint256 } from './uint256'; -export { Int128 } from './int128'; -export { Int256 } from './int256'; -export { ScInt } from './sc_int'; +export { Uint128 } from "./uint128"; +export { Uint256 } from "./uint256"; +export { Int128 } from "./int128"; +export { Int256 } from "./int256"; +export { ScInt } from "./sc_int"; export { XdrLargeInt }; /** @@ -29,25 +29,25 @@ export function scValToBigInt(scv) { const scIntType = XdrLargeInt.getType(scv.switch().name); switch (scv.switch().name) { - case 'scvU32': - case 'scvI32': + case "scvU32": + case "scvI32": return BigInt(scv.value()); - case 'scvU64': - case 'scvI64': - case 'scvTimepoint': - case 'scvDuration': + case "scvU64": + case "scvI64": + case "scvTimepoint": + case "scvDuration": return new XdrLargeInt(scIntType, scv.value()).toBigInt(); - case 'scvU128': - case 'scvI128': + case "scvU128": + case "scvI128": return new XdrLargeInt(scIntType, [ scv.value().lo(), scv.value().hi() ]).toBigInt(); - case 'scvU256': - case 'scvI256': + case "scvU256": + case "scvI256": return new XdrLargeInt(scIntType, [ scv.value().loLo(), scv.value().loHi(), diff --git a/src/numbers/int128.js b/src/numbers/int128.js index 4b1149950..f90177547 100644 --- a/src/numbers/int128.js +++ b/src/numbers/int128.js @@ -1,4 +1,4 @@ -import { LargeInt } from '@stellar/js-xdr'; +import { LargeInt } from "@stellar/js-xdr"; export class Int128 extends LargeInt { /** diff --git a/src/numbers/int256.js b/src/numbers/int256.js index b8e1b46c3..00f2ff346 100644 --- a/src/numbers/int256.js +++ b/src/numbers/int256.js @@ -1,4 +1,4 @@ -import { LargeInt } from '@stellar/js-xdr'; +import { LargeInt } from "@stellar/js-xdr"; export class Int256 extends LargeInt { /** diff --git a/src/numbers/sc_int.js b/src/numbers/sc_int.js index 7f81d83ad..0a753eedd 100644 --- a/src/numbers/sc_int.js +++ b/src/numbers/sc_int.js @@ -1,4 +1,4 @@ -import { XdrLargeInt } from './xdr_large_int'; +import { XdrLargeInt } from "./xdr_large_int"; /** * Provides an easier way to manipulate large numbers for Stellar operations. @@ -74,15 +74,15 @@ import { XdrLargeInt } from './xdr_large_int'; export class ScInt extends XdrLargeInt { constructor(value, opts) { const signed = value < 0; - let type = opts?.type ?? ''; - if (type.startsWith('u') && signed) { + let type = opts?.type ?? ""; + if (type.startsWith("u") && signed) { throw TypeError(`specified type ${opts.type} yet negative (${value})`); } // If unspecified, we make a best guess at the type based on the bit length // of the value, treating 64 as a minimum and 256 as a maximum. - if (type === '') { - type = signed ? 'i' : 'u'; + if (type === "") { + type = signed ? "i" : "u"; const bitlen = nearestBigIntSize(value); switch (bitlen) { diff --git a/src/numbers/uint128.js b/src/numbers/uint128.js index b93222759..6393b941b 100644 --- a/src/numbers/uint128.js +++ b/src/numbers/uint128.js @@ -1,4 +1,4 @@ -import { LargeInt } from '@stellar/js-xdr'; +import { LargeInt } from "@stellar/js-xdr"; export class Uint128 extends LargeInt { /** diff --git a/src/numbers/uint256.js b/src/numbers/uint256.js index eb52ea478..b04845753 100644 --- a/src/numbers/uint256.js +++ b/src/numbers/uint256.js @@ -1,4 +1,4 @@ -import { LargeInt } from '@stellar/js-xdr'; +import { LargeInt } from "@stellar/js-xdr"; export class Uint256 extends LargeInt { /** diff --git a/src/numbers/xdr_large_int.js b/src/numbers/xdr_large_int.js index 8da33f1cd..750289f5c 100644 --- a/src/numbers/xdr_large_int.js +++ b/src/numbers/xdr_large_int.js @@ -1,12 +1,12 @@ /* eslint no-bitwise: ["error", {"allow": [">>"]}] */ -import { Hyper, UnsignedHyper } from '@stellar/js-xdr'; +import { Hyper, UnsignedHyper } from "@stellar/js-xdr"; -import { Uint128 } from './uint128'; -import { Uint256 } from './uint256'; -import { Int128 } from './int128'; -import { Int256 } from './int256'; +import { Uint128 } from "./uint128"; +import { Uint256 } from "./uint256"; +import { Int128 } from "./int128"; +import { Int256 } from "./int256"; -import xdr from '../xdr'; +import xdr from "../xdr"; /** * A wrapper class to represent large XDR-encodable integers. @@ -36,34 +36,34 @@ export class XdrLargeInt { // normalize values to one type values = values.map((i) => { // micro-optimization to no-op on the likeliest input value: - if (typeof i === 'bigint') { + if (typeof i === "bigint") { return i; } - if (typeof i.toBigInt === 'function') { + if (typeof i.toBigInt === "function") { return i.toBigInt(); } return BigInt(i); }); switch (type) { - case 'i64': + case "i64": this.int = new Hyper(values); break; - case 'i128': + case "i128": this.int = new Int128(values); break; - case 'i256': + case "i256": this.int = new Int256(values); break; - case 'u64': - case 'timepoint': - case 'duration': + case "u64": + case "timepoint": + case "duration": this.int = new UnsignedHyper(values); break; - case 'u128': + case "u128": this.int = new Uint128(values); break; - case 'u256': + case "u256": this.int = new Uint256(values); break; default: @@ -203,21 +203,21 @@ export class XdrLargeInt { /** @returns {xdr.ScVal} the smallest interpretation of the stored value */ toScVal() { switch (this.type) { - case 'i64': + case "i64": return this.toI64(); - case 'i128': + case "i128": return this.toI128(); - case 'i256': + case "i256": return this.toI256(); - case 'u64': + case "u64": return this.toU64(); - case 'u128': + case "u128": return this.toU128(); - case 'u256': + case "u256": return this.toU256(); - case 'timepoint': + case "timepoint": return this.toTimepoint(); - case 'duration': + case "duration": return this.toDuration(); default: throw TypeError(`invalid type: ${this.type}`); @@ -247,14 +247,14 @@ export class XdrLargeInt { static isType(type) { switch (type) { - case 'i64': - case 'i128': - case 'i256': - case 'u64': - case 'u128': - case 'u256': - case 'timepoint': - case 'duration': + case "i64": + case "i128": + case "i256": + case "u64": + case "u128": + case "u256": + case "timepoint": + case "duration": return true; default: return false; diff --git a/src/operation.js b/src/operation.js index bb5950071..5b4162dda 100644 --- a/src/operation.js +++ b/src/operation.js @@ -1,23 +1,21 @@ -/* eslint-disable no-bitwise */ - -import { Hyper } from '@stellar/js-xdr'; -import BigNumber from './util/bignumber'; -import { trimEnd } from './util/util'; -import { best_r } from './util/continued_fraction'; -import { Asset } from './asset'; -import { LiquidityPoolAsset } from './liquidity_pool_asset'; -import { Claimant } from './claimant'; -import { StrKey } from './strkey'; -import { LiquidityPoolId } from './liquidity_pool_id'; -import xdr from './xdr'; -import * as ops from './operations'; +import { Hyper } from "@stellar/js-xdr"; +import BigNumber from "./util/bignumber"; +import { trimEnd } from "./util/util"; +import { best_r } from "./util/continued_fraction"; +import { Asset } from "./asset"; +import { LiquidityPoolAsset } from "./liquidity_pool_asset"; +import { Claimant } from "./claimant"; +import { StrKey } from "./strkey"; +import { LiquidityPoolId } from "./liquidity_pool_id"; +import xdr from "./xdr"; +import * as ops from "./operations"; import { decodeAddressToMuxedAccount, encodeMuxedAccountToAddress -} from './util/decode_encode_muxed_account'; +} from "./util/decode_encode_muxed_account"; const ONE = 10000000; -const MAX_INT64 = '9223372036854775807'; +const MAX_INT64 = "9223372036854775807"; /** * When set using `{@link Operation.setOptions}` option, requires the issuing @@ -108,7 +106,7 @@ export class Operation { try { opAttributes.sourceAccount = decodeAddressToMuxedAccount(opts.source); } catch (e) { - throw new Error('Source address is invalid'); + throw new Error("Source address is invalid"); } } } @@ -130,21 +128,21 @@ export class Operation { const operationName = operation.body().switch().name; switch (operationName) { - case 'createAccount': { - result.type = 'createAccount'; + case "createAccount": { + result.type = "createAccount"; result.destination = accountIdtoAddress(attrs.destination()); result.startingBalance = this._fromXDRAmount(attrs.startingBalance()); break; } - case 'payment': { - result.type = 'payment'; + case "payment": { + result.type = "payment"; result.destination = encodeMuxedAccountToAddress(attrs.destination()); result.asset = Asset.fromOperation(attrs.asset()); result.amount = this._fromXDRAmount(attrs.amount()); break; } - case 'pathPaymentStrictReceive': { - result.type = 'pathPaymentStrictReceive'; + case "pathPaymentStrictReceive": { + result.type = "pathPaymentStrictReceive"; result.sendAsset = Asset.fromOperation(attrs.sendAsset()); result.sendMax = this._fromXDRAmount(attrs.sendMax()); result.destination = encodeMuxedAccountToAddress(attrs.destination()); @@ -160,8 +158,8 @@ export class Operation { }); break; } - case 'pathPaymentStrictSend': { - result.type = 'pathPaymentStrictSend'; + case "pathPaymentStrictSend": { + result.type = "pathPaymentStrictSend"; result.sendAsset = Asset.fromOperation(attrs.sendAsset()); result.sendAmount = this._fromXDRAmount(attrs.sendAmount()); result.destination = encodeMuxedAccountToAddress(attrs.destination()); @@ -177,8 +175,8 @@ export class Operation { }); break; } - case 'changeTrust': { - result.type = 'changeTrust'; + case "changeTrust": { + result.type = "changeTrust"; switch (attrs.line().switch()) { case xdr.AssetType.assetTypePoolShare(): result.line = LiquidityPoolAsset.fromOperation(attrs.line()); @@ -190,16 +188,16 @@ export class Operation { result.limit = this._fromXDRAmount(attrs.limit()); break; } - case 'allowTrust': { - result.type = 'allowTrust'; + case "allowTrust": { + result.type = "allowTrust"; result.trustor = accountIdtoAddress(attrs.trustor()); result.assetCode = attrs.asset().value().toString(); - result.assetCode = trimEnd(result.assetCode, '\0'); + result.assetCode = trimEnd(result.assetCode, "\0"); result.authorize = attrs.authorize(); break; } - case 'setOptions': { - result.type = 'setOptions'; + case "setOptions": { + result.type = "setOptions"; if (attrs.inflationDest()) { result.inflationDest = accountIdtoAddress(attrs.inflationDest()); } @@ -213,19 +211,19 @@ export class Operation { // home_domain is checked by iscntrl in stellar-core result.homeDomain = attrs.homeDomain() !== undefined - ? attrs.homeDomain().toString('ascii') + ? attrs.homeDomain().toString("ascii") : undefined; if (attrs.signer()) { const signer = {}; const arm = attrs.signer().key().arm(); - if (arm === 'ed25519') { + if (arm === "ed25519") { signer.ed25519PublicKey = accountIdtoAddress(attrs.signer().key()); - } else if (arm === 'preAuthTx') { + } else if (arm === "preAuthTx") { signer.preAuthTx = attrs.signer().key().preAuthTx(); - } else if (arm === 'hashX') { + } else if (arm === "hashX") { signer.sha256Hash = attrs.signer().key().hashX(); - } else if (arm === 'ed25519SignedPayload') { + } else if (arm === "ed25519SignedPayload") { const signedPayload = attrs.signer().key().ed25519SignedPayload(); signer.ed25519SignedPayload = StrKey.encodeSignedPayload( signedPayload.toXDR() @@ -238,9 +236,9 @@ export class Operation { break; } // the next case intentionally falls through! - case 'manageOffer': - case 'manageSellOffer': { - result.type = 'manageSellOffer'; + case "manageOffer": + case "manageSellOffer": { + result.type = "manageSellOffer"; result.selling = Asset.fromOperation(attrs.selling()); result.buying = Asset.fromOperation(attrs.buying()); result.amount = this._fromXDRAmount(attrs.amount()); @@ -248,8 +246,8 @@ export class Operation { result.offerId = attrs.offerId().toString(); break; } - case 'manageBuyOffer': { - result.type = 'manageBuyOffer'; + case "manageBuyOffer": { + result.type = "manageBuyOffer"; result.selling = Asset.fromOperation(attrs.selling()); result.buying = Asset.fromOperation(attrs.buying()); result.buyAmount = this._fromXDRAmount(attrs.buyAmount()); @@ -258,38 +256,38 @@ export class Operation { break; } // the next case intentionally falls through! - case 'createPassiveOffer': - case 'createPassiveSellOffer': { - result.type = 'createPassiveSellOffer'; + case "createPassiveOffer": + case "createPassiveSellOffer": { + result.type = "createPassiveSellOffer"; result.selling = Asset.fromOperation(attrs.selling()); result.buying = Asset.fromOperation(attrs.buying()); result.amount = this._fromXDRAmount(attrs.amount()); result.price = this._fromXDRPrice(attrs.price()); break; } - case 'accountMerge': { - result.type = 'accountMerge'; + case "accountMerge": { + result.type = "accountMerge"; result.destination = encodeMuxedAccountToAddress(attrs); break; } - case 'manageData': { - result.type = 'manageData'; + case "manageData": { + result.type = "manageData"; // manage_data.name is checked by iscntrl in stellar-core - result.name = attrs.dataName().toString('ascii'); + result.name = attrs.dataName().toString("ascii"); result.value = attrs.dataValue(); break; } - case 'inflation': { - result.type = 'inflation'; + case "inflation": { + result.type = "inflation"; break; } - case 'bumpSequence': { - result.type = 'bumpSequence'; + case "bumpSequence": { + result.type = "bumpSequence"; result.bumpTo = attrs.bumpTo().toString(); break; } - case 'createClaimableBalance': { - result.type = 'createClaimableBalance'; + case "createClaimableBalance": { + result.type = "createClaimableBalance"; result.asset = Asset.fromOperation(attrs.asset()); result.amount = this._fromXDRAmount(attrs.amount()); result.claimants = []; @@ -298,38 +296,38 @@ export class Operation { }); break; } - case 'claimClaimableBalance': { - result.type = 'claimClaimableBalance'; - result.balanceId = attrs.toXDR('hex'); + case "claimClaimableBalance": { + result.type = "claimClaimableBalance"; + result.balanceId = attrs.toXDR("hex"); break; } - case 'beginSponsoringFutureReserves': { - result.type = 'beginSponsoringFutureReserves'; + case "beginSponsoringFutureReserves": { + result.type = "beginSponsoringFutureReserves"; result.sponsoredId = accountIdtoAddress(attrs.sponsoredId()); break; } - case 'endSponsoringFutureReserves': { - result.type = 'endSponsoringFutureReserves'; + case "endSponsoringFutureReserves": { + result.type = "endSponsoringFutureReserves"; break; } - case 'revokeSponsorship': { + case "revokeSponsorship": { extractRevokeSponshipDetails(attrs, result); break; } - case 'clawback': { - result.type = 'clawback'; + case "clawback": { + result.type = "clawback"; result.amount = this._fromXDRAmount(attrs.amount()); result.from = encodeMuxedAccountToAddress(attrs.from()); result.asset = Asset.fromOperation(attrs.asset()); break; } - case 'clawbackClaimableBalance': { - result.type = 'clawbackClaimableBalance'; - result.balanceId = attrs.toXDR('hex'); + case "clawbackClaimableBalance": { + result.type = "clawbackClaimableBalance"; + result.balanceId = attrs.toXDR("hex"); break; } - case 'setTrustLineFlags': { - result.type = 'setTrustLineFlags'; + case "setTrustLineFlags": { + result.type = "setTrustLineFlags"; result.asset = Asset.fromOperation(attrs.asset()); result.trustor = accountIdtoAddress(attrs.trustor()); @@ -363,36 +361,36 @@ export class Operation { break; } - case 'liquidityPoolDeposit': { - result.type = 'liquidityPoolDeposit'; - result.liquidityPoolId = attrs.liquidityPoolId().toString('hex'); + case "liquidityPoolDeposit": { + result.type = "liquidityPoolDeposit"; + result.liquidityPoolId = attrs.liquidityPoolId().toString("hex"); result.maxAmountA = this._fromXDRAmount(attrs.maxAmountA()); result.maxAmountB = this._fromXDRAmount(attrs.maxAmountB()); result.minPrice = this._fromXDRPrice(attrs.minPrice()); result.maxPrice = this._fromXDRPrice(attrs.maxPrice()); break; } - case 'liquidityPoolWithdraw': { - result.type = 'liquidityPoolWithdraw'; - result.liquidityPoolId = attrs.liquidityPoolId().toString('hex'); + case "liquidityPoolWithdraw": { + result.type = "liquidityPoolWithdraw"; + result.liquidityPoolId = attrs.liquidityPoolId().toString("hex"); result.amount = this._fromXDRAmount(attrs.amount()); result.minAmountA = this._fromXDRAmount(attrs.minAmountA()); result.minAmountB = this._fromXDRAmount(attrs.minAmountB()); break; } - case 'invokeHostFunction': { - result.type = 'invokeHostFunction'; + case "invokeHostFunction": { + result.type = "invokeHostFunction"; result.func = attrs.hostFunction(); result.auth = attrs.auth() ?? []; break; } - case 'extendFootprintTtl': { - result.type = 'extendFootprintTtl'; + case "extendFootprintTtl": { + result.type = "extendFootprintTtl"; result.extendTo = attrs.extendTo(); break; } - case 'restoreFootprint': { - result.type = 'restoreFootprint'; + case "restoreFootprint": { + result.type = "restoreFootprint"; break; } default: { @@ -418,7 +416,7 @@ export class Operation { * @returns {boolean} */ static isValidAmount(value, allowZero = false) { - if (typeof value !== 'string') { + if (typeof value !== "string") { return false; } @@ -463,16 +461,16 @@ export class Operation { * @returns {undefined|Number} */ static _checkUnsignedIntValue(name, value, isValidFunction = null) { - if (typeof value === 'undefined') { + if (typeof value === "undefined") { return undefined; } - if (typeof value === 'string') { + if (typeof value === "string") { value = parseFloat(value); } switch (true) { - case typeof value !== 'number' || + case typeof value !== "number" || !Number.isFinite(value) || value % 1 !== 0: throw new Error(`${name} value is invalid`); @@ -536,7 +534,7 @@ export class Operation { } if (xdrObject.n() < 0 || xdrObject.d() < 0) { - throw new Error('price must be positive'); + throw new Error("price must be positive"); } return xdrObject; @@ -545,16 +543,16 @@ export class Operation { function extractRevokeSponshipDetails(attrs, result) { switch (attrs.switch().name) { - case 'revokeSponsorshipLedgerEntry': { + case "revokeSponsorshipLedgerEntry": { const ledgerKey = attrs.ledgerKey(); switch (ledgerKey.switch().name) { case xdr.LedgerEntryType.account().name: { - result.type = 'revokeAccountSponsorship'; + result.type = "revokeAccountSponsorship"; result.account = accountIdtoAddress(ledgerKey.account().accountId()); break; } case xdr.LedgerEntryType.trustline().name: { - result.type = 'revokeTrustlineSponsorship'; + result.type = "revokeTrustlineSponsorship"; result.account = accountIdtoAddress( ledgerKey.trustLine().accountId() ); @@ -570,31 +568,31 @@ function extractRevokeSponshipDetails(attrs, result) { break; } case xdr.LedgerEntryType.offer().name: { - result.type = 'revokeOfferSponsorship'; + result.type = "revokeOfferSponsorship"; result.seller = accountIdtoAddress(ledgerKey.offer().sellerId()); result.offerId = ledgerKey.offer().offerId().toString(); break; } case xdr.LedgerEntryType.data().name: { - result.type = 'revokeDataSponsorship'; + result.type = "revokeDataSponsorship"; result.account = accountIdtoAddress(ledgerKey.data().accountId()); - result.name = ledgerKey.data().dataName().toString('ascii'); + result.name = ledgerKey.data().dataName().toString("ascii"); break; } case xdr.LedgerEntryType.claimableBalance().name: { - result.type = 'revokeClaimableBalanceSponsorship'; + result.type = "revokeClaimableBalanceSponsorship"; result.balanceId = ledgerKey .claimableBalance() .balanceId() - .toXDR('hex'); + .toXDR("hex"); break; } case xdr.LedgerEntryType.liquidityPool().name: { - result.type = 'revokeLiquidityPoolSponsorship'; + result.type = "revokeLiquidityPoolSponsorship"; result.liquidityPoolId = ledgerKey .liquidityPool() .liquidityPoolId() - .toString('hex'); + .toString("hex"); break; } default: { @@ -603,8 +601,8 @@ function extractRevokeSponshipDetails(attrs, result) { } break; } - case 'revokeSponsorshipSigner': { - result.type = 'revokeSignerSponsorship'; + case "revokeSponsorshipSigner": { + result.type = "revokeSignerSponsorship"; result.account = accountIdtoAddress(attrs.signer().accountId()); result.signer = convertXDRSignerKeyToObject(attrs.signer().signerKey()); break; @@ -625,11 +623,11 @@ function convertXDRSignerKeyToObject(signerKey) { break; } case xdr.SignerKeyType.signerKeyTypePreAuthTx().name: { - attrs.preAuthTx = signerKey.preAuthTx().toString('hex'); + attrs.preAuthTx = signerKey.preAuthTx().toString("hex"); break; } case xdr.SignerKeyType.signerKeyTypeHashX().name: { - attrs.sha256Hash = signerKey.hashX().toString('hex'); + attrs.sha256Hash = signerKey.hashX().toString("hex"); break; } default: { diff --git a/src/operations/account_merge.js b/src/operations/account_merge.js index 896a0e29b..b4c2859a2 100644 --- a/src/operations/account_merge.js +++ b/src/operations/account_merge.js @@ -1,5 +1,5 @@ -import xdr from '../xdr'; -import { decodeAddressToMuxedAccount } from '../util/decode_encode_muxed_account'; +import xdr from "../xdr"; +import { decodeAddressToMuxedAccount } from "../util/decode_encode_muxed_account"; /** * Transfers native balance to destination account. @@ -21,7 +21,7 @@ export function accountMerge(opts) { decodeAddressToMuxedAccount(opts.destination) ); } catch (e) { - throw new Error('destination is invalid'); + throw new Error("destination is invalid"); } this.setSourceAccount(opAttributes, opts); diff --git a/src/operations/allow_trust.js b/src/operations/allow_trust.js index c3c719360..9fd6cb9e9 100644 --- a/src/operations/allow_trust.js +++ b/src/operations/allow_trust.js @@ -1,6 +1,6 @@ -import xdr from '../xdr'; -import { Keypair } from '../keypair'; -import { StrKey } from '../strkey'; +import xdr from "../xdr"; +import { Keypair } from "../keypair"; +import { StrKey } from "../strkey"; /** * @deprecated since v5.0 @@ -21,21 +21,21 @@ import { StrKey } from '../strkey'; */ export function allowTrust(opts) { if (!StrKey.isValidEd25519PublicKey(opts.trustor)) { - throw new Error('trustor is invalid'); + throw new Error("trustor is invalid"); } const attributes = {}; attributes.trustor = Keypair.fromPublicKey(opts.trustor).xdrAccountId(); if (opts.assetCode.length <= 4) { - const code = opts.assetCode.padEnd(4, '\0'); + const code = opts.assetCode.padEnd(4, "\0"); attributes.asset = xdr.AssetCode.assetTypeCreditAlphanum4(code); } else if (opts.assetCode.length <= 12) { - const code = opts.assetCode.padEnd(12, '\0'); + const code = opts.assetCode.padEnd(12, "\0"); attributes.asset = xdr.AssetCode.assetTypeCreditAlphanum12(code); } else { - throw new Error('Asset code must be 12 characters at max.'); + throw new Error("Asset code must be 12 characters at max."); } - if (typeof opts.authorize === 'boolean') { + if (typeof opts.authorize === "boolean") { if (opts.authorize) { attributes.authorize = xdr.TrustLineFlags.authorizedFlag().value; } else { diff --git a/src/operations/begin_sponsoring_future_reserves.js b/src/operations/begin_sponsoring_future_reserves.js index ebf6d7e3e..40f9ded7c 100644 --- a/src/operations/begin_sponsoring_future_reserves.js +++ b/src/operations/begin_sponsoring_future_reserves.js @@ -1,6 +1,6 @@ -import xdr from '../xdr'; -import { StrKey } from '../strkey'; -import { Keypair } from '../keypair'; +import xdr from "../xdr"; +import { StrKey } from "../strkey"; +import { Keypair } from "../keypair"; /** * Create a "begin sponsoring future reserves" operation. @@ -19,7 +19,7 @@ import { Keypair } from '../keypair'; */ export function beginSponsoringFutureReserves(opts = {}) { if (!StrKey.isValidEd25519PublicKey(opts.sponsoredId)) { - throw new Error('sponsoredId is invalid'); + throw new Error("sponsoredId is invalid"); } const op = new xdr.BeginSponsoringFutureReservesOp({ sponsoredId: Keypair.fromPublicKey(opts.sponsoredId).xdrAccountId() diff --git a/src/operations/bump_sequence.js b/src/operations/bump_sequence.js index d479217de..402a5d889 100644 --- a/src/operations/bump_sequence.js +++ b/src/operations/bump_sequence.js @@ -1,6 +1,6 @@ -import { Hyper } from '@stellar/js-xdr'; -import BigNumber from '../util/bignumber'; -import xdr from '../xdr'; +import { Hyper } from "@stellar/js-xdr"; +import BigNumber from "../util/bignumber"; +import xdr from "../xdr"; /** * This operation bumps sequence number. @@ -14,15 +14,14 @@ import xdr from '../xdr'; export function bumpSequence(opts) { const attributes = {}; - if (typeof opts.bumpTo !== 'string') { - throw new Error('bumpTo must be a string'); + if (typeof opts.bumpTo !== "string") { + throw new Error("bumpTo must be a string"); } try { - // eslint-disable-next-line no-new new BigNumber(opts.bumpTo); } catch (e) { - throw new Error('bumpTo must be a stringified number'); + throw new Error("bumpTo must be a stringified number"); } attributes.bumpTo = Hyper.fromString(opts.bumpTo); diff --git a/src/operations/change_trust.js b/src/operations/change_trust.js index 513140046..578d4af31 100644 --- a/src/operations/change_trust.js +++ b/src/operations/change_trust.js @@ -1,10 +1,10 @@ -import { Hyper } from '@stellar/js-xdr'; -import BigNumber from '../util/bignumber'; -import xdr from '../xdr'; -import { Asset } from '../asset'; -import { LiquidityPoolAsset } from '../liquidity_pool_asset'; +import { Hyper } from "@stellar/js-xdr"; +import BigNumber from "../util/bignumber"; +import xdr from "../xdr"; +import { Asset } from "../asset"; +import { LiquidityPoolAsset } from "../liquidity_pool_asset"; -const MAX_INT64 = '9223372036854775807'; +const MAX_INT64 = "9223372036854775807"; /** * Returns an XDR ChangeTrustOp. A "change trust" operation adds, removes, or updates a @@ -26,11 +26,11 @@ export function changeTrust(opts) { } else if (opts.asset instanceof LiquidityPoolAsset) { attributes.line = opts.asset.toXDRObject(); } else { - throw new TypeError('asset must be Asset or LiquidityPoolAsset'); + throw new TypeError("asset must be Asset or LiquidityPoolAsset"); } if (opts.limit !== undefined && !this.isValidAmount(opts.limit, true)) { - throw new TypeError(this.constructAmountRequirementsError('limit')); + throw new TypeError(this.constructAmountRequirementsError("limit")); } if (opts.limit) { diff --git a/src/operations/claim_claimable_balance.js b/src/operations/claim_claimable_balance.js index bba5159e1..3cb18bc93 100644 --- a/src/operations/claim_claimable_balance.js +++ b/src/operations/claim_claimable_balance.js @@ -1,4 +1,4 @@ -import xdr from '../xdr'; +import xdr from "../xdr"; /** * Create a new claim claimable balance operation. @@ -19,7 +19,7 @@ export function claimClaimableBalance(opts = {}) { validateClaimableBalanceId(opts.balanceId); const attributes = {}; - attributes.balanceId = xdr.ClaimableBalanceId.fromXDR(opts.balanceId, 'hex'); + attributes.balanceId = xdr.ClaimableBalanceId.fromXDR(opts.balanceId, "hex"); const claimClaimableBalanceOp = new xdr.ClaimClaimableBalanceOp(attributes); const opAttributes = {}; @@ -33,9 +33,9 @@ export function claimClaimableBalance(opts = {}) { export function validateClaimableBalanceId(balanceId) { if ( - typeof balanceId !== 'string' || + typeof balanceId !== "string" || balanceId.length !== 8 + 64 /* 8b discriminant + 64b string */ ) { - throw new Error('must provide a valid claimable balance id'); + throw new Error("must provide a valid claimable balance id"); } } diff --git a/src/operations/clawback.js b/src/operations/clawback.js index a89346f44..f4d65347a 100644 --- a/src/operations/clawback.js +++ b/src/operations/clawback.js @@ -1,5 +1,5 @@ -import xdr from '../xdr'; -import { decodeAddressToMuxedAccount } from '../util/decode_encode_muxed_account'; +import xdr from "../xdr"; +import { decodeAddressToMuxedAccount } from "../util/decode_encode_muxed_account"; /** * Creates a clawback operation. @@ -23,14 +23,14 @@ import { decodeAddressToMuxedAccount } from '../util/decode_encode_muxed_account export function clawback(opts) { const attributes = {}; if (!this.isValidAmount(opts.amount)) { - throw new TypeError(this.constructAmountRequirementsError('amount')); + throw new TypeError(this.constructAmountRequirementsError("amount")); } attributes.amount = this._toXDRAmount(opts.amount); attributes.asset = opts.asset.toXDRObject(); try { attributes.from = decodeAddressToMuxedAccount(opts.from); } catch (e) { - throw new Error('from address is invalid'); + throw new Error("from address is invalid"); } const opAttributes = { diff --git a/src/operations/clawback_claimable_balance.js b/src/operations/clawback_claimable_balance.js index cce79d360..0a6f34796 100644 --- a/src/operations/clawback_claimable_balance.js +++ b/src/operations/clawback_claimable_balance.js @@ -1,5 +1,5 @@ -import xdr from '../xdr'; -import { validateClaimableBalanceId } from './claim_claimable_balance'; +import xdr from "../xdr"; +import { validateClaimableBalanceId } from "./claim_claimable_balance"; /** * Creates a clawback operation for a claimable balance. @@ -23,7 +23,7 @@ export function clawbackClaimableBalance(opts = {}) { validateClaimableBalanceId(opts.balanceId); const attributes = { - balanceId: xdr.ClaimableBalanceId.fromXDR(opts.balanceId, 'hex') + balanceId: xdr.ClaimableBalanceId.fromXDR(opts.balanceId, "hex") }; const opAttributes = { diff --git a/src/operations/create_account.js b/src/operations/create_account.js index b3edcbcf1..b0cca1d64 100644 --- a/src/operations/create_account.js +++ b/src/operations/create_account.js @@ -1,6 +1,6 @@ -import xdr from '../xdr'; -import { Keypair } from '../keypair'; -import { StrKey } from '../strkey'; +import xdr from "../xdr"; +import { Keypair } from "../keypair"; +import { StrKey } from "../strkey"; /** * Create and fund a non existent account. @@ -15,11 +15,11 @@ import { StrKey } from '../strkey'; */ export function createAccount(opts) { if (!StrKey.isValidEd25519PublicKey(opts.destination)) { - throw new Error('destination is invalid'); + throw new Error("destination is invalid"); } if (!this.isValidAmount(opts.startingBalance, true)) { throw new TypeError( - this.constructAmountRequirementsError('startingBalance') + this.constructAmountRequirementsError("startingBalance") ); } const attributes = {}; diff --git a/src/operations/create_claimable_balance.js b/src/operations/create_claimable_balance.js index f8ad9e573..f59b14d2d 100644 --- a/src/operations/create_claimable_balance.js +++ b/src/operations/create_claimable_balance.js @@ -1,5 +1,5 @@ -import xdr from '../xdr'; -import { Asset } from '../asset'; +import xdr from "../xdr"; +import { Asset } from "../asset"; /** * Create a new claimable balance operation. @@ -38,16 +38,16 @@ import { Asset } from '../asset'; export function createClaimableBalance(opts) { if (!(opts.asset instanceof Asset)) { throw new Error( - 'must provide an asset for create claimable balance operation' + "must provide an asset for create claimable balance operation" ); } if (!this.isValidAmount(opts.amount)) { - throw new TypeError(this.constructAmountRequirementsError('amount')); + throw new TypeError(this.constructAmountRequirementsError("amount")); } if (!Array.isArray(opts.claimants) || opts.claimants.length === 0) { - throw new Error('must provide at least one claimant'); + throw new Error("must provide at least one claimant"); } const attributes = {}; diff --git a/src/operations/create_passive_sell_offer.js b/src/operations/create_passive_sell_offer.js index e9a1c3c66..89bed2fbe 100644 --- a/src/operations/create_passive_sell_offer.js +++ b/src/operations/create_passive_sell_offer.js @@ -1,4 +1,4 @@ -import xdr from '../xdr'; +import xdr from "../xdr"; /** * Returns a XDR CreatePasiveSellOfferOp. A "create passive offer" operation creates an @@ -23,11 +23,11 @@ export function createPassiveSellOffer(opts) { attributes.selling = opts.selling.toXDRObject(); attributes.buying = opts.buying.toXDRObject(); if (!this.isValidAmount(opts.amount)) { - throw new TypeError(this.constructAmountRequirementsError('amount')); + throw new TypeError(this.constructAmountRequirementsError("amount")); } attributes.amount = this._toXDRAmount(opts.amount); if (opts.price === undefined) { - throw new TypeError('price argument is required'); + throw new TypeError("price argument is required"); } attributes.price = this._toXDRPrice(opts.price); const createPassiveSellOfferOp = new xdr.CreatePassiveSellOfferOp(attributes); diff --git a/src/operations/end_sponsoring_future_reserves.js b/src/operations/end_sponsoring_future_reserves.js index ab4ed879d..00952092e 100644 --- a/src/operations/end_sponsoring_future_reserves.js +++ b/src/operations/end_sponsoring_future_reserves.js @@ -1,4 +1,4 @@ -import xdr from '../xdr'; +import xdr from "../xdr"; /** * Create an "end sponsoring future reserves" operation. diff --git a/src/operations/extend_footprint_ttl.js b/src/operations/extend_footprint_ttl.js index db7daae8e..86b64094e 100644 --- a/src/operations/extend_footprint_ttl.js +++ b/src/operations/extend_footprint_ttl.js @@ -1,4 +1,4 @@ -import xdr from '../xdr'; +import xdr from "../xdr"; /** * Builds an operation to bump the time-to-live (TTL) of the ledger keys. The @@ -32,7 +32,7 @@ import xdr from '../xdr'; */ export function extendFootprintTtl(opts) { if ((opts.extendTo ?? -1) <= 0) { - throw new RangeError('extendTo has to be positive'); + throw new RangeError("extendTo has to be positive"); } const extendFootprintOp = new xdr.ExtendFootprintTtlOp({ diff --git a/src/operations/index.js b/src/operations/index.js index 8a98bd0fd..db830fedd 100644 --- a/src/operations/index.js +++ b/src/operations/index.js @@ -1,22 +1,22 @@ -export { manageSellOffer } from './manage_sell_offer'; -export { createPassiveSellOffer } from './create_passive_sell_offer'; -export { accountMerge } from './account_merge'; -export { allowTrust } from './allow_trust'; -export { bumpSequence } from './bump_sequence'; -export { changeTrust } from './change_trust'; -export { createAccount } from './create_account'; -export { createClaimableBalance } from './create_claimable_balance'; -export { claimClaimableBalance } from './claim_claimable_balance'; -export { clawbackClaimableBalance } from './clawback_claimable_balance'; -export { inflation } from './inflation'; -export { manageData } from './manage_data'; -export { manageBuyOffer } from './manage_buy_offer'; -export { pathPaymentStrictReceive } from './path_payment_strict_receive'; -export { pathPaymentStrictSend } from './path_payment_strict_send'; -export { payment } from './payment'; -export { setOptions } from './set_options'; -export { beginSponsoringFutureReserves } from './begin_sponsoring_future_reserves'; -export { endSponsoringFutureReserves } from './end_sponsoring_future_reserves'; +export { manageSellOffer } from "./manage_sell_offer"; +export { createPassiveSellOffer } from "./create_passive_sell_offer"; +export { accountMerge } from "./account_merge"; +export { allowTrust } from "./allow_trust"; +export { bumpSequence } from "./bump_sequence"; +export { changeTrust } from "./change_trust"; +export { createAccount } from "./create_account"; +export { createClaimableBalance } from "./create_claimable_balance"; +export { claimClaimableBalance } from "./claim_claimable_balance"; +export { clawbackClaimableBalance } from "./clawback_claimable_balance"; +export { inflation } from "./inflation"; +export { manageData } from "./manage_data"; +export { manageBuyOffer } from "./manage_buy_offer"; +export { pathPaymentStrictReceive } from "./path_payment_strict_receive"; +export { pathPaymentStrictSend } from "./path_payment_strict_send"; +export { payment } from "./payment"; +export { setOptions } from "./set_options"; +export { beginSponsoringFutureReserves } from "./begin_sponsoring_future_reserves"; +export { endSponsoringFutureReserves } from "./end_sponsoring_future_reserves"; export { revokeAccountSponsorship, revokeTrustlineSponsorship, @@ -25,17 +25,17 @@ export { revokeClaimableBalanceSponsorship, revokeLiquidityPoolSponsorship, revokeSignerSponsorship -} from './revoke_sponsorship'; -export { clawback } from './clawback'; -export { setTrustLineFlags } from './set_trustline_flags'; -export { liquidityPoolDeposit } from './liquidity_pool_deposit'; -export { liquidityPoolWithdraw } from './liquidity_pool_withdraw'; +} from "./revoke_sponsorship"; +export { clawback } from "./clawback"; +export { setTrustLineFlags } from "./set_trustline_flags"; +export { liquidityPoolDeposit } from "./liquidity_pool_deposit"; +export { liquidityPoolWithdraw } from "./liquidity_pool_withdraw"; export { invokeHostFunction, invokeContractFunction, createStellarAssetContract, createCustomContract, uploadContractWasm -} from './invoke_host_function'; -export { extendFootprintTtl } from './extend_footprint_ttl'; -export { restoreFootprint } from './restore_footprint'; +} from "./invoke_host_function"; +export { extendFootprintTtl } from "./extend_footprint_ttl"; +export { restoreFootprint } from "./restore_footprint"; diff --git a/src/operations/inflation.js b/src/operations/inflation.js index 23aa9aa76..fe25cfc0d 100644 --- a/src/operations/inflation.js +++ b/src/operations/inflation.js @@ -1,4 +1,4 @@ -import xdr from '../xdr'; +import xdr from "../xdr"; /** * This operation generates the inflation. diff --git a/src/operations/invoke_host_function.js b/src/operations/invoke_host_function.js index 44ded32b4..50a974f99 100644 --- a/src/operations/invoke_host_function.js +++ b/src/operations/invoke_host_function.js @@ -1,8 +1,8 @@ -import xdr from '../xdr'; +import xdr from "../xdr"; -import { Keypair } from '../keypair'; -import { Address } from '../address'; -import { Asset } from '../asset'; +import { Keypair } from "../keypair"; +import { Address } from "../address"; +import { Asset } from "../asset"; /** * Invokes a single smart contract host function. @@ -53,8 +53,8 @@ export function invokeHostFunction(opts) { } switch (scv._type) { - case 'claimableBalance': - case 'liquidityPool': + case "claimableBalance": + case "liquidityPool": throw new TypeError( `claimable balances and liquidity pools cannot be arguments to invokeHostFunction` ); @@ -101,7 +101,7 @@ export function invokeHostFunction(opts) { */ export function invokeContractFunction(opts) { const c = new Address(opts.contract); - if (c._type !== 'contract') { + if (c._type !== "contract") { throw new TypeError(`expected contract strkey instance, got ${c}`); } @@ -206,8 +206,8 @@ export function createCustomContract(opts) { */ export function createStellarAssetContract(opts) { let asset = opts.asset; - if (typeof asset === 'string') { - const [code, issuer] = asset.split(':'); + if (typeof asset === "string") { + const [code, issuer] = asset.split(":"); asset = new Asset(code, issuer); // handles 'xlm' by default } diff --git a/src/operations/liquidity_pool_deposit.js b/src/operations/liquidity_pool_deposit.js index eb39b41e5..d49fdf640 100644 --- a/src/operations/liquidity_pool_deposit.js +++ b/src/operations/liquidity_pool_deposit.js @@ -1,4 +1,4 @@ -import xdr from '../xdr'; +import xdr from "../xdr"; /** * Creates a liquidity pool deposit operation. @@ -26,27 +26,27 @@ export function liquidityPoolDeposit(opts = {}) { const attributes = {}; if (!liquidityPoolId) { - throw new TypeError('liquidityPoolId argument is required'); + throw new TypeError("liquidityPoolId argument is required"); } - attributes.liquidityPoolId = xdr.PoolId.fromXDR(liquidityPoolId, 'hex'); + attributes.liquidityPoolId = xdr.PoolId.fromXDR(liquidityPoolId, "hex"); if (!this.isValidAmount(maxAmountA, true)) { - throw new TypeError(this.constructAmountRequirementsError('maxAmountA')); + throw new TypeError(this.constructAmountRequirementsError("maxAmountA")); } attributes.maxAmountA = this._toXDRAmount(maxAmountA); if (!this.isValidAmount(maxAmountB, true)) { - throw new TypeError(this.constructAmountRequirementsError('maxAmountB')); + throw new TypeError(this.constructAmountRequirementsError("maxAmountB")); } attributes.maxAmountB = this._toXDRAmount(maxAmountB); if (minPrice === undefined) { - throw new TypeError('minPrice argument is required'); + throw new TypeError("minPrice argument is required"); } attributes.minPrice = this._toXDRPrice(minPrice); if (maxPrice === undefined) { - throw new TypeError('maxPrice argument is required'); + throw new TypeError("maxPrice argument is required"); } attributes.maxPrice = this._toXDRPrice(maxPrice); diff --git a/src/operations/liquidity_pool_withdraw.js b/src/operations/liquidity_pool_withdraw.js index 0768e1edc..f3c92416e 100644 --- a/src/operations/liquidity_pool_withdraw.js +++ b/src/operations/liquidity_pool_withdraw.js @@ -1,4 +1,4 @@ -import xdr from '../xdr'; +import xdr from "../xdr"; /** * Creates a liquidity pool withdraw operation. @@ -19,22 +19,22 @@ import xdr from '../xdr'; export function liquidityPoolWithdraw(opts = {}) { const attributes = {}; if (!opts.liquidityPoolId) { - throw new TypeError('liquidityPoolId argument is required'); + throw new TypeError("liquidityPoolId argument is required"); } - attributes.liquidityPoolId = xdr.PoolId.fromXDR(opts.liquidityPoolId, 'hex'); + attributes.liquidityPoolId = xdr.PoolId.fromXDR(opts.liquidityPoolId, "hex"); if (!this.isValidAmount(opts.amount)) { - throw new TypeError(this.constructAmountRequirementsError('amount')); + throw new TypeError(this.constructAmountRequirementsError("amount")); } attributes.amount = this._toXDRAmount(opts.amount); if (!this.isValidAmount(opts.minAmountA, true)) { - throw new TypeError(this.constructAmountRequirementsError('minAmountA')); + throw new TypeError(this.constructAmountRequirementsError("minAmountA")); } attributes.minAmountA = this._toXDRAmount(opts.minAmountA); if (!this.isValidAmount(opts.minAmountB, true)) { - throw new TypeError(this.constructAmountRequirementsError('minAmountB')); + throw new TypeError(this.constructAmountRequirementsError("minAmountB")); } attributes.minAmountB = this._toXDRAmount(opts.minAmountB); diff --git a/src/operations/manage_buy_offer.js b/src/operations/manage_buy_offer.js index 6b56b564d..47b239af6 100644 --- a/src/operations/manage_buy_offer.js +++ b/src/operations/manage_buy_offer.js @@ -1,5 +1,5 @@ -import { Hyper } from '@stellar/js-xdr'; -import xdr from '../xdr'; +import { Hyper } from "@stellar/js-xdr"; +import xdr from "../xdr"; /** * Returns a XDR ManageBuyOfferOp. A "manage buy offer" operation creates, updates, or * deletes a buy offer. @@ -22,18 +22,18 @@ export function manageBuyOffer(opts) { attributes.selling = opts.selling.toXDRObject(); attributes.buying = opts.buying.toXDRObject(); if (!this.isValidAmount(opts.buyAmount, true)) { - throw new TypeError(this.constructAmountRequirementsError('buyAmount')); + throw new TypeError(this.constructAmountRequirementsError("buyAmount")); } attributes.buyAmount = this._toXDRAmount(opts.buyAmount); if (opts.price === undefined) { - throw new TypeError('price argument is required'); + throw new TypeError("price argument is required"); } attributes.price = this._toXDRPrice(opts.price); if (opts.offerId !== undefined) { opts.offerId = opts.offerId.toString(); } else { - opts.offerId = '0'; + opts.offerId = "0"; } attributes.offerId = Hyper.fromString(opts.offerId); diff --git a/src/operations/manage_data.js b/src/operations/manage_data.js index faff247fa..835f80fb3 100644 --- a/src/operations/manage_data.js +++ b/src/operations/manage_data.js @@ -1,4 +1,4 @@ -import xdr from '../xdr'; +import xdr from "../xdr"; /** * This operation adds data entry to the ledger. @@ -13,27 +13,27 @@ import xdr from '../xdr'; export function manageData(opts) { const attributes = {}; - if (!(typeof opts.name === 'string' && opts.name.length <= 64)) { - throw new Error('name must be a string, up to 64 characters'); + if (!(typeof opts.name === "string" && opts.name.length <= 64)) { + throw new Error("name must be a string, up to 64 characters"); } attributes.dataName = opts.name; if ( - typeof opts.value !== 'string' && + typeof opts.value !== "string" && !Buffer.isBuffer(opts.value) && opts.value !== null ) { - throw new Error('value must be a string, Buffer or null'); + throw new Error("value must be a string, Buffer or null"); } - if (typeof opts.value === 'string') { + if (typeof opts.value === "string") { attributes.dataValue = Buffer.from(opts.value); } else { attributes.dataValue = opts.value; } if (attributes.dataValue !== null && attributes.dataValue.length > 64) { - throw new Error('value cannot be longer that 64 bytes'); + throw new Error("value cannot be longer that 64 bytes"); } const manageDataOp = new xdr.ManageDataOp(attributes); diff --git a/src/operations/manage_sell_offer.js b/src/operations/manage_sell_offer.js index d3d6ef6d1..2692905e8 100644 --- a/src/operations/manage_sell_offer.js +++ b/src/operations/manage_sell_offer.js @@ -1,5 +1,5 @@ -import { Hyper } from '@stellar/js-xdr'; -import xdr from '../xdr'; +import { Hyper } from "@stellar/js-xdr"; +import xdr from "../xdr"; /** * Returns a XDR ManageSellOfferOp. A "manage sell offer" operation creates, updates, or * deletes an offer. @@ -22,18 +22,18 @@ export function manageSellOffer(opts) { attributes.selling = opts.selling.toXDRObject(); attributes.buying = opts.buying.toXDRObject(); if (!this.isValidAmount(opts.amount, true)) { - throw new TypeError(this.constructAmountRequirementsError('amount')); + throw new TypeError(this.constructAmountRequirementsError("amount")); } attributes.amount = this._toXDRAmount(opts.amount); if (opts.price === undefined) { - throw new TypeError('price argument is required'); + throw new TypeError("price argument is required"); } attributes.price = this._toXDRPrice(opts.price); if (opts.offerId !== undefined) { opts.offerId = opts.offerId.toString(); } else { - opts.offerId = '0'; + opts.offerId = "0"; } attributes.offerId = Hyper.fromString(opts.offerId); diff --git a/src/operations/path_payment_strict_receive.js b/src/operations/path_payment_strict_receive.js index c5d69cc28..05b2ced3a 100644 --- a/src/operations/path_payment_strict_receive.js +++ b/src/operations/path_payment_strict_receive.js @@ -1,5 +1,5 @@ -import xdr from '../xdr'; -import { decodeAddressToMuxedAccount } from '../util/decode_encode_muxed_account'; +import xdr from "../xdr"; +import { decodeAddressToMuxedAccount } from "../util/decode_encode_muxed_account"; /** * Creates a PathPaymentStrictReceive operation. @@ -30,13 +30,13 @@ import { decodeAddressToMuxedAccount } from '../util/decode_encode_muxed_account export function pathPaymentStrictReceive(opts) { switch (true) { case !opts.sendAsset: - throw new Error('Must specify a send asset'); + throw new Error("Must specify a send asset"); case !this.isValidAmount(opts.sendMax): - throw new TypeError(this.constructAmountRequirementsError('sendMax')); + throw new TypeError(this.constructAmountRequirementsError("sendMax")); case !opts.destAsset: - throw new Error('Must provide a destAsset for a payment operation'); + throw new Error("Must provide a destAsset for a payment operation"); case !this.isValidAmount(opts.destAmount): - throw new TypeError(this.constructAmountRequirementsError('destAmount')); + throw new TypeError(this.constructAmountRequirementsError("destAmount")); default: break; } @@ -47,7 +47,7 @@ export function pathPaymentStrictReceive(opts) { try { attributes.destination = decodeAddressToMuxedAccount(opts.destination); } catch (e) { - throw new Error('destination is invalid'); + throw new Error("destination is invalid"); } attributes.destAsset = opts.destAsset.toXDRObject(); diff --git a/src/operations/path_payment_strict_send.js b/src/operations/path_payment_strict_send.js index b2e8b1eb6..a2b6d2c3c 100644 --- a/src/operations/path_payment_strict_send.js +++ b/src/operations/path_payment_strict_send.js @@ -1,5 +1,5 @@ -import xdr from '../xdr'; -import { decodeAddressToMuxedAccount } from '../util/decode_encode_muxed_account'; +import xdr from "../xdr"; +import { decodeAddressToMuxedAccount } from "../util/decode_encode_muxed_account"; /** * Creates a PathPaymentStrictSend operation. @@ -30,13 +30,13 @@ import { decodeAddressToMuxedAccount } from '../util/decode_encode_muxed_account export function pathPaymentStrictSend(opts) { switch (true) { case !opts.sendAsset: - throw new Error('Must specify a send asset'); + throw new Error("Must specify a send asset"); case !this.isValidAmount(opts.sendAmount): - throw new TypeError(this.constructAmountRequirementsError('sendAmount')); + throw new TypeError(this.constructAmountRequirementsError("sendAmount")); case !opts.destAsset: - throw new Error('Must provide a destAsset for a payment operation'); + throw new Error("Must provide a destAsset for a payment operation"); case !this.isValidAmount(opts.destMin): - throw new TypeError(this.constructAmountRequirementsError('destMin')); + throw new TypeError(this.constructAmountRequirementsError("destMin")); default: break; } @@ -47,7 +47,7 @@ export function pathPaymentStrictSend(opts) { try { attributes.destination = decodeAddressToMuxedAccount(opts.destination); } catch (e) { - throw new Error('destination is invalid'); + throw new Error("destination is invalid"); } attributes.destAsset = opts.destAsset.toXDRObject(); attributes.destMin = this._toXDRAmount(opts.destMin); diff --git a/src/operations/payment.js b/src/operations/payment.js index da986b0fb..e2d95b3a8 100644 --- a/src/operations/payment.js +++ b/src/operations/payment.js @@ -1,5 +1,5 @@ -import xdr from '../xdr'; -import { decodeAddressToMuxedAccount } from '../util/decode_encode_muxed_account'; +import xdr from "../xdr"; +import { decodeAddressToMuxedAccount } from "../util/decode_encode_muxed_account"; /** * Create a payment operation. @@ -20,17 +20,17 @@ import { decodeAddressToMuxedAccount } from '../util/decode_encode_muxed_account */ export function payment(opts) { if (!opts.asset) { - throw new Error('Must provide an asset for a payment operation'); + throw new Error("Must provide an asset for a payment operation"); } if (!this.isValidAmount(opts.amount)) { - throw new TypeError(this.constructAmountRequirementsError('amount')); + throw new TypeError(this.constructAmountRequirementsError("amount")); } const attributes = {}; try { attributes.destination = decodeAddressToMuxedAccount(opts.destination); } catch (e) { - throw new Error('destination is invalid'); + throw new Error("destination is invalid"); } attributes.asset = opts.asset.toXDRObject(); diff --git a/src/operations/restore_footprint.js b/src/operations/restore_footprint.js index b16527ec3..75df4b821 100644 --- a/src/operations/restore_footprint.js +++ b/src/operations/restore_footprint.js @@ -1,4 +1,4 @@ -import xdr from '../xdr'; +import xdr from "../xdr"; /** * Builds an operation to restore the archived ledger entries specified diff --git a/src/operations/revoke_sponsorship.js b/src/operations/revoke_sponsorship.js index 73e374c1c..ab3accc11 100644 --- a/src/operations/revoke_sponsorship.js +++ b/src/operations/revoke_sponsorship.js @@ -1,8 +1,8 @@ -import xdr from '../xdr'; -import { StrKey } from '../strkey'; -import { Keypair } from '../keypair'; -import { Asset } from '../asset'; -import { LiquidityPoolId } from '../liquidity_pool_id'; +import xdr from "../xdr"; +import { StrKey } from "../strkey"; +import { Keypair } from "../keypair"; +import { Asset } from "../asset"; +import { LiquidityPoolId } from "../liquidity_pool_id"; /** * Create a "revoke sponsorship" operation for an account. @@ -22,7 +22,7 @@ import { LiquidityPoolId } from '../liquidity_pool_id'; */ export function revokeAccountSponsorship(opts = {}) { if (!StrKey.isValidEd25519PublicKey(opts.account)) { - throw new Error('account is invalid'); + throw new Error("account is invalid"); } const ledgerKey = xdr.LedgerKey.account( @@ -61,7 +61,7 @@ export function revokeAccountSponsorship(opts = {}) { */ export function revokeTrustlineSponsorship(opts = {}) { if (!StrKey.isValidEd25519PublicKey(opts.account)) { - throw new Error('account is invalid'); + throw new Error("account is invalid"); } let asset; @@ -70,7 +70,7 @@ export function revokeTrustlineSponsorship(opts = {}) { } else if (opts.asset instanceof LiquidityPoolId) { asset = opts.asset.toXDRObject(); } else { - throw new TypeError('asset must be an Asset or LiquidityPoolId'); + throw new TypeError("asset must be an Asset or LiquidityPoolId"); } const ledgerKey = xdr.LedgerKey.trustline( @@ -107,10 +107,10 @@ export function revokeTrustlineSponsorship(opts = {}) { */ export function revokeOfferSponsorship(opts = {}) { if (!StrKey.isValidEd25519PublicKey(opts.seller)) { - throw new Error('seller is invalid'); + throw new Error("seller is invalid"); } - if (typeof opts.offerId !== 'string') { - throw new Error('offerId is invalid'); + if (typeof opts.offerId !== "string") { + throw new Error("offerId is invalid"); } const ledgerKey = xdr.LedgerKey.offer( @@ -147,10 +147,10 @@ export function revokeOfferSponsorship(opts = {}) { */ export function revokeDataSponsorship(opts = {}) { if (!StrKey.isValidEd25519PublicKey(opts.account)) { - throw new Error('account is invalid'); + throw new Error("account is invalid"); } - if (typeof opts.name !== 'string' || opts.name.length > 64) { - throw new Error('name must be a string, up to 64 characters'); + if (typeof opts.name !== "string" || opts.name.length > 64) { + throw new Error("name must be a string, up to 64 characters"); } const ledgerKey = xdr.LedgerKey.data( @@ -184,13 +184,13 @@ export function revokeDataSponsorship(opts = {}) { * */ export function revokeClaimableBalanceSponsorship(opts = {}) { - if (typeof opts.balanceId !== 'string') { - throw new Error('balanceId is invalid'); + if (typeof opts.balanceId !== "string") { + throw new Error("balanceId is invalid"); } const ledgerKey = xdr.LedgerKey.claimableBalance( new xdr.LedgerKeyClaimableBalance({ - balanceId: xdr.ClaimableBalanceId.fromXDR(opts.balanceId, 'hex') + balanceId: xdr.ClaimableBalanceId.fromXDR(opts.balanceId, "hex") }) ); const op = xdr.RevokeSponsorshipOp.revokeSponsorshipLedgerEntry(ledgerKey); @@ -218,13 +218,13 @@ export function revokeClaimableBalanceSponsorship(opts = {}) { * */ export function revokeLiquidityPoolSponsorship(opts = {}) { - if (typeof opts.liquidityPoolId !== 'string') { - throw new Error('liquidityPoolId is invalid'); + if (typeof opts.liquidityPoolId !== "string") { + throw new Error("liquidityPoolId is invalid"); } const ledgerKey = xdr.LedgerKey.liquidityPool( new xdr.LedgerKeyLiquidityPool({ - liquidityPoolId: xdr.PoolId.fromXDR(opts.liquidityPoolId, 'hex') + liquidityPoolId: xdr.PoolId.fromXDR(opts.liquidityPoolId, "hex") }) ); @@ -262,44 +262,44 @@ export function revokeLiquidityPoolSponsorship(opts = {}) { */ export function revokeSignerSponsorship(opts = {}) { if (!StrKey.isValidEd25519PublicKey(opts.account)) { - throw new Error('account is invalid'); + throw new Error("account is invalid"); } let key; if (opts.signer.ed25519PublicKey) { if (!StrKey.isValidEd25519PublicKey(opts.signer.ed25519PublicKey)) { - throw new Error('signer.ed25519PublicKey is invalid.'); + throw new Error("signer.ed25519PublicKey is invalid."); } const rawKey = StrKey.decodeEd25519PublicKey(opts.signer.ed25519PublicKey); key = new xdr.SignerKey.signerKeyTypeEd25519(rawKey); } else if (opts.signer.preAuthTx) { let buffer; - if (typeof opts.signer.preAuthTx === 'string') { - buffer = Buffer.from(opts.signer.preAuthTx, 'hex'); + if (typeof opts.signer.preAuthTx === "string") { + buffer = Buffer.from(opts.signer.preAuthTx, "hex"); } else { buffer = opts.signer.preAuthTx; } if (!(Buffer.isBuffer(buffer) && buffer.length === 32)) { - throw new Error('signer.preAuthTx must be 32 bytes Buffer.'); + throw new Error("signer.preAuthTx must be 32 bytes Buffer."); } key = new xdr.SignerKey.signerKeyTypePreAuthTx(buffer); } else if (opts.signer.sha256Hash) { let buffer; - if (typeof opts.signer.sha256Hash === 'string') { - buffer = Buffer.from(opts.signer.sha256Hash, 'hex'); + if (typeof opts.signer.sha256Hash === "string") { + buffer = Buffer.from(opts.signer.sha256Hash, "hex"); } else { buffer = opts.signer.sha256Hash; } if (!(Buffer.isBuffer(buffer) && buffer.length === 32)) { - throw new Error('signer.sha256Hash must be 32 bytes Buffer.'); + throw new Error("signer.sha256Hash must be 32 bytes Buffer."); } key = new xdr.SignerKey.signerKeyTypeHashX(buffer); } else { - throw new Error('signer is invalid'); + throw new Error("signer is invalid"); } const signer = new xdr.RevokeSponsorshipOpSigner({ diff --git a/src/operations/set_options.js b/src/operations/set_options.js index 9044a8e52..57e6ed857 100644 --- a/src/operations/set_options.js +++ b/src/operations/set_options.js @@ -1,8 +1,6 @@ -/* eslint-disable no-param-reassign */ - -import xdr from '../xdr'; -import { Keypair } from '../keypair'; -import { StrKey } from '../strkey'; +import xdr from "../xdr"; +import { Keypair } from "../keypair"; +import { StrKey } from "../strkey"; function weightCheckFunction(value, name) { if (value >= 0 && value <= 255) { @@ -51,7 +49,7 @@ export function setOptions(opts) { if (opts.inflationDest) { if (!StrKey.isValidEd25519PublicKey(opts.inflationDest)) { - throw new Error('inflationDest is invalid'); + throw new Error("inflationDest is invalid"); } attributes.inflationDest = Keypair.fromPublicKey( opts.inflationDest @@ -59,39 +57,39 @@ export function setOptions(opts) { } attributes.clearFlags = this._checkUnsignedIntValue( - 'clearFlags', + "clearFlags", opts.clearFlags ); - attributes.setFlags = this._checkUnsignedIntValue('setFlags', opts.setFlags); + attributes.setFlags = this._checkUnsignedIntValue("setFlags", opts.setFlags); attributes.masterWeight = this._checkUnsignedIntValue( - 'masterWeight', + "masterWeight", opts.masterWeight, weightCheckFunction ); attributes.lowThreshold = this._checkUnsignedIntValue( - 'lowThreshold', + "lowThreshold", opts.lowThreshold, weightCheckFunction ); attributes.medThreshold = this._checkUnsignedIntValue( - 'medThreshold', + "medThreshold", opts.medThreshold, weightCheckFunction ); attributes.highThreshold = this._checkUnsignedIntValue( - 'highThreshold', + "highThreshold", opts.highThreshold, weightCheckFunction ); - if (opts.homeDomain !== undefined && typeof opts.homeDomain !== 'string') { - throw new TypeError('homeDomain argument must be of type String'); + if (opts.homeDomain !== undefined && typeof opts.homeDomain !== "string") { + throw new TypeError("homeDomain argument must be of type String"); } attributes.homeDomain = opts.homeDomain; if (opts.signer) { const weight = this._checkUnsignedIntValue( - 'signer.weight', + "signer.weight", opts.signer.weight, weightCheckFunction ); @@ -101,20 +99,19 @@ export function setOptions(opts) { if (opts.signer.ed25519PublicKey) { if (!StrKey.isValidEd25519PublicKey(opts.signer.ed25519PublicKey)) { - throw new Error('signer.ed25519PublicKey is invalid.'); + throw new Error("signer.ed25519PublicKey is invalid."); } const rawKey = StrKey.decodeEd25519PublicKey( opts.signer.ed25519PublicKey ); - // eslint-disable-next-line new-cap key = new xdr.SignerKey.signerKeyTypeEd25519(rawKey); setValues += 1; } if (opts.signer.preAuthTx) { - if (typeof opts.signer.preAuthTx === 'string') { - opts.signer.preAuthTx = Buffer.from(opts.signer.preAuthTx, 'hex'); + if (typeof opts.signer.preAuthTx === "string") { + opts.signer.preAuthTx = Buffer.from(opts.signer.preAuthTx, "hex"); } if ( @@ -123,17 +120,16 @@ export function setOptions(opts) { opts.signer.preAuthTx.length === 32 ) ) { - throw new Error('signer.preAuthTx must be 32 bytes Buffer.'); + throw new Error("signer.preAuthTx must be 32 bytes Buffer."); } - // eslint-disable-next-line new-cap key = new xdr.SignerKey.signerKeyTypePreAuthTx(opts.signer.preAuthTx); setValues += 1; } if (opts.signer.sha256Hash) { - if (typeof opts.signer.sha256Hash === 'string') { - opts.signer.sha256Hash = Buffer.from(opts.signer.sha256Hash, 'hex'); + if (typeof opts.signer.sha256Hash === "string") { + opts.signer.sha256Hash = Buffer.from(opts.signer.sha256Hash, "hex"); } if ( @@ -142,17 +138,16 @@ export function setOptions(opts) { opts.signer.sha256Hash.length === 32 ) ) { - throw new Error('signer.sha256Hash must be 32 bytes Buffer.'); + throw new Error("signer.sha256Hash must be 32 bytes Buffer."); } - // eslint-disable-next-line new-cap key = new xdr.SignerKey.signerKeyTypeHashX(opts.signer.sha256Hash); setValues += 1; } if (opts.signer.ed25519SignedPayload) { if (!StrKey.isValidSignedPayload(opts.signer.ed25519SignedPayload)) { - throw new Error('signer.ed25519SignedPayload is invalid.'); + throw new Error("signer.ed25519SignedPayload is invalid."); } const rawKey = StrKey.decodeSignedPayload( opts.signer.ed25519SignedPayload @@ -160,14 +155,13 @@ export function setOptions(opts) { const signedPayloadXdr = xdr.SignerKeyEd25519SignedPayload.fromXDR(rawKey); - // eslint-disable-next-line new-cap key = xdr.SignerKey.signerKeyTypeEd25519SignedPayload(signedPayloadXdr); setValues += 1; } if (setValues !== 1) { throw new Error( - 'Signer object must contain exactly one of signer.ed25519PublicKey, signer.sha256Hash, signer.preAuthTx.' + "Signer object must contain exactly one of signer.ed25519PublicKey, signer.sha256Hash, signer.preAuthTx." ); } diff --git a/src/operations/set_trustline_flags.js b/src/operations/set_trustline_flags.js index 21fd84318..51e0b27a1 100644 --- a/src/operations/set_trustline_flags.js +++ b/src/operations/set_trustline_flags.js @@ -1,5 +1,5 @@ -import xdr from '../xdr'; -import { Keypair } from '../keypair'; +import xdr from "../xdr"; +import { Keypair } from "../keypair"; /** * Creates a trustline flag configuring operation. @@ -41,8 +41,8 @@ import { Keypair } from '../keypair'; export function setTrustLineFlags(opts = {}) { const attributes = {}; - if (typeof opts.flags !== 'object' || Object.keys(opts.flags).length === 0) { - throw new Error('opts.flags must be a map of boolean flags to modify'); + if (typeof opts.flags !== "object" || Object.keys(opts.flags).length === 0) { + throw new Error("opts.flags must be a map of boolean flags to modify"); } const mapping = { diff --git a/src/scval.js b/src/scval.js index 8a66eb01c..7b15176bb 100644 --- a/src/scval.js +++ b/src/scval.js @@ -1,9 +1,9 @@ -import xdr from './xdr'; +import xdr from "./xdr"; -import { Keypair } from './keypair'; -import { Address } from './address'; -import { Contract } from './contract'; -import { ScInt, XdrLargeInt, scValToBigInt } from './numbers/index'; +import { Keypair } from "./keypair"; +import { Address } from "./address"; +import { Contract } from "./contract"; +import { ScInt, XdrLargeInt, scValToBigInt } from "./numbers/index"; /** * Attempts to convert native types into smart contract values @@ -143,7 +143,7 @@ import { ScInt, XdrLargeInt, scValToBigInt } from './numbers/index'; */ export function nativeToScVal(val, opts = {}) { switch (typeof val) { - case 'object': { + case "object": { if (val === null) { return xdr.ScVal.scvVoid(); } @@ -157,7 +157,7 @@ export function nativeToScVal(val, opts = {}) { } if (val instanceof Keypair) { - return nativeToScVal(val.publicKey(), { type: 'address' }); + return nativeToScVal(val.publicKey(), { type: "address" }); } if (val instanceof Contract) { @@ -166,12 +166,12 @@ export function nativeToScVal(val, opts = {}) { if (val instanceof Uint8Array || Buffer.isBuffer(val)) { const copy = Uint8Array.from(val); - switch (opts?.type ?? 'bytes') { - case 'bytes': + switch (opts?.type ?? "bytes") { + case "bytes": return xdr.ScVal.scvBytes(copy); - case 'symbol': + case "symbol": return xdr.ScVal.scvSymbol(copy); - case 'string': + case "string": return xdr.ScVal.scvString(copy); default: throw new TypeError( @@ -200,7 +200,7 @@ export function nativeToScVal(val, opts = {}) { ); } - if ((val.constructor?.name ?? '') !== 'Object') { + if ((val.constructor?.name ?? "") !== "Object") { throw new TypeError( `cannot interpret ${ val.constructor?.name @@ -230,13 +230,13 @@ export function nativeToScVal(val, opts = {}) { ); } - case 'number': - case 'bigint': + case "number": + case "bigint": switch (opts?.type) { - case 'u32': + case "u32": return xdr.ScVal.scvU32(val); - case 'i32': + case "i32": return xdr.ScVal.scvI32(val); default: @@ -245,22 +245,22 @@ export function nativeToScVal(val, opts = {}) { return new ScInt(val, { type: opts?.type }).toScVal(); - case 'string': { - const optType = opts?.type ?? 'string'; + case "string": { + const optType = opts?.type ?? "string"; switch (optType) { - case 'string': + case "string": return xdr.ScVal.scvString(val); - case 'symbol': + case "symbol": return xdr.ScVal.scvSymbol(val); - case 'address': + case "address": return new Address(val).toScVal(); - case 'u32': + case "u32": return xdr.ScVal.scvU32(parseInt(val, 10)); - case 'i32': + case "i32": return xdr.ScVal.scvI32(parseInt(val, 10)); default: @@ -274,13 +274,13 @@ export function nativeToScVal(val, opts = {}) { } } - case 'boolean': + case "boolean": return xdr.ScVal.scvBool(val); - case 'undefined': + case "undefined": return xdr.ScVal.scvVoid(); - case 'function': // FIXME: Is this too helpful? + case "function": // FIXME: Is this too helpful? return nativeToScVal(val()); default: @@ -385,11 +385,11 @@ export function scValToNative(scv) { switch (scv.error().switch().value) { // Distinguish errors from the user contract. case xdr.ScErrorType.sceContract().value: - return { type: 'contract', code: scv.error().contractCode() }; + return { type: "contract", code: scv.error().contractCode() }; default: { const err = scv.error(); return { - type: 'system', + type: "system", code: err.code().value, value: err.code().name }; @@ -414,8 +414,8 @@ xdr.scvSortedMap = (items) => { const nativeB = scValToNative(b.key()); switch (typeof nativeA) { - case 'number': - case 'bigint': + case "number": + case "bigint": return nativeA < nativeB ? -1 : 1; default: diff --git a/src/signerkey.js b/src/signerkey.js index 8512138ba..17e8abc89 100644 --- a/src/signerkey.js +++ b/src/signerkey.js @@ -1,5 +1,5 @@ -import xdr from './xdr'; -import { StrKey, encodeCheck, decodeCheck } from './strkey'; +import xdr from "./xdr"; +import { StrKey, encodeCheck, decodeCheck } from "./strkey"; /** * A container class with helpers to convert between signer keys @@ -36,7 +36,7 @@ export class SignerKey { const raw = decodeCheck(vb, address); switch (vb) { - case 'signedPayload': + case "signedPayload": return encoder( new xdr.SignerKeyEd25519SignedPayload({ ed25519: raw.slice(0, 32), @@ -44,9 +44,9 @@ export class SignerKey { }) ); - case 'ed25519PublicKey': // falls through - case 'preAuthTx': // falls through - case 'sha256Hash': // falls through + case "ed25519PublicKey": // falls through + case "preAuthTx": // falls through + case "sha256Hash": // falls through default: return encoder(raw); } @@ -64,23 +64,23 @@ export class SignerKey { switch (signerKey.switch()) { case xdr.SignerKeyType.signerKeyTypeEd25519(): - strkeyType = 'ed25519PublicKey'; + strkeyType = "ed25519PublicKey"; raw = signerKey.value(); break; case xdr.SignerKeyType.signerKeyTypePreAuthTx(): - strkeyType = 'preAuthTx'; + strkeyType = "preAuthTx"; raw = signerKey.value(); break; case xdr.SignerKeyType.signerKeyTypeHashX(): - strkeyType = 'sha256Hash'; + strkeyType = "sha256Hash"; raw = signerKey.value(); break; case xdr.SignerKeyType.signerKeyTypeEd25519SignedPayload(): - strkeyType = 'signedPayload'; - raw = signerKey.ed25519SignedPayload().toXDR('raw'); + strkeyType = "signedPayload"; + raw = signerKey.ed25519SignedPayload().toXDR("raw"); break; default: diff --git a/src/signing.js b/src/signing.js index 6bc47f0c9..18b7321fd 100644 --- a/src/signing.js +++ b/src/signing.js @@ -1,4 +1,4 @@ -import { ed25519 } from '@noble/curves/ed25519'; +import { ed25519 } from "@noble/curves/ed25519"; export function generate(secretKey) { return Buffer.from(ed25519.getPublicKey(secretKey)); diff --git a/src/soroban.js b/src/soroban.js index 1316bad49..1f2e25bea 100644 --- a/src/soroban.js +++ b/src/soroban.js @@ -18,28 +18,28 @@ export class Soroban { * formatTokenAmount("123", 3) === "0.123"; */ static formatTokenAmount(amount, decimals) { - if (amount.includes('.')) { - throw new TypeError('No decimals are allowed'); + if (amount.includes(".")) { + throw new TypeError("No decimals are allowed"); } let formatted = amount; if (decimals > 0) { if (decimals > formatted.length) { - formatted = ['0', formatted.toString().padStart(decimals, '0')].join( - '.' + formatted = ["0", formatted.toString().padStart(decimals, "0")].join( + "." ); } else { formatted = [ formatted.slice(0, -decimals), formatted.slice(-decimals) - ].join('.'); + ].join("."); } } return formatted - .replace(/(\.\d*?)0+$/, '$1') // strip trailing zeroes - .replace(/\.$/, '.0') // but keep at least one - .replace(/^\./, '0.'); // and a leading one + .replace(/(\.\d*?)0+$/, "$1") // strip trailing zeroes + .replace(/\.$/, ".0") // but keep at least one + .replace(/^\./, "0."); // and a leading one } /** @@ -63,14 +63,14 @@ export class Soroban { * parsedAmtForSmartContract === "12345600" */ static parseTokenAmount(value, decimals) { - const [whole, fraction, ...rest] = value.split('.').slice(); + const [whole, fraction, ...rest] = value.split(".").slice(); if (rest.length) { throw new Error(`Invalid decimal value: ${value}`); } const shifted = BigInt( - whole + (fraction?.padEnd(decimals, '0') ?? '0'.repeat(decimals)) + whole + (fraction?.padEnd(decimals, "0") ?? "0".repeat(decimals)) ); return shifted.toString(); diff --git a/src/sorobandata_builder.js b/src/sorobandata_builder.js index 49183154b..46505e718 100644 --- a/src/sorobandata_builder.js +++ b/src/sorobandata_builder.js @@ -1,4 +1,4 @@ -import xdr from './xdr'; +import xdr from "./xdr"; /** * Supports building {@link xdr.SorobanTransactionData} structures with various @@ -48,7 +48,7 @@ export class SorobanDataBuilder { resourceFee: new xdr.Int64(0) }); } else if ( - typeof sorobanData === 'string' || + typeof sorobanData === "string" || ArrayBuffer.isView(sorobanData) ) { data = SorobanDataBuilder.fromXDR(sorobanData); @@ -67,7 +67,7 @@ export class SorobanDataBuilder { static fromXDR(data) { return xdr.SorobanTransactionData.fromXDR( data, - typeof data === 'string' ? 'base64' : 'raw' + typeof data === "string" ? "base64" : "raw" ); } diff --git a/src/strkey.js b/src/strkey.js index 9b6d818af..7358afde4 100644 --- a/src/strkey.js +++ b/src/strkey.js @@ -1,7 +1,7 @@ /* eslint no-bitwise: ["error", {"allow": ["<<", ">>", "^", "&", "&="]}] */ -import base32 from 'base32.js'; -import { verifyChecksum } from './util/checksum'; +import base32 from "base32.js"; +import { verifyChecksum } from "./util/checksum"; const versionBytes = { ed25519PublicKey: 6 << 3, // G (when encoded in base32) @@ -16,15 +16,15 @@ const versionBytes = { }; const strkeyTypes = { - G: 'ed25519PublicKey', - S: 'ed25519SecretSeed', - M: 'med25519PublicKey', - T: 'preAuthTx', - X: 'sha256Hash', - P: 'signedPayload', - C: 'contract', - L: 'liquidityPool', - B: 'claimableBalance' + G: "ed25519PublicKey", + S: "ed25519SecretSeed", + M: "med25519PublicKey", + T: "preAuthTx", + X: "sha256Hash", + P: "signedPayload", + C: "contract", + L: "liquidityPool", + B: "claimableBalance" }; /** @@ -42,7 +42,7 @@ export class StrKey { * @returns {string} "G..." representation of the key */ static encodeEd25519PublicKey(data) { - return encodeCheck('ed25519PublicKey', data); + return encodeCheck("ed25519PublicKey", data); } /** @@ -55,7 +55,7 @@ export class StrKey { * @returns {Buffer} raw key */ static decodeEd25519PublicKey(data) { - return decodeCheck('ed25519PublicKey', data); + return decodeCheck("ed25519PublicKey", data); } /** @@ -64,7 +64,7 @@ export class StrKey { * @returns {boolean} */ static isValidEd25519PublicKey(publicKey) { - return isValid('ed25519PublicKey', publicKey); + return isValid("ed25519PublicKey", publicKey); } /** @@ -73,7 +73,7 @@ export class StrKey { * @returns {string} */ static encodeEd25519SecretSeed(data) { - return encodeCheck('ed25519SecretSeed', data); + return encodeCheck("ed25519SecretSeed", data); } /** @@ -82,7 +82,7 @@ export class StrKey { * @returns {Buffer} */ static decodeEd25519SecretSeed(address) { - return decodeCheck('ed25519SecretSeed', address); + return decodeCheck("ed25519SecretSeed", address); } /** @@ -91,7 +91,7 @@ export class StrKey { * @returns {boolean} */ static isValidEd25519SecretSeed(seed) { - return isValid('ed25519SecretSeed', seed); + return isValid("ed25519SecretSeed", seed); } /** @@ -100,7 +100,7 @@ export class StrKey { * @returns {string} */ static encodeMed25519PublicKey(data) { - return encodeCheck('med25519PublicKey', data); + return encodeCheck("med25519PublicKey", data); } /** @@ -109,7 +109,7 @@ export class StrKey { * @returns {Buffer} */ static decodeMed25519PublicKey(address) { - return decodeCheck('med25519PublicKey', address); + return decodeCheck("med25519PublicKey", address); } /** @@ -118,7 +118,7 @@ export class StrKey { * @returns {boolean} */ static isValidMed25519PublicKey(publicKey) { - return isValid('med25519PublicKey', publicKey); + return isValid("med25519PublicKey", publicKey); } /** @@ -127,7 +127,7 @@ export class StrKey { * @returns {string} */ static encodePreAuthTx(data) { - return encodeCheck('preAuthTx', data); + return encodeCheck("preAuthTx", data); } /** @@ -136,7 +136,7 @@ export class StrKey { * @returns {Buffer} */ static decodePreAuthTx(address) { - return decodeCheck('preAuthTx', address); + return decodeCheck("preAuthTx", address); } /** @@ -145,7 +145,7 @@ export class StrKey { * @returns {string} */ static encodeSha256Hash(data) { - return encodeCheck('sha256Hash', data); + return encodeCheck("sha256Hash", data); } /** @@ -154,7 +154,7 @@ export class StrKey { * @returns {Buffer} */ static decodeSha256Hash(address) { - return decodeCheck('sha256Hash', address); + return decodeCheck("sha256Hash", address); } /** @@ -163,7 +163,7 @@ export class StrKey { * @returns {string} */ static encodeSignedPayload(data) { - return encodeCheck('signedPayload', data); + return encodeCheck("signedPayload", data); } /** @@ -172,7 +172,7 @@ export class StrKey { * @returns {Buffer} */ static decodeSignedPayload(address) { - return decodeCheck('signedPayload', address); + return decodeCheck("signedPayload", address); } /** @@ -181,7 +181,7 @@ export class StrKey { * @returns {boolean} */ static isValidSignedPayload(address) { - return isValid('signedPayload', address); + return isValid("signedPayload", address); } /** @@ -190,7 +190,7 @@ export class StrKey { * @returns {string} */ static encodeContract(data) { - return encodeCheck('contract', data); + return encodeCheck("contract", data); } /** @@ -199,7 +199,7 @@ export class StrKey { * @returns {Buffer} */ static decodeContract(address) { - return decodeCheck('contract', address); + return decodeCheck("contract", address); } /** @@ -208,7 +208,7 @@ export class StrKey { * @returns {boolean} */ static isValidContract(address) { - return isValid('contract', address); + return isValid("contract", address); } /** @@ -217,7 +217,7 @@ export class StrKey { * @returns {string} */ static encodeClaimableBalance(data) { - return encodeCheck('claimableBalance', data); + return encodeCheck("claimableBalance", data); } /** @@ -226,7 +226,7 @@ export class StrKey { * @returns {Buffer} */ static decodeClaimableBalance(address) { - return decodeCheck('claimableBalance', address); + return decodeCheck("claimableBalance", address); } /** @@ -235,7 +235,7 @@ export class StrKey { * @returns {boolean} */ static isValidClaimableBalance(address) { - return isValid('claimableBalance', address); + return isValid("claimableBalance", address); } /** @@ -244,7 +244,7 @@ export class StrKey { * @returns {string} */ static encodeLiquidityPool(data) { - return encodeCheck('liquidityPool', data); + return encodeCheck("liquidityPool", data); } /** @@ -253,7 +253,7 @@ export class StrKey { * @returns {Buffer} */ static decodeLiquidityPool(address) { - return decodeCheck('liquidityPool', address); + return decodeCheck("liquidityPool", address); } /** @@ -262,7 +262,7 @@ export class StrKey { * @returns {boolean} */ static isValidLiquidityPool(address) { - return isValid('liquidityPool', address); + return isValid("liquidityPool", address); } static getVersionByteForPrefix(address) { @@ -284,36 +284,36 @@ export class StrKey { * and (c) output length. */ function isValid(versionByteName, encoded) { - if (typeof encoded !== 'string') { + if (typeof encoded !== "string") { return false; } // basic length checks on the strkey lengths switch (versionByteName) { - case 'ed25519PublicKey': // falls through - case 'ed25519SecretSeed': // falls through - case 'preAuthTx': // falls through - case 'sha256Hash': // falls through - case 'contract': // falls through - case 'liquidityPool': + case "ed25519PublicKey": // falls through + case "ed25519SecretSeed": // falls through + case "preAuthTx": // falls through + case "sha256Hash": // falls through + case "contract": // falls through + case "liquidityPool": if (encoded.length !== 56) { return false; } break; - case 'claimableBalance': + case "claimableBalance": if (encoded.length !== 58) { return false; } break; - case 'med25519PublicKey': + case "med25519PublicKey": if (encoded.length !== 69) { return false; } break; - case 'signedPayload': + case "signedPayload": if (encoded.length < 56 || encoded.length > 165) { return false; } @@ -323,7 +323,7 @@ function isValid(versionByteName, encoded) { return false; } - let decoded = ''; + let decoded = ""; try { decoded = decodeCheck(versionByteName, encoded); } catch (err) { @@ -332,21 +332,21 @@ function isValid(versionByteName, encoded) { // basic length checks on the resulting buffer sizes switch (versionByteName) { - case 'ed25519PublicKey': // falls through - case 'ed25519SecretSeed': // falls through - case 'preAuthTx': // falls through - case 'sha256Hash': // falls through - case 'contract': - case 'liquidityPool': + case "ed25519PublicKey": // falls through + case "ed25519SecretSeed": // falls through + case "preAuthTx": // falls through + case "sha256Hash": // falls through + case "contract": + case "liquidityPool": return decoded.length === 32; - case 'claimableBalance': + case "claimableBalance": return decoded.length === 32 + 1; // +1 byte for discriminant - case 'med25519PublicKey': + case "med25519PublicKey": return decoded.length === 40; // +8 bytes for the ID - case 'signedPayload': + case "signedPayload": return ( // 32 for the signer, +4 for the payload size, then either +4 for the // min or +64 for the max payload @@ -359,8 +359,8 @@ function isValid(versionByteName, encoded) { } export function decodeCheck(versionByteName, encoded) { - if (typeof encoded !== 'string') { - throw new TypeError('encoded argument must be of type String'); + if (typeof encoded !== "string") { + throw new TypeError("encoded argument must be of type String"); } const decoded = base32.decode(encoded); @@ -370,7 +370,7 @@ export function decodeCheck(versionByteName, encoded) { const checksum = decoded.slice(-2); if (encoded !== base32.encode(decoded)) { - throw new Error('invalid encoded string'); + throw new Error("invalid encoded string"); } const expectedVersion = versionBytes[versionByteName]; @@ -378,7 +378,7 @@ export function decodeCheck(versionByteName, encoded) { if (expectedVersion === undefined) { throw new Error( `${versionByteName} is not a valid version byte name. ` + - `Expected one of ${Object.keys(versionBytes).join(', ')}` + `Expected one of ${Object.keys(versionBytes).join(", ")}` ); } @@ -399,7 +399,7 @@ export function decodeCheck(versionByteName, encoded) { export function encodeCheck(versionByteName, data) { if (data === null || data === undefined) { - throw new Error('cannot encode null data'); + throw new Error("cannot encode null data"); } const versionByte = versionBytes[versionByteName]; @@ -407,7 +407,7 @@ export function encodeCheck(versionByteName, data) { if (versionByte === undefined) { throw new Error( `${versionByteName} is not a valid version byte name. ` + - `Expected one of ${Object.keys(versionBytes).join(', ')}` + `Expected one of ${Object.keys(versionBytes).join(", ")}` ); } data = Buffer.from(data); diff --git a/src/transaction.js b/src/transaction.js index 5a0ecab9c..f8a8e98cb 100644 --- a/src/transaction.js +++ b/src/transaction.js @@ -1,14 +1,14 @@ -import xdr from './xdr'; -import { hash } from './hashing'; +import xdr from "./xdr"; +import { hash } from "./hashing"; -import { StrKey } from './strkey'; -import { Operation } from './operation'; -import { Memo } from './memo'; -import { TransactionBase } from './transaction_base'; +import { StrKey } from "./strkey"; +import { Operation } from "./operation"; +import { Memo } from "./memo"; +import { TransactionBase } from "./transaction_base"; import { extractBaseAddress, encodeMuxedAccountToAddress -} from './util/decode_encode_muxed_account'; +} from "./util/decode_encode_muxed_account"; /** * Use {@link TransactionBuilder} to build a transaction object. If you have an @@ -31,8 +31,8 @@ import { */ export class Transaction extends TransactionBase { constructor(envelope, networkPassphrase) { - if (typeof envelope === 'string') { - const buffer = Buffer.from(envelope, 'base64'); + if (typeof envelope === "string") { + const buffer = Buffer.from(envelope, "base64"); envelope = xdr.TransactionEnvelope.fromXDR(buffer); } @@ -137,7 +137,7 @@ export class Transaction extends TransactionBase { return this._timeBounds; } set timeBounds(value) { - throw new Error('Transaction is immutable'); + throw new Error("Transaction is immutable"); } /** @@ -150,7 +150,7 @@ export class Transaction extends TransactionBase { return this._ledgerBounds; } set ledgerBounds(value) { - throw new Error('Transaction is immutable'); + throw new Error("Transaction is immutable"); } /** @@ -162,7 +162,7 @@ export class Transaction extends TransactionBase { return this._minAccountSequence; } set minAccountSequence(value) { - throw new Error('Transaction is immutable'); + throw new Error("Transaction is immutable"); } /** @@ -174,7 +174,7 @@ export class Transaction extends TransactionBase { return this._minAccountSequenceAge; } set minAccountSequenceAge(value) { - throw new Error('Transaction is immutable'); + throw new Error("Transaction is immutable"); } /** @@ -186,7 +186,7 @@ export class Transaction extends TransactionBase { return this._minAccountSequenceLedgerGap; } set minAccountSequenceLedgerGap(value) { - throw new Error('Transaction is immutable'); + throw new Error("Transaction is immutable"); } /** @@ -198,7 +198,7 @@ export class Transaction extends TransactionBase { return this._extraSigners; } set extraSigners(value) { - throw new Error('Transaction is immutable'); + throw new Error("Transaction is immutable"); } /** @@ -209,7 +209,7 @@ export class Transaction extends TransactionBase { return this._sequence; } set sequence(value) { - throw new Error('Transaction is immutable'); + throw new Error("Transaction is immutable"); } /** @@ -220,7 +220,7 @@ export class Transaction extends TransactionBase { return this._source; } set source(value) { - throw new Error('Transaction is immutable'); + throw new Error("Transaction is immutable"); } /** @@ -231,7 +231,7 @@ export class Transaction extends TransactionBase { return this._operations; } set operations(value) { - throw new Error('Transaction is immutable'); + throw new Error("Transaction is immutable"); } /** @@ -242,7 +242,7 @@ export class Transaction extends TransactionBase { return Memo.fromXDRObject(this._memo); } set memo(value) { - throw new Error('Transaction is immutable'); + throw new Error("Transaction is immutable"); } /** @@ -337,7 +337,7 @@ export class Transaction extends TransactionBase { opIndex < 0 || opIndex >= this.operations.length ) { - throw new RangeError('invalid operation index'); + throw new RangeError("invalid operation index"); } let op = this.operations[opIndex]; @@ -361,8 +361,8 @@ export class Transaction extends TransactionBase { }) ); - const opIdHash = hash(operationId.toXDR('raw')); + const opIdHash = hash(operationId.toXDR("raw")); const balanceId = xdr.ClaimableBalanceId.claimableBalanceIdTypeV0(opIdHash); - return balanceId.toXDR('hex'); + return balanceId.toXDR("hex"); } } diff --git a/src/transaction_base.js b/src/transaction_base.js index 7ba4339e7..ed223eb38 100644 --- a/src/transaction_base.js +++ b/src/transaction_base.js @@ -1,13 +1,13 @@ -import xdr from './xdr'; -import { hash } from './hashing'; -import { Keypair } from './keypair'; +import xdr from "./xdr"; +import { hash } from "./hashing"; +import { Keypair } from "./keypair"; /** * @ignore */ export class TransactionBase { constructor(tx, signatures, fee, networkPassphrase) { - if (typeof networkPassphrase !== 'string') { + if (typeof networkPassphrase !== "string") { throw new Error( `Invalid passphrase provided to Transaction: expected a string but got a ${typeof networkPassphrase}` ); @@ -28,7 +28,7 @@ export class TransactionBase { } set signatures(value) { - throw new Error('Transaction is immutable'); + throw new Error("Transaction is immutable"); } get tx() { @@ -36,7 +36,7 @@ export class TransactionBase { } set tx(value) { - throw new Error('Transaction is immutable'); + throw new Error("Transaction is immutable"); } /** @@ -48,7 +48,7 @@ export class TransactionBase { } set fee(value) { - throw new Error('Transaction is immutable'); + throw new Error("Transaction is immutable"); } /** @@ -99,7 +99,7 @@ export class TransactionBase { * @returns {string} Signature string */ getKeypairSignature(keypair) { - return keypair.sign(this.hash()).toString('base64'); + return keypair.sign(this.hash()).toString("base64"); } /** @@ -126,28 +126,28 @@ export class TransactionBase { * @param {string} signature The base64 value of the signature XDR * @returns {void} */ - addSignature(publicKey = '', signature = '') { - if (!signature || typeof signature !== 'string') { - throw new Error('Invalid signature'); + addSignature(publicKey = "", signature = "") { + if (!signature || typeof signature !== "string") { + throw new Error("Invalid signature"); } - if (!publicKey || typeof publicKey !== 'string') { - throw new Error('Invalid publicKey'); + if (!publicKey || typeof publicKey !== "string") { + throw new Error("Invalid publicKey"); } let keypair; let hint; - const signatureBuffer = Buffer.from(signature, 'base64'); + const signatureBuffer = Buffer.from(signature, "base64"); try { keypair = Keypair.fromPublicKey(publicKey); hint = keypair.signatureHint(); } catch (e) { - throw new Error('Invalid publicKey'); + throw new Error("Invalid publicKey"); } if (!keypair.verify(this.hash(), signatureBuffer)) { - throw new Error('Invalid signature'); + throw new Error("Invalid signature"); } this.signatures.push( @@ -177,12 +177,12 @@ export class TransactionBase { * @returns {void} */ signHashX(preimage) { - if (typeof preimage === 'string') { - preimage = Buffer.from(preimage, 'hex'); + if (typeof preimage === "string") { + preimage = Buffer.from(preimage, "hex"); } if (preimage.length > 64) { - throw new Error('preimage cannnot be longer than 64 bytes'); + throw new Error("preimage cannnot be longer than 64 bytes"); } const signature = preimage; @@ -200,11 +200,11 @@ export class TransactionBase { } signatureBase() { - throw new Error('Implement in subclass'); + throw new Error("Implement in subclass"); } toEnvelope() { - throw new Error('Implement in subclass'); + throw new Error("Implement in subclass"); } /** @@ -212,6 +212,6 @@ export class TransactionBase { * @returns {string} XDR string */ toXDR() { - return this.toEnvelope().toXDR().toString('base64'); + return this.toEnvelope().toXDR().toString("base64"); } } diff --git a/src/transaction_builder.js b/src/transaction_builder.js index cf90d23ff..08440c5d7 100644 --- a/src/transaction_builder.js +++ b/src/transaction_builder.js @@ -1,19 +1,19 @@ -import { UnsignedHyper } from '@stellar/js-xdr'; -import BigNumber from './util/bignumber'; +import { UnsignedHyper } from "@stellar/js-xdr"; +import BigNumber from "./util/bignumber"; -import xdr from './xdr'; +import xdr from "./xdr"; -import { Account } from './account'; -import { MuxedAccount } from './muxed_account'; -import { decodeAddressToMuxedAccount } from './util/decode_encode_muxed_account'; +import { Account } from "./account"; +import { MuxedAccount } from "./muxed_account"; +import { decodeAddressToMuxedAccount } from "./util/decode_encode_muxed_account"; -import { Transaction } from './transaction'; -import { FeeBumpTransaction } from './fee_bump_transaction'; -import { SorobanDataBuilder } from './sorobandata_builder'; +import { Transaction } from "./transaction"; +import { FeeBumpTransaction } from "./fee_bump_transaction"; +import { SorobanDataBuilder } from "./sorobandata_builder"; -import { StrKey } from './strkey'; -import { SignerKey } from './signerkey'; -import { Memo } from './memo'; +import { StrKey } from "./strkey"; +import { SignerKey } from "./signerkey"; +import { Memo } from "./memo"; /** * Minimum base fee for transactions. If this fee is below the network @@ -25,7 +25,7 @@ import { Memo } from './memo'; * @constant * @see [Fees](https://developers.stellar.org/docs/glossary/fees/) */ -export const BASE_FEE = '100'; // Stroops +export const BASE_FEE = "100"; // Stroops /** * @constant @@ -126,11 +126,11 @@ export const TimeoutInfinite = 0; export class TransactionBuilder { constructor(sourceAccount, opts = {}) { if (!sourceAccount) { - throw new Error('must specify source account for the transaction'); + throw new Error("must specify source account for the transaction"); } if (opts.fee === undefined) { - throw new Error('must specify fee for the transaction (in stroops)'); + throw new Error("must specify fee for the transaction (in stroops)"); } this.source = sourceAccount; @@ -306,12 +306,12 @@ export class TransactionBuilder { setTimeout(timeoutSeconds) { if (this.timebounds !== null && this.timebounds.maxTime > 0) { throw new Error( - 'TimeBounds.max_time has been already set - setting timeout would overwrite it.' + "TimeBounds.max_time has been already set - setting timeout would overwrite it." ); } if (timeoutSeconds < 0) { - throw new Error('timeout cannot be negative'); + throw new Error("timeout cannot be negative"); } if (timeoutSeconds > 0) { @@ -353,16 +353,16 @@ export class TransactionBuilder { */ setTimebounds(minEpochOrDate, maxEpochOrDate) { // Force it to a date type - if (typeof minEpochOrDate === 'number') { + if (typeof minEpochOrDate === "number") { minEpochOrDate = new Date(minEpochOrDate * 1000); } - if (typeof maxEpochOrDate === 'number') { + if (typeof maxEpochOrDate === "number") { maxEpochOrDate = new Date(maxEpochOrDate * 1000); } if (this.timebounds !== null) { throw new Error( - 'TimeBounds has been already set - setting timebounds would overwrite it.' + "TimeBounds has been already set - setting timebounds would overwrite it." ); } @@ -370,13 +370,13 @@ export class TransactionBuilder { const minTime = Math.floor(minEpochOrDate.valueOf() / 1000); const maxTime = Math.floor(maxEpochOrDate.valueOf() / 1000); if (minTime < 0) { - throw new Error('min_time cannot be negative'); + throw new Error("min_time cannot be negative"); } if (maxTime < 0) { - throw new Error('max_time cannot be negative'); + throw new Error("max_time cannot be negative"); } if (maxTime > 0 && minTime > maxTime) { - throw new Error('min_time cannot be greater than max_time'); + throw new Error("min_time cannot be greater than max_time"); } this.timebounds = { minTime, maxTime }; @@ -402,18 +402,18 @@ export class TransactionBuilder { setLedgerbounds(minLedger, maxLedger) { if (this.ledgerbounds !== null) { throw new Error( - 'LedgerBounds has been already set - setting ledgerbounds would overwrite it.' + "LedgerBounds has been already set - setting ledgerbounds would overwrite it." ); } if (minLedger < 0) { - throw new Error('min_ledger cannot be negative'); + throw new Error("min_ledger cannot be negative"); } if (maxLedger < 0) { - throw new Error('max_ledger cannot be negative'); + throw new Error("max_ledger cannot be negative"); } if (maxLedger > 0 && minLedger > maxLedger) { - throw new Error('min_ledger cannot be greater than max_ledger'); + throw new Error("min_ledger cannot be greater than max_ledger"); } this.ledgerbounds = { minLedger, maxLedger }; @@ -441,7 +441,7 @@ export class TransactionBuilder { setMinAccountSequence(minAccountSequence) { if (this.minAccountSequence !== null) { throw new Error( - 'min_account_sequence has been already set - setting min_account_sequence would overwrite it.' + "min_account_sequence has been already set - setting min_account_sequence would overwrite it." ); } @@ -463,17 +463,17 @@ export class TransactionBuilder { * @returns {TransactionBuilder} */ setMinAccountSequenceAge(durationInSeconds) { - if (typeof durationInSeconds !== 'number') { - throw new Error('min_account_sequence_age must be a number'); + if (typeof durationInSeconds !== "number") { + throw new Error("min_account_sequence_age must be a number"); } if (this.minAccountSequenceAge !== null) { throw new Error( - 'min_account_sequence_age has been already set - setting min_account_sequence_age would overwrite it.' + "min_account_sequence_age has been already set - setting min_account_sequence_age would overwrite it." ); } if (durationInSeconds < 0) { - throw new Error('min_account_sequence_age cannot be negative'); + throw new Error("min_account_sequence_age cannot be negative"); } this.minAccountSequenceAge = durationInSeconds; @@ -496,12 +496,12 @@ export class TransactionBuilder { setMinAccountSequenceLedgerGap(gap) { if (this.minAccountSequenceLedgerGap !== null) { throw new Error( - 'min_account_sequence_ledger_gap has been already set - setting min_account_sequence_ledger_gap would overwrite it.' + "min_account_sequence_ledger_gap has been already set - setting min_account_sequence_ledger_gap would overwrite it." ); } if (gap < 0) { - throw new Error('min_account_sequence_ledger_gap cannot be negative'); + throw new Error("min_account_sequence_ledger_gap cannot be negative"); } this.minAccountSequenceLedgerGap = gap; @@ -521,17 +521,17 @@ export class TransactionBuilder { */ setExtraSigners(extraSigners) { if (!Array.isArray(extraSigners)) { - throw new Error('extra_signers must be an array of strings.'); + throw new Error("extra_signers must be an array of strings."); } if (this.extraSigners !== null) { throw new Error( - 'extra_signers has been already set - setting extra_signers would overwrite it.' + "extra_signers has been already set - setting extra_signers would overwrite it." ); } if (extraSigners.length > 2) { - throw new Error('extra_signers cannot be longer than 2 elements.'); + throw new Error("extra_signers cannot be longer than 2 elements."); } this.extraSigners = [...extraSigners]; @@ -594,11 +594,11 @@ export class TransactionBuilder { if ( this.timebounds === null || - typeof this.timebounds.minTime === 'undefined' || - typeof this.timebounds.maxTime === 'undefined' + typeof this.timebounds.minTime === "undefined" || + typeof this.timebounds.maxTime === "undefined" ) { throw new Error( - 'TimeBounds has to be set or you must call setTimeout(TimeoutInfinite).' + "TimeBounds has to be set or you must call setTimeout(TimeoutInfinite)." ); } @@ -624,13 +624,13 @@ export class TransactionBuilder { ledgerBounds = new xdr.LedgerBounds(this.ledgerbounds); } - let minSeqNum = this.minAccountSequence || '0'; + let minSeqNum = this.minAccountSequence || "0"; minSeqNum = xdr.SequenceNumber.fromString(minSeqNum); const minSeqAge = UnsignedHyper.fromString( this.minAccountSequenceAge !== null ? this.minAccountSequenceAge.toString() - : '0' + : "0" ); const minSeqLedgerGap = this.minAccountSequenceLedgerGap || 0; @@ -782,7 +782,7 @@ export class TransactionBuilder { } let feeSourceAccount; - if (typeof feeSource === 'string') { + if (typeof feeSource === "string") { feeSourceAccount = decodeAddressToMuxedAccount(feeSource); } else { feeSourceAccount = feeSource.xdrMuxedAccount(); @@ -825,8 +825,8 @@ export class TransactionBuilder { * @returns {Transaction|FeeBumpTransaction} */ static fromXDR(envelope, networkPassphrase) { - if (typeof envelope === 'string') { - envelope = xdr.TransactionEnvelope.fromXDR(envelope, 'base64'); + if (typeof envelope === "string") { + envelope = xdr.TransactionEnvelope.fromXDR(envelope, "base64"); } if (envelope.switch() === xdr.EnvelopeType.envelopeTypeTxFeeBump()) { @@ -844,6 +844,5 @@ export class TransactionBuilder { */ export function isValidDate(d) { // isnan is okay here because it correctly checks for invalid date objects - // eslint-disable-next-line no-restricted-globals return d instanceof Date && !isNaN(d); } diff --git a/src/util/bignumber.js b/src/util/bignumber.js index 69e7aa39a..6eb006b81 100644 --- a/src/util/bignumber.js +++ b/src/util/bignumber.js @@ -1,4 +1,4 @@ -import OriginBigNumber from 'bignumber.js'; +import OriginBigNumber from "bignumber.js"; const BigNumber = OriginBigNumber.clone(); diff --git a/src/util/checksum.js b/src/util/checksum.ts similarity index 73% rename from src/util/checksum.js rename to src/util/checksum.ts index 4358eb761..8b8d71e35 100644 --- a/src/util/checksum.js +++ b/src/util/checksum.ts @@ -1,4 +1,7 @@ -export function verifyChecksum(expected, actual) { +export function verifyChecksum( + expected: Uint8Array, + actual: Uint8Array +): boolean { if (expected.length !== actual.length) { return false; } diff --git a/src/util/continued_fraction.js b/src/util/continued_fraction.js index 0cf8b56bf..062ff65d8 100644 --- a/src/util/continued_fraction.js +++ b/src/util/continued_fraction.js @@ -1,6 +1,5 @@ -import BigNumber from './bignumber'; +import BigNumber from "./bignumber"; -// eslint-disable-next-line no-bitwise const MAX_INT = ((1 << 31) >>> 0) - 1; /** @@ -20,7 +19,6 @@ export function best_r(rawNumber) { ]; let i = 2; - // eslint-disable-next-line no-constant-condition while (true) { if (number.gt(MAX_INT)) { break; diff --git a/src/util/decode_encode_muxed_account.js b/src/util/decode_encode_muxed_account.js index 927fcf293..1dd63bf46 100644 --- a/src/util/decode_encode_muxed_account.js +++ b/src/util/decode_encode_muxed_account.js @@ -1,5 +1,5 @@ -import xdr from '../xdr'; -import { StrKey } from '../strkey'; +import xdr from "../xdr"; +import { StrKey } from "../strkey"; /** * Converts a Stellar address (in G... or M... form) to an `xdr.MuxedAccount` @@ -54,10 +54,10 @@ export function encodeMuxedAccountToAddress(muxedAccount) { */ export function encodeMuxedAccount(address, id) { if (!StrKey.isValidEd25519PublicKey(address)) { - throw new Error('address should be a Stellar account ID (G...)'); + throw new Error("address should be a Stellar account ID (G...)"); } - if (typeof id !== 'string') { - throw new Error('id should be a string representing a number (uint64)'); + if (typeof id !== "string") { + throw new Error("id should be a string representing a number (uint64)"); } return xdr.MuxedAccount.keyTypeMuxedEd25519( @@ -119,6 +119,6 @@ function _encodeMuxedAccountFullyToAddress(muxedAccount) { const muxed = muxedAccount.med25519(); return StrKey.encodeMed25519PublicKey( - Buffer.concat([muxed.ed25519(), muxed.id().toXDR('raw')]) + Buffer.concat([muxed.ed25519(), muxed.id().toXDR("raw")]) ); } diff --git a/src/util/util.js b/src/util/util.js index b8cd0b1f5..41c129fbe 100644 --- a/src/util/util.js +++ b/src/util/util.js @@ -1,5 +1,5 @@ export const trimEnd = (input, char) => { - const isNumber = typeof input === 'number'; + const isNumber = typeof input === "number"; let str = String(input); while (str.endsWith(char)) { diff --git a/src/xdr.js b/src/xdr.js index d97dbe299..763f7c0d4 100644 --- a/src/xdr.js +++ b/src/xdr.js @@ -1,3 +1,3 @@ -import xdr from './generated/curr_generated'; +import xdr from "./generated/curr_generated"; export default xdr; diff --git a/test/.eslintrc.js b/test/.eslintrc.js index 52cff7394..43d9ff5fc 100644 --- a/test/.eslintrc.js +++ b/test/.eslintrc.js @@ -2,8 +2,8 @@ module.exports = { env: { mocha: true }, - parser: '@babel/eslint-parser', - plugins: ['@babel', 'prettier', 'prefer-import'], + parser: "@babel/eslint-parser", + plugins: ["@babel", "prettier", "prefer-import"], globals: { StellarBase: true, chai: true, @@ -11,6 +11,6 @@ module.exports = { expect: true }, rules: { - 'no-unused-vars': 0 + "no-unused-vars": 0 } }; diff --git a/test/test-helper-browser.js b/test/test-helper-browser.js new file mode 100644 index 000000000..7199bce43 --- /dev/null +++ b/test/test-helper-browser.js @@ -0,0 +1,3 @@ +if (typeof window !== "undefined") { + chai.use(require("chai-as-promised")); +} diff --git a/test/test-helper.js b/test/test-helper.js index 63eb6b715..d811b3c00 100644 --- a/test/test-helper.js +++ b/test/test-helper.js @@ -1,10 +1,31 @@ -if (typeof window === 'undefined') { - require('@babel/register'); - global.StellarBase = require('../src/index'); - global.chai = require('chai'); - global.chai.use(require('chai-as-promised')); - global.sinon = require('sinon'); +// Patch require to resolve .js imports to .ts files when the .js doesn't exist +const Module = require("module"); +const originalResolveFilename = Module._resolveFilename; +Module._resolveFilename = function (request, parent, ...args) { + try { + return originalResolveFilename.call(this, request, parent, ...args); + } catch (err) { + if (request.endsWith(".js")) { + return originalResolveFilename.call( + this, + request.replace(/\.js$/, ".ts"), + parent, + ...args + ); + } + throw err; + } +}; + +if (typeof window === "undefined") { + require("ts-node").register({ + project: "tsconfig.cjs.json", + files: true, + transpileOnly: true + }); + global.StellarBase = require("../src/index"); + global.chai = require("chai"); + global.chai.use(require("chai-as-promised")); + global.sinon = require("sinon"); global.expect = global.chai.expect; -} else { - chai.use(require('chai-as-promised')); } diff --git a/test/unit/account_test.js b/test/unit/account_test.js index 9558c6272..461ce3ec1 100644 --- a/test/unit/account_test.js +++ b/test/unit/account_test.js @@ -1,48 +1,48 @@ -describe('Account.constructor', function () { - const ACCOUNT = 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB'; +describe("Account.constructor", function () { + const ACCOUNT = "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB"; const MUXED_ADDRESS = - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK'; + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK"; const UNDERLYING_ACCOUNT = - 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ'; + "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ"; - it('fails to create Account object from an invalid address', function () { - expect(() => new StellarBase.Account('GBBB')).to.throw( + it("fails to create Account object from an invalid address", function () { + expect(() => new StellarBase.Account("GBBB")).to.throw( /accountId is invalid/ ); }); - it('fails to create Account object from an invalid sequence number', function () { + it("fails to create Account object from an invalid sequence number", function () { expect(() => new StellarBase.Account(ACCOUNT, 100)).to.throw( /sequence must be of type string/ ); - expect(() => new StellarBase.Account(ACCOUNT, 'not a number')).to.throw( + expect(() => new StellarBase.Account(ACCOUNT, "not a number")).to.throw( /not a number/ ); }); - it('creates an Account object', function () { - let account = new StellarBase.Account(ACCOUNT, '100'); + it("creates an Account object", function () { + let account = new StellarBase.Account(ACCOUNT, "100"); expect(account.accountId()).to.equal(ACCOUNT); - expect(account.sequenceNumber()).to.equal('100'); + expect(account.sequenceNumber()).to.equal("100"); }); - it('wont create Account objects from muxed account strings', function () { + it("wont create Account objects from muxed account strings", function () { expect(() => { - new StellarBase.Account(MUXED_ADDRESS, '123'); + new StellarBase.Account(MUXED_ADDRESS, "123"); }).to.throw(/MuxedAccount/); }); }); -describe('Account.incrementSequenceNumber', function () { - it('correctly increments the sequence number', function () { +describe("Account.incrementSequenceNumber", function () { + it("correctly increments the sequence number", function () { let account = new StellarBase.Account( - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB', - '100' + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB", + "100" ); account.incrementSequenceNumber(); - expect(account.sequenceNumber()).to.equal('101'); + expect(account.sequenceNumber()).to.equal("101"); account.incrementSequenceNumber(); account.incrementSequenceNumber(); - expect(account.sequenceNumber()).to.equal('103'); + expect(account.sequenceNumber()).to.equal("103"); }); }); diff --git a/test/unit/address_test.js b/test/unit/address_test.js index f503c3c3e..9a19b8907 100644 --- a/test/unit/address_test.js +++ b/test/unit/address_test.js @@ -1,11 +1,11 @@ -describe('Address', function () { - const ACCOUNT = 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB'; - const CONTRACT = 'CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE'; +describe("Address", function () { + const ACCOUNT = "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB"; + const CONTRACT = "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE"; const MUXED_ADDRESS = - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK'; - const MUXED_ADDRESS_ID = '9223372036854775808'; + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK"; + const MUXED_ADDRESS_ID = "9223372036854775808"; const MUXED_ADDRESS_BASE = - 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ'; + "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ"; const MUXED_ZERO = StellarBase.StrKey.encodeMed25519PublicKey( Buffer.alloc(40) @@ -17,9 +17,9 @@ describe('Address', function () { Buffer.alloc(32) ); - describe('.constructor', function () { - it('fails to create Address object from an invalid address', function () { - expect(() => new StellarBase.Address('GBBB')).to.throw( + describe(".constructor", function () { + it("fails to create Address object from an invalid address", function () { + expect(() => new StellarBase.Address("GBBB")).to.throw( /Unsupported address type/ ); }); @@ -38,43 +38,43 @@ describe('Address', function () { }); }); - describe('static constructors', function () { - it('.fromString', function () { + describe("static constructors", function () { + it(".fromString", function () { const a = StellarBase.Address.fromString(ACCOUNT); expect(a.toString()).to.equal(ACCOUNT); }); - it('.account', function () { + it(".account", function () { const a = StellarBase.Address.account(Buffer.alloc(32)); expect(a.toString()).to.equal( - 'GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF' + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF" ); }); - it('.contract', function () { + it(".contract", function () { const c = StellarBase.Address.contract(Buffer.alloc(32)); expect(c.toString()).to.equal( - 'CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4' + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4" ); }); - it('.muxedAccount', function () { + it(".muxedAccount", function () { const m = StellarBase.Address.muxedAccount(Buffer.alloc(40)); expect(m.toString()).to.equal(MUXED_ZERO); }); - it('.claimableBalance', function () { + it(".claimableBalance", function () { const cb = StellarBase.Address.claimableBalance(Buffer.alloc(33)); expect(cb.toString()).to.equal(CLAIMABLE_BALANCE_ZERO); }); - it('.liquidityPool', function () { + it(".liquidityPool", function () { const lp = StellarBase.Address.liquidityPool(Buffer.alloc(32)); expect(lp.toString()).to.equal(LIQUIDITY_POOL_ZERO); }); - describe('.fromScAddress', function () { - it('parses account addresses', function () { + describe(".fromScAddress", function () { + it("parses account addresses", function () { const sc = StellarBase.xdr.ScAddress.scAddressTypeAccount( StellarBase.xdr.PublicKey.publicKeyTypeEd25519( StellarBase.StrKey.decodeEd25519PublicKey(ACCOUNT) @@ -84,7 +84,7 @@ describe('Address', function () { expect(a.toString()).to.equal(ACCOUNT); }); - it('parses contract addresses', function () { + it("parses contract addresses", function () { const sc = StellarBase.xdr.ScAddress.scAddressTypeContract( StellarBase.StrKey.decodeContract(CONTRACT) ); @@ -92,7 +92,7 @@ describe('Address', function () { expect(c.toString()).to.equal(CONTRACT); }); - it('parses muxed-account addresses', function () { + it("parses muxed-account addresses", function () { const sc = StellarBase.xdr.ScAddress.scAddressTypeMuxedAccount( new StellarBase.xdr.MuxedEd25519Account({ id: new StellarBase.xdr.Uint64(MUXED_ADDRESS_ID), @@ -104,10 +104,10 @@ describe('Address', function () { expect(m.toString()).to.equal(MUXED_ADDRESS); }); - it('parses claimable-balance addresses', function () { + it("parses claimable-balance addresses", function () { const sc = StellarBase.xdr.ScAddress.scAddressTypeClaimableBalance( new StellarBase.xdr.ClaimableBalanceId( - 'claimableBalanceIdTypeV0', + "claimableBalanceIdTypeV0", Buffer.alloc(32) ) ); @@ -115,18 +115,18 @@ describe('Address', function () { expect(cb.toString()).to.equal(CLAIMABLE_BALANCE_ZERO); }); - it('parses claimable-balance from decoded XDR', function () { + it("parses claimable-balance from decoded XDR", function () { // XDR: ScVal containing claimable balance address const xdrBase64 = - 'AAAAEgAAAAMAAAAAGZ8agta/ETY/tCE7KG10xWweJ9IBmnhmy0alCNG6gOE='; - const scVal = StellarBase.xdr.ScVal.fromXDR(xdrBase64, 'base64'); + "AAAAEgAAAAMAAAAAGZ8agta/ETY/tCE7KG10xWweJ9IBmnhmy0alCNG6gOE="; + const scVal = StellarBase.xdr.ScVal.fromXDR(xdrBase64, "base64"); const addr = StellarBase.Address.fromScVal(scVal); expect(addr.toString()).to.equal( - 'BAABTHY2QLLL6EJWH62CCOZINV2MK3A6E7JADGTYM3FUNJII2G5IBYM2TU' + "BAABTHY2QLLL6EJWH62CCOZINV2MK3A6E7JADGTYM3FUNJII2G5IBYM2TU" ); }); - it('parses liquidity-pool addresses', function () { + it("parses liquidity-pool addresses", function () { const sc = StellarBase.xdr.ScAddress.scAddressTypeLiquidityPool( Buffer.alloc(32) ); @@ -135,8 +135,8 @@ describe('Address', function () { }); }); - describe('.fromScVal', function () { - it('parses account ScVals', function () { + describe(".fromScVal", function () { + it("parses account ScVals", function () { const scVal = StellarBase.xdr.ScVal.scvAddress( StellarBase.xdr.ScAddress.scAddressTypeAccount( StellarBase.xdr.PublicKey.publicKeyTypeEd25519( @@ -148,7 +148,7 @@ describe('Address', function () { expect(a.toString()).to.equal(ACCOUNT); }); - it('parses contract ScVals', function () { + it("parses contract ScVals", function () { const scVal = StellarBase.xdr.ScVal.scvAddress( StellarBase.xdr.ScAddress.scAddressTypeContract( StellarBase.StrKey.decodeContract(CONTRACT) @@ -158,7 +158,7 @@ describe('Address', function () { expect(c.toString()).to.equal(CONTRACT); }); - it('parses muxed-account ScVals', function () { + it("parses muxed-account ScVals", function () { const scVal = StellarBase.xdr.ScVal.scvAddress( StellarBase.xdr.ScAddress.scAddressTypeMuxedAccount( new StellarBase.xdr.MuxedEd25519Account({ @@ -172,11 +172,11 @@ describe('Address', function () { expect(m.toString()).to.equal(MUXED_ADDRESS); }); - it('parses claimable-balance ScVals', function () { + it("parses claimable-balance ScVals", function () { const scVal = StellarBase.xdr.ScVal.scvAddress( StellarBase.xdr.ScAddress.scAddressTypeClaimableBalance( new StellarBase.xdr.ClaimableBalanceId( - 'claimableBalanceIdTypeV0', + "claimableBalanceIdTypeV0", Buffer.alloc(32) ) ) @@ -185,7 +185,7 @@ describe('Address', function () { expect(cb.toString()).to.equal(CLAIMABLE_BALANCE_ZERO); }); - it('parses liquidity-pool ScVals', function () { + it("parses liquidity-pool ScVals", function () { const scVal = StellarBase.xdr.ScVal.scvAddress( StellarBase.xdr.ScAddress.scAddressTypeLiquidityPool(Buffer.alloc(32)) ); @@ -195,8 +195,8 @@ describe('Address', function () { }); }); - describe('.toScAddress', function () { - it('converts accounts', function () { + describe(".toScAddress", function () { + it("converts accounts", function () { const a = new StellarBase.Address(ACCOUNT); const s = a.toScAddress(); expect(s.switch()).to.equal( @@ -205,7 +205,7 @@ describe('Address', function () { expect(StellarBase.xdr.ScAddress.fromXDR(s.toXDR())).to.eql(s); }); - it('converts contracts', function () { + it("converts contracts", function () { const c = new StellarBase.Address(CONTRACT); const s = c.toScAddress(); expect(s.switch()).to.equal( @@ -214,7 +214,7 @@ describe('Address', function () { expect(StellarBase.xdr.ScAddress.fromXDR(s.toXDR())).to.eql(s); }); - it('converts muxed accounts', function () { + it("converts muxed accounts", function () { const m = new StellarBase.Address(MUXED_ADDRESS); const s = m.toScAddress(); expect(s).to.be.instanceof(StellarBase.xdr.ScAddress); @@ -228,7 +228,7 @@ describe('Address', function () { expect(StellarBase.xdr.ScAddress.fromXDR(s.toXDR())).to.eql(s); }); - it('converts claimable balances', function () { + it("converts claimable balances", function () { const cb = new StellarBase.Address(CLAIMABLE_BALANCE_ZERO); const s = cb.toScAddress(); expect(s.switch()).to.equal( @@ -237,7 +237,7 @@ describe('Address', function () { expect(StellarBase.xdr.ScAddress.fromXDR(s.toXDR())).to.eql(s); }); - it('converts liquidity pools', function () { + it("converts liquidity pools", function () { const lp = new StellarBase.Address(LIQUIDITY_POOL_ZERO); const s = lp.toScAddress(); expect(s.switch()).to.equal( @@ -247,36 +247,36 @@ describe('Address', function () { }); }); - describe('.toScVal', function () { - it('wraps account ScAddress types', function () { + describe(".toScVal", function () { + it("wraps account ScAddress types", function () { const a = new StellarBase.Address(ACCOUNT); expect(a.toScVal().address().switch()).to.equal( StellarBase.xdr.ScAddressType.scAddressTypeAccount() ); }); - it('wraps contract ScAddress types', function () { + it("wraps contract ScAddress types", function () { const c = new StellarBase.Address(CONTRACT); expect(c.toScVal().address().switch()).to.equal( StellarBase.xdr.ScAddressType.scAddressTypeContract() ); }); - it('wraps muxed-account ScAddress types', function () { + it("wraps muxed-account ScAddress types", function () { const m = new StellarBase.Address(MUXED_ADDRESS); expect(m.toScVal().address().switch()).to.equal( StellarBase.xdr.ScAddressType.scAddressTypeMuxedAccount() ); }); - it('wraps liquidity-pool ScAddress types', function () { + it("wraps liquidity-pool ScAddress types", function () { const lp = new StellarBase.Address(LIQUIDITY_POOL_ZERO); expect(lp.toScVal().address().switch()).to.equal( StellarBase.xdr.ScAddressType.scAddressTypeLiquidityPool() ); }); - it('wraps claimable-balance ScAddress types', function () { + it("wraps claimable-balance ScAddress types", function () { const cb = new StellarBase.Address(CLAIMABLE_BALANCE_ZERO); const val = cb.toScVal(); expect(val).to.be.instanceof(StellarBase.xdr.ScVal); @@ -286,36 +286,36 @@ describe('Address', function () { }); }); - describe('.toBuffer', function () { - it('returns the raw public-key bytes for accounts', function () { + describe(".toBuffer", function () { + it("returns the raw public-key bytes for accounts", function () { const a = new StellarBase.Address(ACCOUNT); expect(a.toBuffer()).to.deep.equal( StellarBase.StrKey.decodeEd25519PublicKey(ACCOUNT) ); }); - it('returns the raw hash for contracts', function () { + it("returns the raw hash for contracts", function () { const c = new StellarBase.Address(CONTRACT); expect(c.toBuffer()).to.deep.equal( StellarBase.StrKey.decodeContract(CONTRACT) ); }); - it('returns raw bytes for muxed accounts', function () { + it("returns raw bytes for muxed accounts", function () { const m = new StellarBase.Address(MUXED_ADDRESS); expect(m.toBuffer()).to.deep.equal( StellarBase.StrKey.decodeMed25519PublicKey(MUXED_ADDRESS) ); }); - it('returns raw bytes for claimable balances', function () { + it("returns raw bytes for claimable balances", function () { const cb = new StellarBase.Address(CLAIMABLE_BALANCE_ZERO); expect(cb.toBuffer()).to.deep.equal( StellarBase.StrKey.decodeClaimableBalance(CLAIMABLE_BALANCE_ZERO) ); }); - it('returns raw bytes for liquidity pools', function () { + it("returns raw bytes for liquidity pools", function () { const lp = new StellarBase.Address(LIQUIDITY_POOL_ZERO); expect(lp.toBuffer()).to.deep.equal( StellarBase.StrKey.decodeLiquidityPool(LIQUIDITY_POOL_ZERO) diff --git a/test/unit/asset_test.js b/test/unit/asset_test.js index 7208ece92..9c8ea5029 100644 --- a/test/unit/asset_test.js +++ b/test/unit/asset_test.js @@ -1,97 +1,97 @@ const { Asset } = StellarBase; -describe('Asset', function () { - describe('constructor', function () { +describe("Asset", function () { + describe("constructor", function () { it("throws an error when there's no issuer for non XLM type asset", function () { - expect(() => new Asset('USD')).to.throw(/Issuer cannot be null/); + expect(() => new Asset("USD")).to.throw(/Issuer cannot be null/); }); - it('throws an error when code is invalid', function () { + it("throws an error when code is invalid", function () { expect( () => new Asset( - '', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ) ).to.throw(/Asset code is invalid/); expect( () => new Asset( - '1234567890123', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "1234567890123", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ) ).to.throw(/Asset code is invalid/); expect( () => new Asset( - 'ab_', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "ab_", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ) ).to.throw(/Asset code is invalid/); }); - it('throws an error when issuer is invalid', function () { - expect(() => new Asset('USD', 'GCEZWKCA5')).to.throw(/Issuer is invalid/); + it("throws an error when issuer is invalid", function () { + expect(() => new Asset("USD", "GCEZWKCA5")).to.throw(/Issuer is invalid/); }); }); - describe('getCode()', function () { - it('returns a code for a native asset object', function () { + describe("getCode()", function () { + it("returns a code for a native asset object", function () { var asset = new Asset.native(); - expect(asset.getCode()).to.be.equal('XLM'); + expect(asset.getCode()).to.be.equal("XLM"); }); - it('returns a code for a non-native asset', function () { + it("returns a code for a non-native asset", function () { var asset = new Asset( - 'USD', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "USD", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); - expect(asset.getCode()).to.be.equal('USD'); + expect(asset.getCode()).to.be.equal("USD"); }); }); - describe('getIssuer()', function () { - it('returns a code for a native asset object', function () { + describe("getIssuer()", function () { + it("returns a code for a native asset object", function () { var asset = new Asset.native(); expect(asset.getIssuer()).to.be.undefined; }); - it('returns a code for a non-native asset', function () { + it("returns a code for a non-native asset", function () { var asset = new Asset( - 'USD', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "USD", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); expect(asset.getIssuer()).to.be.equal( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); }); }); - describe('getAssetType()', function () { - it('returns native for native assets', function () { + describe("getAssetType()", function () { + it("returns native for native assets", function () { var asset = Asset.native(); - expect(asset.getAssetType()).to.eq('native'); + expect(asset.getAssetType()).to.eq("native"); }); - it('returns credit_alphanum4 if the asset code length is between 1 and 4', function () { + it("returns credit_alphanum4 if the asset code length is between 1 and 4", function () { var asset = new Asset( - 'ABCD', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "ABCD", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); - expect(asset.getAssetType()).to.eq('credit_alphanum4'); + expect(asset.getAssetType()).to.eq("credit_alphanum4"); }); - it('returns credit_alphanum12 if the asset code length is between 5 and 12', function () { + it("returns credit_alphanum12 if the asset code length is between 5 and 12", function () { var asset = new Asset( - 'ABCDEF', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "ABCDEF", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); - expect(asset.getAssetType()).to.eq('credit_alphanum12'); + expect(asset.getAssetType()).to.eq("credit_alphanum12"); }); }); - describe('toXDRObject(), toChangeTrustXDRObject(), toTrustLineXDRObject', function () { - it('parses a native asset object', function () { + describe("toXDRObject(), toChangeTrustXDRObject(), toTrustLineXDRObject", function () { + it("parses a native asset object", function () { const asset = new Asset.native(); let xdr = asset.toXDRObject(); @@ -113,106 +113,106 @@ describe('Asset', function () { ); }); - it('parses a 3-alphanum asset object', function () { + it("parses a 3-alphanum asset object", function () { const asset = new Asset( - 'USD', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "USD", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); let xdr = asset.toXDRObject(); expect(xdr).to.be.instanceof(StellarBase.xdr.Asset); - expect(() => xdr.toXDR('hex')).to.not.throw(); - expect(xdr.arm()).to.equal('alphaNum4'); - expect(xdr.value().assetCode()).to.equal('USD\0'); + expect(() => xdr.toXDR("hex")).to.not.throw(); + expect(xdr.arm()).to.equal("alphaNum4"); + expect(xdr.value().assetCode()).to.equal("USD\0"); xdr = asset.toChangeTrustXDRObject(); expect(xdr).to.be.instanceof(StellarBase.xdr.ChangeTrustAsset); - expect(() => xdr.toXDR('hex')).to.not.throw(); - expect(xdr.arm()).to.equal('alphaNum4'); - expect(xdr.value().assetCode()).to.equal('USD\0'); + expect(() => xdr.toXDR("hex")).to.not.throw(); + expect(xdr.arm()).to.equal("alphaNum4"); + expect(xdr.value().assetCode()).to.equal("USD\0"); xdr = asset.toTrustLineXDRObject(); expect(xdr).to.be.instanceof(StellarBase.xdr.TrustLineAsset); - expect(() => xdr.toXDR('hex')).to.not.throw(); - expect(xdr.arm()).to.equal('alphaNum4'); - expect(xdr.value().assetCode()).to.equal('USD\0'); + expect(() => xdr.toXDR("hex")).to.not.throw(); + expect(xdr.arm()).to.equal("alphaNum4"); + expect(xdr.value().assetCode()).to.equal("USD\0"); }); - it('parses a 4-alphanum asset object', function () { + it("parses a 4-alphanum asset object", function () { const asset = new Asset( - 'BART', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "BART", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); let xdr = asset.toXDRObject(); expect(xdr).to.be.instanceof(StellarBase.xdr.Asset); - expect(() => xdr.toXDR('hex')).to.not.throw(); - expect(xdr.arm()).to.equal('alphaNum4'); - expect(xdr.value().assetCode()).to.equal('BART'); + expect(() => xdr.toXDR("hex")).to.not.throw(); + expect(xdr.arm()).to.equal("alphaNum4"); + expect(xdr.value().assetCode()).to.equal("BART"); xdr = asset.toChangeTrustXDRObject(); expect(xdr).to.be.instanceof(StellarBase.xdr.ChangeTrustAsset); - expect(() => xdr.toXDR('hex')).to.not.throw(); - expect(xdr.arm()).to.equal('alphaNum4'); - expect(xdr.value().assetCode()).to.equal('BART'); + expect(() => xdr.toXDR("hex")).to.not.throw(); + expect(xdr.arm()).to.equal("alphaNum4"); + expect(xdr.value().assetCode()).to.equal("BART"); xdr = asset.toTrustLineXDRObject(); expect(xdr).to.be.instanceof(StellarBase.xdr.TrustLineAsset); - expect(() => xdr.toXDR('hex')).to.not.throw(); - expect(xdr.arm()).to.equal('alphaNum4'); - expect(xdr.value().assetCode()).to.equal('BART'); + expect(() => xdr.toXDR("hex")).to.not.throw(); + expect(xdr.arm()).to.equal("alphaNum4"); + expect(xdr.value().assetCode()).to.equal("BART"); }); - it('parses a 5-alphanum asset object', function () { + it("parses a 5-alphanum asset object", function () { const asset = new Asset( - '12345', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "12345", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); let xdr = asset.toXDRObject(); expect(xdr).to.be.instanceof(StellarBase.xdr.Asset); - expect(() => xdr.toXDR('hex')).to.not.throw(); - expect(xdr.arm()).to.equal('alphaNum12'); - expect(xdr.value().assetCode()).to.equal('12345\0\0\0\0\0\0\0'); + expect(() => xdr.toXDR("hex")).to.not.throw(); + expect(xdr.arm()).to.equal("alphaNum12"); + expect(xdr.value().assetCode()).to.equal("12345\0\0\0\0\0\0\0"); xdr = asset.toChangeTrustXDRObject(); expect(xdr).to.be.instanceof(StellarBase.xdr.ChangeTrustAsset); - expect(() => xdr.toXDR('hex')).to.not.throw(); - expect(xdr.arm()).to.equal('alphaNum12'); - expect(xdr.value().assetCode()).to.equal('12345\0\0\0\0\0\0\0'); + expect(() => xdr.toXDR("hex")).to.not.throw(); + expect(xdr.arm()).to.equal("alphaNum12"); + expect(xdr.value().assetCode()).to.equal("12345\0\0\0\0\0\0\0"); xdr = asset.toTrustLineXDRObject(); expect(xdr).to.be.instanceof(StellarBase.xdr.TrustLineAsset); - expect(() => xdr.toXDR('hex')).to.not.throw(); - expect(xdr.arm()).to.equal('alphaNum12'); - expect(xdr.value().assetCode()).to.equal('12345\0\0\0\0\0\0\0'); + expect(() => xdr.toXDR("hex")).to.not.throw(); + expect(xdr.arm()).to.equal("alphaNum12"); + expect(xdr.value().assetCode()).to.equal("12345\0\0\0\0\0\0\0"); }); - it('parses a 12-alphanum asset object', function () { + it("parses a 12-alphanum asset object", function () { const asset = new Asset( - '123456789012', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "123456789012", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); let xdr = asset.toXDRObject(); expect(xdr).to.be.instanceof(StellarBase.xdr.Asset); - expect(() => xdr.toXDR('hex')).to.not.throw(); - expect(xdr.arm()).to.equal('alphaNum12'); - expect(xdr.value().assetCode()).to.equal('123456789012'); + expect(() => xdr.toXDR("hex")).to.not.throw(); + expect(xdr.arm()).to.equal("alphaNum12"); + expect(xdr.value().assetCode()).to.equal("123456789012"); xdr = asset.toChangeTrustXDRObject(); expect(xdr).to.be.instanceof(StellarBase.xdr.ChangeTrustAsset); - expect(() => xdr.toXDR('hex')).to.not.throw(); - expect(xdr.arm()).to.equal('alphaNum12'); - expect(xdr.value().assetCode()).to.equal('123456789012'); + expect(() => xdr.toXDR("hex")).to.not.throw(); + expect(xdr.arm()).to.equal("alphaNum12"); + expect(xdr.value().assetCode()).to.equal("123456789012"); xdr = asset.toTrustLineXDRObject(); expect(xdr).to.be.instanceof(StellarBase.xdr.TrustLineAsset); - expect(() => xdr.toXDR('hex')).to.not.throw(); - expect(xdr.arm()).to.equal('alphaNum12'); - expect(xdr.value().assetCode()).to.equal('123456789012'); + expect(() => xdr.toXDR("hex")).to.not.throw(); + expect(xdr.arm()).to.equal("alphaNum12"); + expect(xdr.value().assetCode()).to.equal("123456789012"); }); }); - describe('fromOperation()', function () { - it('parses a native asset XDR', function () { + describe("fromOperation()", function () { + it("parses a native asset XDR", function () { var xdr = new StellarBase.xdr.Asset.assetTypeNative(); var asset = Asset.fromOperation(xdr); @@ -220,15 +220,15 @@ describe('Asset', function () { expect(asset.isNative()).to.equal(true); }); - it('parses a 4-alphanum asset XDR', function () { - var issuer = 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; - var assetCode = 'KHL'; + it("parses a 4-alphanum asset XDR", function () { + var issuer = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; + var assetCode = "KHL"; var assetType = new StellarBase.xdr.AlphaNum4({ - assetCode: assetCode + '\0', + assetCode: assetCode + "\0", issuer: StellarBase.Keypair.fromPublicKey(issuer).xdrAccountId() }); var xdr = new StellarBase.xdr.Asset( - 'assetTypeCreditAlphanum4', + "assetTypeCreditAlphanum4", assetType ); @@ -239,15 +239,15 @@ describe('Asset', function () { expect(asset.getIssuer()).to.equal(issuer); }); - it('parses a 12-alphanum asset XDR', function () { - var issuer = 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; - var assetCode = 'KHLTOKEN'; + it("parses a 12-alphanum asset XDR", function () { + var issuer = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; + var assetCode = "KHLTOKEN"; var assetType = new StellarBase.xdr.AlphaNum12({ - assetCode: assetCode + '\0\0\0\0', + assetCode: assetCode + "\0\0\0\0", issuer: StellarBase.Keypair.fromPublicKey(issuer).xdrAccountId() }); var xdr = new StellarBase.xdr.Asset( - 'assetTypeCreditAlphanum12', + "assetTypeCreditAlphanum12", assetType ); @@ -259,34 +259,34 @@ describe('Asset', function () { }); }); - describe('toString()', function () { + describe("toString()", function () { it("returns 'native' for native asset", function () { var asset = Asset.native(); - expect(asset.toString()).to.be.equal('native'); + expect(asset.toString()).to.be.equal("native"); }); it("returns 'code:issuer' for non-native asset", function () { var asset = new Asset( - 'USD', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "USD", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); expect(asset.toString()).to.be.equal( - 'USD:GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "USD:GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); }); }); - describe('compare()', function () { + describe("compare()", function () { const assetA = new Asset( - 'ARST', - 'GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO' + "ARST", + "GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO" ); const assetB = new Asset( - 'USD', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "USD", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); - it('throws an error if the input assets are invalid', function () { + it("throws an error if the input assets are invalid", function () { expect(() => Asset.compare()).to.throw(/assetA is invalid/); expect(() => Asset.compare(assetA)).to.throw(/assetB is invalid/); @@ -294,22 +294,22 @@ describe('Asset', function () { expect(() => Asset.compare(assetA, assetB)).to.not.throw; }); - it('returns false if assets are equal', function () { + it("returns false if assets are equal", function () { const XLM = new Asset.native(); expect(Asset.compare(XLM, XLM)).to.eq(0); expect(Asset.compare(assetA, assetA)).to.eq(0); expect(Asset.compare(assetB, assetB)).to.eq(0); }); - it('test if asset types are being validated as native < anum4 < anum12', function () { + it("test if asset types are being validated as native < anum4 < anum12", function () { const XLM = new Asset.native(); const anum4 = new Asset( - 'ARST', - 'GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO' + "ARST", + "GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO" ); const anum12 = new Asset( - 'ARSTANUM12', - 'GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO' + "ARSTANUM12", + "GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO" ); expect(Asset.compare(XLM, XLM)).to.eq(0); @@ -325,12 +325,12 @@ describe('Asset', function () { expect(Asset.compare(anum12, anum12)).to.eq(0); }); - it('test if asset codes are being validated as assetCodeA < assetCodeB', function () { + it("test if asset codes are being validated as assetCodeA < assetCodeB", function () { const assetARST = new Asset( - 'ARST', - 'GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO' + "ARST", + "GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO" ); - const assetUSDX = new Asset('USDA', assetARST.getIssuer()); + const assetUSDX = new Asset("USDA", assetARST.getIssuer()); expect(Asset.compare(assetARST, assetARST)).to.eq(0); expect(Asset.compare(assetARST, assetUSDX)).to.eq(-1); @@ -339,19 +339,19 @@ describe('Asset', function () { expect(Asset.compare(assetUSDX, assetUSDX)).to.eq(0); // uppercase should be smaller - const assetLower = new Asset('aRST', assetARST.getIssuer()); + const assetLower = new Asset("aRST", assetARST.getIssuer()); expect(Asset.compare(assetARST, assetLower)).to.eq(-1); expect(Asset.compare(assetLower, assetA)).to.eq(1); }); - it('test if asset issuers are being validated as assetIssuerA < assetIssuerB', function () { + it("test if asset issuers are being validated as assetIssuerA < assetIssuerB", function () { const assetIssuerA = new Asset( - 'ARST', - 'GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO' + "ARST", + "GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO" ); const assetIssuerB = new Asset( - 'ARST', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "ARST", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); expect(Asset.compare(assetIssuerA, assetIssuerB)).to.eq(-1); @@ -361,34 +361,34 @@ describe('Asset', function () { expect(Asset.compare(assetIssuerB, assetIssuerB)).to.eq(0); }); - it('test if codes with upper-case letters are sorted before lower-case letters', function () { + it("test if codes with upper-case letters are sorted before lower-case letters", function () { // All upper-case letters should come before any lower-case ones const assetA = new Asset( - 'B', - 'GA7NLOF4EHWMJF6DBXXV2H6AYI7IHYWNFZR6R52BYBLY7TE5Q74AIDRA' + "B", + "GA7NLOF4EHWMJF6DBXXV2H6AYI7IHYWNFZR6R52BYBLY7TE5Q74AIDRA" ); const assetB = new Asset( - 'a', - 'GA7NLOF4EHWMJF6DBXXV2H6AYI7IHYWNFZR6R52BYBLY7TE5Q74AIDRA' + "a", + "GA7NLOF4EHWMJF6DBXXV2H6AYI7IHYWNFZR6R52BYBLY7TE5Q74AIDRA" ); expect(Asset.compare(assetA, assetB)).to.eq(-1); }); }); - describe('contractId()', function () { - it('creates the correct contract IDs', function () { + describe("contractId()", function () { + it("creates the correct contract IDs", function () { [ [ Asset.native(), - 'CB64D3G7SM2RTH6JSGG34DDTFTQ5CFDKVDZJZSODMCX4NJ2HV2KN7OHT' + "CB64D3G7SM2RTH6JSGG34DDTFTQ5CFDKVDZJZSODMCX4NJ2HV2KN7OHT" ], [ new Asset( - 'USD', - 'GCP2QKBFLLEEWYVKAIXIJIJNCZ6XEBIE4PCDB6BF3GUB6FGE2RQ3HDVP' + "USD", + "GCP2QKBFLLEEWYVKAIXIJIJNCZ6XEBIE4PCDB6BF3GUB6FGE2RQ3HDVP" ), - 'CCWNZPARJG7KQ6N4BGZ5OBWKSSK4AVQ5URLDRXB4ZJXKGEJQTIIRPAHN' + "CCWNZPARJG7KQ6N4BGZ5OBWKSSK4AVQ5URLDRXB4ZJXKGEJQTIIRPAHN" ] ].forEach(([asset, contractId]) => { expect(asset.contractId(StellarBase.Networks.FUTURENET)).to.equal( diff --git a/test/unit/auth_test.js b/test/unit/auth_test.js index 7446ea289..2c3ec23cb 100644 --- a/test/unit/auth_test.js +++ b/test/unit/auth_test.js @@ -1,8 +1,8 @@ const { xdr, Address, scValToNative, StrKey } = StellarBase; -describe('building authorization entries', function () { +describe("building authorization entries", function () { const kp = StellarBase.Keypair.random(); - const contractId = 'CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE'; + const contractId = "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE"; const authEntry = new xdr.SorobanAuthorizationEntry({ rootInvocation: new xdr.SorobanAuthorizedInvocation({ @@ -10,7 +10,7 @@ describe('building authorization entries', function () { xdr.SorobanAuthorizedFunction.sorobanAuthorizedFunctionTypeContractFn( new xdr.InvokeContractArgs({ contractAddress: new Address(contractId).toScAddress(), - functionName: 'hello', + functionName: "hello", args: [xdr.ScVal.scvU64(1234n)] }) ), @@ -27,15 +27,15 @@ describe('building authorization entries', function () { }); // handle bigints when serializing to JSON - const biHandler = (_, v) => (typeof v === 'bigint' ? v.toString() : v); + const biHandler = (_, v) => (typeof v === "bigint" ? v.toString() : v); - it('built an mock entry correctly', function () { + it("built an mock entry correctly", function () { authEntry.toXDR(); }); [ - [kp, 'Keypair'], - [(preimage) => kp.sign(StellarBase.hash(preimage.toXDR())), 'callback'], + [kp, "Keypair"], + [(preimage) => kp.sign(StellarBase.hash(preimage.toXDR())), "callback"], [ (preimage) => { return { @@ -43,7 +43,7 @@ describe('building authorization entries', function () { publicKey: kp.publicKey() }; }, - 'callback w/ obj' + "callback w/ obj" ] ].forEach(([signer, methodName]) => { it(`signs the entry correctly (${methodName})`, function (done) { @@ -65,8 +65,8 @@ describe('building authorization entries', function () { expect(sigArgs).to.have.lengthOf(1); const sig = sigArgs[0]; - expect(sig).to.have.property('public_key'); - expect(sig).to.have.property('signature'); + expect(sig).to.have.property("public_key"); + expect(sig).to.have.property("signature"); expect(StrKey.encodeEd25519PublicKey(sig.public_key)).to.eql( kp.publicKey() ); @@ -77,24 +77,24 @@ describe('building authorization entries', function () { }); }); - it('throws with a random signer', function () { + it("throws with a random signer", function () { const randomKp = StellarBase.Keypair.random(); expect( StellarBase.authorizeEntry(authEntry, randomKp, 10) ).to.eventually.be.rejectedWith(/identity doesn't match/i); }); - it('throws with a bad signature', function () { + it("throws with a bad signature", function () { expect( StellarBase.authorizeEntry( authEntry, - (_) => accountId.sign(Buffer.from('bs')), + (_) => accountId.sign(Buffer.from("bs")), 10 ) ).to.eventually.be.rejectedWith(/signature doesn't match/i); }); - it('can build from scratch', function (done) { + it("can build from scratch", function (done) { StellarBase.authorizeInvocation(kp, 10, authEntry.rootInvocation()) .then((signedEntry) => done()) .catch((err) => done(err)); diff --git a/test/unit/claimant_test.js b/test/unit/claimant_test.js index eda18674a..584e66ab5 100644 --- a/test/unit/claimant_test.js +++ b/test/unit/claimant_test.js @@ -1,41 +1,41 @@ -const { expect } = require('chai'); +const { expect } = require("chai"); -describe('Claimant', function () { - describe('constructor', function () { - it('throws an error when destination is invalid', function () { - expect(() => new StellarBase.Claimant('GCEZWKCA5', null)).to.throw( +describe("Claimant", function () { + describe("constructor", function () { + it("throws an error when destination is invalid", function () { + expect(() => new StellarBase.Claimant("GCEZWKCA5", null)).to.throw( /Destination is invalid/ ); }); - it('defaults to unconditional if predicate is undefined', function () { + it("defaults to unconditional if predicate is undefined", function () { const claimant = new StellarBase.Claimant( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); expect(claimant.predicate.switch()).to.equal( StellarBase.xdr.ClaimPredicateType.claimPredicateUnconditional() ); }); - it('throws an error if predicate is not an xdr.ClaimPredicate', function () { + it("throws an error if predicate is not an xdr.ClaimPredicate", function () { expect( () => new StellarBase.Claimant( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", 3 ) ).to.throw(/Predicate should be an xdr.ClaimPredicate/); }); }); - describe('predicateUnconditional()', function () { - it('returns an `unconditional` claim predicate', function () { + describe("predicateUnconditional()", function () { + it("returns an `unconditional` claim predicate", function () { const predicate = StellarBase.Claimant.predicateUnconditional(); expect(predicate.switch()).to.equal( StellarBase.xdr.ClaimPredicateType.claimPredicateUnconditional() ); }); }); - describe('predicateBeforeAbsoluteTime()', function () { - it('returns a `beforeAbsoluteTime` claim predicate', function () { - const time = '4102444800000'; + describe("predicateBeforeAbsoluteTime()", function () { + it("returns a `beforeAbsoluteTime` claim predicate", function () { + const time = "4102444800000"; const predicate = StellarBase.Claimant.predicateBeforeAbsoluteTime(time); expect(predicate.switch()).to.equal( StellarBase.xdr.ClaimPredicateType.claimPredicateBeforeAbsoluteTime() @@ -44,9 +44,9 @@ describe('Claimant', function () { expect(value.toString()).to.equal(time); }); }); - describe('predicateBeforeRelativeTime()', function () { - it('returns a `beforeRelativeTime` claim predicate', function () { - const time = '86400'; + describe("predicateBeforeRelativeTime()", function () { + it("returns a `beforeRelativeTime` claim predicate", function () { + const time = "86400"; const predicate = StellarBase.Claimant.predicateBeforeRelativeTime(time); expect(predicate.switch()).to.equal( StellarBase.xdr.ClaimPredicateType.claimPredicateBeforeRelativeTime() @@ -55,9 +55,9 @@ describe('Claimant', function () { expect(value.toString()).to.equal(time); }); }); - describe('predicateNot()', function () { - it('returns a `not` claim predicate', function () { - const time = '86400'; + describe("predicateNot()", function () { + it("returns a `not` claim predicate", function () { + const time = "86400"; const beforeRel = StellarBase.Claimant.predicateBeforeRelativeTime(time); const predicate = StellarBase.Claimant.predicateNot(beforeRel); expect(predicate.switch()).to.equal( @@ -68,70 +68,70 @@ describe('Claimant', function () { expect(value.toString()).to.equal(time); }); }); - describe('predicateOr()', function () { - it('returns an `or` claim predicate', function () { - const left = StellarBase.Claimant.predicateBeforeRelativeTime('800'); - const right = StellarBase.Claimant.predicateBeforeRelativeTime('1200'); + describe("predicateOr()", function () { + it("returns an `or` claim predicate", function () { + const left = StellarBase.Claimant.predicateBeforeRelativeTime("800"); + const right = StellarBase.Claimant.predicateBeforeRelativeTime("1200"); const predicate = StellarBase.Claimant.predicateOr(left, right); expect(predicate.switch()).to.equal( StellarBase.xdr.ClaimPredicateType.claimPredicateOr() ); const predicates = predicate.orPredicates(); - expect(predicates[0].value().toString()).to.equal('800'); - expect(predicates[1].value().toString()).to.equal('1200'); + expect(predicates[0].value().toString()).to.equal("800"); + expect(predicates[1].value().toString()).to.equal("1200"); }); }); - describe('predicateAnd()', function () { - it('returns an `and` predicate claim predicate', function () { - const left = StellarBase.Claimant.predicateBeforeRelativeTime('800'); - const right = StellarBase.Claimant.predicateBeforeRelativeTime('1200'); + describe("predicateAnd()", function () { + it("returns an `and` predicate claim predicate", function () { + const left = StellarBase.Claimant.predicateBeforeRelativeTime("800"); + const right = StellarBase.Claimant.predicateBeforeRelativeTime("1200"); const predicate = StellarBase.Claimant.predicateAnd(left, right); expect(predicate.switch()).to.equal( StellarBase.xdr.ClaimPredicateType.claimPredicateAnd() ); const predicates = predicate.andPredicates(); - expect(predicates[0].value().toString()).to.equal('800'); - expect(predicates[1].value().toString()).to.equal('1200'); + expect(predicates[0].value().toString()).to.equal("800"); + expect(predicates[1].value().toString()).to.equal("1200"); }); }); - describe('destination()', function () { - it('returns the destination accountID', function () { + describe("destination()", function () { + it("returns the destination accountID", function () { const destination = - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; const claimant = new StellarBase.Claimant(destination); expect(claimant.destination).to.equal(destination); }); - it('does not allow changes in accountID', function () { + it("does not allow changes in accountID", function () { const destination = - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; const claimant = new StellarBase.Claimant(destination); - expect(() => (claimant.destination = '32323')).to.throw( + expect(() => (claimant.destination = "32323")).to.throw( /Claimant is immutable/ ); }); }); - describe('predicate()', function () { - it('returns the predicate', function () { + describe("predicate()", function () { + it("returns the predicate", function () { const claimant = new StellarBase.Claimant( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); expect(claimant.predicate.switch()).to.equal( StellarBase.Claimant.predicateUnconditional().switch() ); }); - it('does not allow changes in predicate', function () { + it("does not allow changes in predicate", function () { const destination = - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; const claimant = new StellarBase.Claimant(destination); expect(() => (claimant.predicate = null)).to.throw( /Claimant is immutable/ ); }); }); - describe('toXDRObject()', function () { - it('returns a xdr.Claimant', function () { + describe("toXDRObject()", function () { + it("returns a xdr.Claimant", function () { const destination = - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; const claimant = new StellarBase.Claimant(destination); const xdrClaimant = claimant.toXDRObject(); expect(xdrClaimant).to.be.an.instanceof(StellarBase.xdr.Claimant); @@ -149,13 +149,13 @@ describe('Claimant', function () { expect(() => xdrClaimant.toXDR()).to.not.throw(); }); }); - describe('fromXDR()', function () { - it('returns a Claimant', function () { + describe("fromXDR()", function () { + it("returns a Claimant", function () { const destination = - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; const claimant = new StellarBase.Claimant(destination); - const hex = claimant.toXDRObject().toXDR('hex'); - const xdrClaimant = StellarBase.xdr.Claimant.fromXDR(hex, 'hex'); + const hex = claimant.toXDRObject().toXDR("hex"); + const xdrClaimant = StellarBase.xdr.Claimant.fromXDR(hex, "hex"); const fromXDR = StellarBase.Claimant.fromXDR(xdrClaimant); expect(fromXDR.destination).to.equal(destination); expect(fromXDR.predicate.switch()).to.equal( diff --git a/test/unit/contract_test.js b/test/unit/contract_test.js index bef4ecbc2..e1ec58aff 100644 --- a/test/unit/contract_test.js +++ b/test/unit/contract_test.js @@ -1,36 +1,36 @@ const { Contract, xdr } = StellarBase; -const NULL_ADDRESS = 'CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM'; +const NULL_ADDRESS = "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM"; -describe('Contract', function () { - describe('constructor', function () { - it('parses strkeys', function () { +describe("Contract", function () { + describe("constructor", function () { + it("parses strkeys", function () { [ NULL_ADDRESS, - 'CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE' + "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE" ].forEach((cid) => { const contract = new Contract(cid); expect(contract.contractId()).to.equal(cid); }); }); - it('throws on obsolete hex ids', function () { - expect(() => new Contract('0'.repeat(63) + '1')).to.throw(); + it("throws on obsolete hex ids", function () { + expect(() => new Contract("0".repeat(63) + "1")).to.throw(); }); - it('throws on invalid ids', function () { - expect(() => new Contract('foobar')).to.throw(); + it("throws on invalid ids", function () { + expect(() => new Contract("foobar")).to.throw(); }); }); - describe('address', function () { - it('returns the contract address', function () { + describe("address", function () { + it("returns the contract address", function () { let contract = new Contract(NULL_ADDRESS); expect(contract.address().toString()).to.equal(NULL_ADDRESS); }); }); - describe('getFootprint', function () { - it('includes the correct contract ledger keys', function () { + describe("getFootprint", function () { + it("includes the correct contract ledger keys", function () { let contract = new Contract(NULL_ADDRESS); expect(contract.contractId()).to.equal(NULL_ADDRESS); @@ -47,19 +47,19 @@ describe('Contract', function () { }); }); - describe('call', function () { + describe("call", function () { const contract = new Contract(NULL_ADDRESS); let call = contract.call( - 'method', - StellarBase.nativeToScVal('arg!'), - StellarBase.nativeToScVal(2, { type: 'i32' }) + "method", + StellarBase.nativeToScVal("arg!"), + StellarBase.nativeToScVal(2, { type: "i32" }) ); - it('works with no parameters', function () { - contract.call('empty').toXDR(); + it("works with no parameters", function () { + contract.call("empty").toXDR(); }); - it('builds valid XDR', function () { + it("builds valid XDR", function () { call.toXDR(); }); @@ -69,19 +69,19 @@ describe('Contract', function () { .hostFunction() .invokeContract(); - it('passes the contract id as an ScAddress', function () { + it("passes the contract id as an ScAddress", function () { expect(args.contractAddress()).to.deep.equal( new Contract(NULL_ADDRESS).address().toScAddress() ); }); - it('passes the method name as the second arg', function () { - expect(args.functionName()).to.deep.equal('method'); + it("passes the method name as the second arg", function () { + expect(args.functionName()).to.deep.equal("method"); }); - it('passes all params after that', function () { + it("passes all params after that", function () { expect(args.args()).to.deep.equal([ - xdr.ScVal.scvString('arg!'), + xdr.ScVal.scvString("arg!"), xdr.ScVal.scvI32(2) ]); }); diff --git a/test/unit/crypto_test.js b/test/unit/crypto_test.js index 18f0a10c0..33d2b6ad8 100644 --- a/test/unit/crypto_test.js +++ b/test/unit/crypto_test.js @@ -1,8 +1,8 @@ -import crypto from 'crypto'; +import crypto from "crypto"; function expectBuffersToBeEqual(left, right) { - const leftHex = left.toString('hex'); - const rightHex = right.toString('hex'); + const leftHex = left.toString("hex"); + const rightHex = right.toString("hex"); expect(leftHex).to.eql(rightHex); } @@ -15,9 +15,9 @@ function expectBuffersToBeEqual(left, right) { used on the site. */ -it('new hashing function behaves like crypto', () => { - const input = 'I really hope this works'; - const cryptoHash = crypto.createHash('sha256').update(input).digest(); +it("new hashing function behaves like crypto", () => { + const input = "I really hope this works"; + const cryptoHash = crypto.createHash("sha256").update(input).digest(); const newHash = StellarBase.hash(input); diff --git a/test/unit/events_test.js b/test/unit/events_test.js index cdfcd060d..5c9872dcb 100644 --- a/test/unit/events_test.js +++ b/test/unit/events_test.js @@ -6,10 +6,10 @@ const [nativeToScVal, scValToNative, ScInt, humanizeEvents, xdr] = [ StellarBase.xdr ]; // shorthand -describe('humanizing raw events', function () { - const contractId = 'CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE'; +describe("humanizing raw events", function () { + const contractId = "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE"; const topics1 = nativeToScVal([1, 2, 3]).value(); - const data1 = nativeToScVal({ hello: 'world' }); + const data1 = nativeToScVal({ hello: "world" }); // workaround for xdr.ContractEventBody.0(...) being invalid lol const cloneAndSet = (newBody) => { @@ -51,23 +51,23 @@ describe('humanizing raw events', function () { }) ]; - it('built valid events for testing', function () { + it("built valid events for testing", function () { // sanity check: valid xdr events.map((e) => e.toXDR()); }); - it('makes diagnostic events human-readable', function () { + it("makes diagnostic events human-readable", function () { const readable = StellarBase.humanizeEvents(events); expect(readable.length).to.equal(events.length, `${events} != ${readable}`); expect(readable[0]).to.eql({ - type: 'contract', + type: "contract", contractId: contractId, topics: topics1.map(scValToNative), data: scValToNative(data1) }); expect(readable[1]).to.eql({ - type: 'contract', + type: "contract", topics: topics1.map(scValToNative), data: scValToNative(data1) }); diff --git a/test/unit/fee_bump_transation_test.js b/test/unit/fee_bump_transation_test.js index b1d53ca77..af9202c2d 100644 --- a/test/unit/fee_bump_transation_test.js +++ b/test/unit/fee_bump_transation_test.js @@ -1,22 +1,22 @@ -import randomBytes from 'randombytes'; -import { encodeMuxedAccountToAddress } from '../../src/util/decode_encode_muxed_account'; +import randomBytes from "randombytes"; +import { encodeMuxedAccountToAddress } from "../../src/util/decode_encode_muxed_account"; -describe('FeeBumpTransaction', function () { +describe("FeeBumpTransaction", function () { beforeEach(function () { - this.baseFee = '100'; - this.networkPassphrase = 'Standalone Network ; February 2017'; + this.baseFee = "100"; + this.networkPassphrase = "Standalone Network ; February 2017"; this.innerSource = StellarBase.Keypair.master(this.networkPassphrase); this.innerAccount = new StellarBase.Account( this.innerSource.publicKey(), - '7' + "7" ); this.destination = - 'GDQERENWDDSQZS7R7WKHZI3BSOYMV3FSWR7TFUYFTKQ447PIX6NREOJM'; - this.amount = '2000.0000000'; + "GDQERENWDDSQZS7R7WKHZI3BSOYMV3FSWR7TFUYFTKQ447PIX6NREOJM"; + this.amount = "2000.0000000"; this.asset = StellarBase.Asset.native(); this.innerTx = new StellarBase.TransactionBuilder(this.innerAccount, { - fee: '100', + fee: "100", networkPassphrase: this.networkPassphrase, timebounds: { minTime: 0, @@ -30,50 +30,50 @@ describe('FeeBumpTransaction', function () { amount: this.amount }) ) - .addMemo(StellarBase.Memo.text('Happy birthday!')) + .addMemo(StellarBase.Memo.text("Happy birthday!")) .build(); this.innerTx.sign(this.innerSource); this.feeSource = StellarBase.Keypair.fromSecret( - 'SB7ZMPZB3YMMK5CUWENXVLZWBK4KYX4YU5JBXQNZSK2DP2Q7V3LVTO5V' + "SB7ZMPZB3YMMK5CUWENXVLZWBK4KYX4YU5JBXQNZSK2DP2Q7V3LVTO5V" ); this.transaction = StellarBase.TransactionBuilder.buildFeeBumpTransaction( this.feeSource, - '100', + "100", this.innerTx, this.networkPassphrase ); }); - it('constructs a FeeBumpTransaction object from a TransactionEnvelope', function () { + it("constructs a FeeBumpTransaction object from a TransactionEnvelope", function () { const transaction = this.transaction; transaction.sign(this.feeSource); expect(transaction.feeSource).to.be.equal(this.feeSource.publicKey()); - expect(transaction.fee).to.be.equal('200'); + expect(transaction.fee).to.be.equal("200"); const innerTransaction = transaction.innerTransaction; expect(innerTransaction.toXDR()).to.be.equal(this.innerTx.toXDR()); expect(innerTransaction.source).to.be.equal(this.innerSource.publicKey()); - expect(innerTransaction.fee).to.be.equal('100'); + expect(innerTransaction.fee).to.be.equal("100"); expect(innerTransaction.memo.type).to.be.equal(StellarBase.MemoText); - expect(innerTransaction.memo.value.toString('ascii')).to.be.equal( - 'Happy birthday!' + expect(innerTransaction.memo.value.toString("ascii")).to.be.equal( + "Happy birthday!" ); const operation = innerTransaction.operations[0]; - expect(operation.type).to.be.equal('payment'); + expect(operation.type).to.be.equal("payment"); expect(operation.destination).to.be.equal(this.destination); expect(operation.amount).to.be.equal(this.amount); const expectedXDR = - 'AAAABQAAAADgSJG2GOUMy/H9lHyjYZOwyuyytH8y0wWaoc596L+bEgAAAAAAAADIAAAAAgAAAABzdv3ojkzWHMD7KUoXhrPx0GH18vHKV0ZfqpMiEblG1gAAAGQAAAAAAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA9IYXBweSBiaXJ0aGRheSEAAAAAAQAAAAAAAAABAAAAAOBIkbYY5QzL8f2UfKNhk7DK7LK0fzLTBZqhzn3ov5sSAAAAAAAAAASoF8gAAAAAAAAAAAERuUbWAAAAQK933Dnt1pxXlsf1B5CYn81PLxeYsx+MiV9EGbMdUfEcdDWUySyIkdzJefjpR5ejdXVp/KXosGmNUQ+DrIBlzg0AAAAAAAAAAei/mxIAAABAijIIQpL6KlFefiL4FP8UWQktWEz4wFgGNSaXe7mZdVMuiREntehi1b7MRqZ1h+W+Y0y+Z2HtMunsilT2yS5mAA=='; + "AAAABQAAAADgSJG2GOUMy/H9lHyjYZOwyuyytH8y0wWaoc596L+bEgAAAAAAAADIAAAAAgAAAABzdv3ojkzWHMD7KUoXhrPx0GH18vHKV0ZfqpMiEblG1gAAAGQAAAAAAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA9IYXBweSBiaXJ0aGRheSEAAAAAAQAAAAAAAAABAAAAAOBIkbYY5QzL8f2UfKNhk7DK7LK0fzLTBZqhzn3ov5sSAAAAAAAAAASoF8gAAAAAAAAAAAERuUbWAAAAQK933Dnt1pxXlsf1B5CYn81PLxeYsx+MiV9EGbMdUfEcdDWUySyIkdzJefjpR5ejdXVp/KXosGmNUQ+DrIBlzg0AAAAAAAAAAei/mxIAAABAijIIQpL6KlFefiL4FP8UWQktWEz4wFgGNSaXe7mZdVMuiREntehi1b7MRqZ1h+W+Y0y+Z2HtMunsilT2yS5mAA=="; - expect(transaction.toEnvelope().toXDR().toString('base64')).to.be.equal( + expect(transaction.toEnvelope().toXDR().toString("base64")).to.be.equal( expectedXDR ); const expectedTxEnvelope = StellarBase.xdr.TransactionEnvelope.fromXDR( expectedXDR, - 'base64' + "base64" ).value(); expect(innerTransaction.source).to.equal( @@ -93,27 +93,27 @@ describe('FeeBumpTransaction', function () { expect(transaction.fee).to.equal(expectedTxEnvelope.tx().fee().toString()); expect(innerTransaction.signatures.length).to.equal(1); - expect(innerTransaction.signatures[0].toXDR().toString('base64')).to.equal( + expect(innerTransaction.signatures[0].toXDR().toString("base64")).to.equal( expectedTxEnvelope .tx() .innerTx() .value() .signatures()[0] .toXDR() - .toString('base64') + .toString("base64") ); expect(transaction.signatures.length).to.equal(1); - expect(transaction.signatures[0].toXDR().toString('base64')).to.equal( - expectedTxEnvelope.signatures()[0].toXDR().toString('base64') + expect(transaction.signatures[0].toXDR().toString("base64")).to.equal( + expectedTxEnvelope.signatures()[0].toXDR().toString("base64") ); }); - it('throws when a garbage Network is selected', function () { + it("throws when a garbage Network is selected", function () { const input = this.transaction.toEnvelope(); expect(() => { - new StellarBase.FeeBumpTransaction(input, { garbage: 'yes' }); + new StellarBase.FeeBumpTransaction(input, { garbage: "yes" }); }).to.throw(/expected a string/); expect(() => { @@ -121,14 +121,14 @@ describe('FeeBumpTransaction', function () { }).to.throw(/expected a string/); }); - it('signs correctly', function () { + it("signs correctly", function () { const tx = this.transaction; tx.sign(this.feeSource); const rawSig = tx.toEnvelope().feeBump().signatures()[0].signature(); expect(this.feeSource.verify(tx.hash(), rawSig)).to.equal(true); }); - it('signs using hash preimage', function () { + it("signs using hash preimage", function () { let preimage = randomBytes(64); let hash = StellarBase.hash(preimage); let tx = this.transaction; @@ -141,7 +141,7 @@ describe('FeeBumpTransaction', function () { ); }); - it('returns error when signing using hash preimage that is too long', function () { + it("returns error when signing using hash preimage that is too long", function () { let preimage = randomBytes(2 * 64); let tx = this.transaction; expect(() => tx.signHashX(preimage)).to.throw( @@ -149,24 +149,24 @@ describe('FeeBumpTransaction', function () { ); }); - describe('toEnvelope', function () { - it('does not return a reference to source signatures', function () { + describe("toEnvelope", function () { + it("does not return a reference to source signatures", function () { const transaction = this.transaction; const envelope = transaction.toEnvelope().value(); envelope.signatures().push({}); expect(transaction.signatures.length).to.equal(0); }); - it('does not return a reference to the source transaction', function () { + it("does not return a reference to the source transaction", function () { const transaction = this.transaction; const envelope = transaction.toEnvelope().value(); - envelope.tx().fee(StellarBase.xdr.Int64.fromString('300')); + envelope.tx().fee(StellarBase.xdr.Int64.fromString("300")); - expect(transaction.tx.fee().toString()).to.equal('200'); + expect(transaction.tx.fee().toString()).to.equal("200"); }); }); - it('adds signature correctly', function () { + it("adds signature correctly", function () { const transaction = this.transaction; const signer = this.feeSource; const presignHash = transaction.hash(); @@ -176,7 +176,7 @@ describe('FeeBumpTransaction', function () { this.networkPassphrase ); - const signature = signer.sign(presignHash).toString('base64'); + const signature = signer.sign(presignHash).toString("base64"); addedSignatureTx.addSignature(signer.publicKey(), signature); @@ -205,7 +205,7 @@ describe('FeeBumpTransaction', function () { expectBuffersToBeEqual(addedSignatureTx.hash(), transaction.hash()); }); - it('adds signature generated by getKeypairSignature', function () { + it("adds signature generated by getKeypairSignature", function () { const transaction = this.transaction; const presignHash = transaction.hash(); const signer = this.feeSource; @@ -215,7 +215,7 @@ describe('FeeBumpTransaction', function () { this.networkPassphrase ).getKeypairSignature(signer); - expect(signer.sign(presignHash).toString('base64')).to.equal(signature); + expect(signer.sign(presignHash).toString("base64")).to.equal(signature); const addedSignatureTx = new StellarBase.FeeBumpTransaction( transaction.toEnvelope(), @@ -251,7 +251,7 @@ describe('FeeBumpTransaction', function () { expectBuffersToBeEqual(addedSignatureTx.hash(), transaction.hash()); }); - it('does not add invalid signature', function () { + it("does not add invalid signature", function () { const transaction = this.transaction; const signer = this.feeSource; @@ -262,19 +262,19 @@ describe('FeeBumpTransaction', function () { const alteredTx = StellarBase.TransactionBuilder.buildFeeBumpTransaction( this.feeSource, - '200', + "200", this.innerTx, this.networkPassphrase ); expect(() => { alteredTx.addSignature(signer.publicKey(), signature); - }).to.throw('Invalid signature'); + }).to.throw("Invalid signature"); }); - it('outputs xdr as a string', function () { + it("outputs xdr as a string", function () { const xdrString = - 'AAAABQAAAADgSJG2GOUMy/H9lHyjYZOwyuyytH8y0wWaoc596L+bEgAAAAAAAADIAAAAAgAAAABzdv3ojkzWHMD7KUoXhrPx0GH18vHKV0ZfqpMiEblG1gAAAGQAAAAAAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA9IYXBweSBiaXJ0aGRheSEAAAAAAQAAAAAAAAABAAAAAOBIkbYY5QzL8f2UfKNhk7DK7LK0fzLTBZqhzn3ov5sSAAAAAAAAAASoF8gAAAAAAAAAAAERuUbWAAAAQK933Dnt1pxXlsf1B5CYn81PLxeYsx+MiV9EGbMdUfEcdDWUySyIkdzJefjpR5ejdXVp/KXosGmNUQ+DrIBlzg0AAAAAAAAAAei/mxIAAABAijIIQpL6KlFefiL4FP8UWQktWEz4wFgGNSaXe7mZdVMuiREntehi1b7MRqZ1h+W+Y0y+Z2HtMunsilT2yS5mAA=='; + "AAAABQAAAADgSJG2GOUMy/H9lHyjYZOwyuyytH8y0wWaoc596L+bEgAAAAAAAADIAAAAAgAAAABzdv3ojkzWHMD7KUoXhrPx0GH18vHKV0ZfqpMiEblG1gAAAGQAAAAAAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA9IYXBweSBiaXJ0aGRheSEAAAAAAQAAAAAAAAABAAAAAOBIkbYY5QzL8f2UfKNhk7DK7LK0fzLTBZqhzn3ov5sSAAAAAAAAAASoF8gAAAAAAAAAAAERuUbWAAAAQK933Dnt1pxXlsf1B5CYn81PLxeYsx+MiV9EGbMdUfEcdDWUySyIkdzJefjpR5ejdXVp/KXosGmNUQ+DrIBlzg0AAAAAAAAAAei/mxIAAABAijIIQpL6KlFefiL4FP8UWQktWEz4wFgGNSaXe7mZdVMuiREntehi1b7MRqZ1h+W+Y0y+Z2HtMunsilT2yS5mAA=="; const transaction = new StellarBase.FeeBumpTransaction( xdrString, this.networkPassphrase @@ -283,8 +283,8 @@ describe('FeeBumpTransaction', function () { expect(transaction.toXDR()).to.be.equal(xdrString); }); - it('decodes muxed addresses correctly', function () { - const muxedFeeSource = this.feeSource.xdrMuxedAccount('0'); + it("decodes muxed addresses correctly", function () { + const muxedFeeSource = this.feeSource.xdrMuxedAccount("0"); const muxedAddress = encodeMuxedAccountToAddress(muxedFeeSource); const envelope = this.transaction.toEnvelope(); @@ -299,7 +299,7 @@ describe('FeeBumpTransaction', function () { }); function expectBuffersToBeEqual(left, right) { - let leftHex = left.toString('hex'); - let rightHex = right.toString('hex'); + let leftHex = left.toString("hex"); + let rightHex = right.toString("hex"); expect(leftHex).to.eql(rightHex); } diff --git a/test/unit/get_liquidity_pool_id_test.js b/test/unit/get_liquidity_pool_id_test.js index 7eb6e66f6..7acab1816 100644 --- a/test/unit/get_liquidity_pool_id_test.js +++ b/test/unit/get_liquidity_pool_id_test.js @@ -1,15 +1,15 @@ const assetA = new StellarBase.Asset( - 'ARST', - 'GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO' + "ARST", + "GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO" ); const assetB = new StellarBase.Asset( - 'USD', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "USD", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); const fee = StellarBase.LiquidityPoolFeeV18; -describe('StellarBase#getLiquidityPoolId()', function () { - it('throws an error if the liquidity pool type is not `constant_product`', function () { +describe("StellarBase#getLiquidityPoolId()", function () { + it("throws an error if the liquidity pool type is not `constant_product`", function () { expect(() => StellarBase.getLiquidityPoolId()).to.throw( /liquidityPoolType is invalid/ ); @@ -18,60 +18,60 @@ describe('StellarBase#getLiquidityPoolId()', function () { /liquidityPoolType is invalid/ ); - expect(() => StellarBase.getLiquidityPoolId('random_type')).to.throw( + expect(() => StellarBase.getLiquidityPoolId("random_type")).to.throw( /liquidityPoolType is invalid/ ); }); - it('throws an error if assetA is invalid', function () { + it("throws an error if assetA is invalid", function () { expect(() => - StellarBase.getLiquidityPoolId('constant_product', {}) + StellarBase.getLiquidityPoolId("constant_product", {}) ).to.throw(/assetA is invalid/); expect(() => - StellarBase.getLiquidityPoolId('constant_product', { assetA: 'random' }) + StellarBase.getLiquidityPoolId("constant_product", { assetA: "random" }) ).to.throw(/assetA is invalid/); }); - it('throws an error if assetB is invalid', function () { + it("throws an error if assetB is invalid", function () { expect(() => - StellarBase.getLiquidityPoolId('constant_product', { + StellarBase.getLiquidityPoolId("constant_product", { assetA }) ).to.throw(/assetB is invalid/); expect(() => - StellarBase.getLiquidityPoolId('constant_product', { + StellarBase.getLiquidityPoolId("constant_product", { assetA, - assetB: 'random' + assetB: "random" }) ).to.throw(/assetB is invalid/); }); - it('throws an error if fee is invalid', function () { + it("throws an error if fee is invalid", function () { expect(() => - StellarBase.getLiquidityPoolId('constant_product', { + StellarBase.getLiquidityPoolId("constant_product", { assetA, assetB }) ).to.throw(/fee is invalid/); }); - it('returns poolId correctly', function () { - const poolId = StellarBase.getLiquidityPoolId('constant_product', { + it("returns poolId correctly", function () { + const poolId = StellarBase.getLiquidityPoolId("constant_product", { assetA, assetB, fee }); - expect(poolId.toString('hex')).to.equal( - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7' + expect(poolId.toString("hex")).to.equal( + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7" ); }); - it('throws an error if assets are not in lexicographic order', function () { + it("throws an error if assets are not in lexicographic order", function () { expect(() => - StellarBase.getLiquidityPoolId('constant_product', { + StellarBase.getLiquidityPoolId("constant_product", { assetA: assetB, assetB: assetA, fee @@ -80,94 +80,94 @@ describe('StellarBase#getLiquidityPoolId()', function () { }); }); -describe('StellarBase#getLiquidityPoolId() mirror stellar-core getPoolID() tests', function () { +describe("StellarBase#getLiquidityPoolId() mirror stellar-core getPoolID() tests", function () { // The tests below were copied from https://github.com/stellar/stellar-core/blob/c5f6349b240818f716617ca6e0f08d295a6fad9a/src/transactions/test/LiquidityPoolTradeTests.cpp#L430-L526 const issuer1 = StellarBase.StrKey.encodeEd25519PublicKey( Buffer.from( - '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef', - 'hex' + "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef", + "hex" ) ); const issuer2 = StellarBase.StrKey.encodeEd25519PublicKey( Buffer.from( - 'abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789', - 'hex' + "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789", + "hex" ) ); - it('returns poolId correctly for native and alphaNum4 (short and full length)', function () { - let poolId = StellarBase.getLiquidityPoolId('constant_product', { + it("returns poolId correctly for native and alphaNum4 (short and full length)", function () { + let poolId = StellarBase.getLiquidityPoolId("constant_product", { assetA: new StellarBase.Asset.native(), - assetB: new StellarBase.Asset('AbC', issuer1), + assetB: new StellarBase.Asset("AbC", issuer1), fee }); - expect(poolId.toString('hex')).to.equal( - 'c17f36fbd210e43dca1cda8edc5b6c0f825fcb72b39f0392fd6309844d77ff7d' + expect(poolId.toString("hex")).to.equal( + "c17f36fbd210e43dca1cda8edc5b6c0f825fcb72b39f0392fd6309844d77ff7d" ); - poolId = StellarBase.getLiquidityPoolId('constant_product', { + poolId = StellarBase.getLiquidityPoolId("constant_product", { assetA: new StellarBase.Asset.native(), - assetB: new StellarBase.Asset('AbCd', issuer1), + assetB: new StellarBase.Asset("AbCd", issuer1), fee }); - expect(poolId.toString('hex')).to.equal( - '80e0c5dc79ed76bb7e63681f6456136762f0d01ede94bb379dbc793e66db35e6' + expect(poolId.toString("hex")).to.equal( + "80e0c5dc79ed76bb7e63681f6456136762f0d01ede94bb379dbc793e66db35e6" ); }); - it('returns poolId correctly for native and alphaNum12 (short and full length)', function () { - let poolId = StellarBase.getLiquidityPoolId('constant_product', { + it("returns poolId correctly for native and alphaNum12 (short and full length)", function () { + let poolId = StellarBase.getLiquidityPoolId("constant_product", { assetA: new StellarBase.Asset.native(), - assetB: new StellarBase.Asset('AbCdEfGhIjK', issuer1), + assetB: new StellarBase.Asset("AbCdEfGhIjK", issuer1), fee }); - expect(poolId.toString('hex')).to.equal( - 'd2306c6e8532f99418e9d38520865e1c1059cddb6793da3cc634224f2ffb5bd4' + expect(poolId.toString("hex")).to.equal( + "d2306c6e8532f99418e9d38520865e1c1059cddb6793da3cc634224f2ffb5bd4" ); - poolId = StellarBase.getLiquidityPoolId('constant_product', { + poolId = StellarBase.getLiquidityPoolId("constant_product", { assetA: new StellarBase.Asset.native(), - assetB: new StellarBase.Asset('AbCdEfGhIjKl', issuer1), + assetB: new StellarBase.Asset("AbCdEfGhIjKl", issuer1), fee }); - expect(poolId.toString('hex')).to.equal( - '807e9e66653b5fda4dd4e672ff64a929fc5fdafe152eeadc07bb460c4849d711' + expect(poolId.toString("hex")).to.equal( + "807e9e66653b5fda4dd4e672ff64a929fc5fdafe152eeadc07bb460c4849d711" ); }); - it('returns poolId correctly for alphaNum4 and alphaNum12, same code but different issuer', function () { - let poolId = StellarBase.getLiquidityPoolId('constant_product', { - assetA: new StellarBase.Asset('aBc', issuer1), - assetB: new StellarBase.Asset('aBc', issuer2), + it("returns poolId correctly for alphaNum4 and alphaNum12, same code but different issuer", function () { + let poolId = StellarBase.getLiquidityPoolId("constant_product", { + assetA: new StellarBase.Asset("aBc", issuer1), + assetB: new StellarBase.Asset("aBc", issuer2), fee }); - expect(poolId.toString('hex')).to.equal( - '5d7188454299529856586e81ea385d2c131c6afdd9d58c82e9aa558c16522fea' + expect(poolId.toString("hex")).to.equal( + "5d7188454299529856586e81ea385d2c131c6afdd9d58c82e9aa558c16522fea" ); - poolId = StellarBase.getLiquidityPoolId('constant_product', { - assetA: new StellarBase.Asset('aBcDeFgHiJkL', issuer1), - assetB: new StellarBase.Asset('aBcDeFgHiJkL', issuer2), + poolId = StellarBase.getLiquidityPoolId("constant_product", { + assetA: new StellarBase.Asset("aBcDeFgHiJkL", issuer1), + assetB: new StellarBase.Asset("aBcDeFgHiJkL", issuer2), fee }); - expect(poolId.toString('hex')).to.equal( - '93fa82ecaabe987461d1e3c8e0fd6510558b86ac82a41f7c70b112281be90c71' + expect(poolId.toString("hex")).to.equal( + "93fa82ecaabe987461d1e3c8e0fd6510558b86ac82a41f7c70b112281be90c71" ); }); - it('returns poolId correctly for alphaNum4 and alphaNum12 do not depend on issuer or code', function () { - const poolId = StellarBase.getLiquidityPoolId('constant_product', { - assetA: new StellarBase.Asset('aBc', issuer1), - assetB: new StellarBase.Asset('aBcDeFgHiJk', issuer2), + it("returns poolId correctly for alphaNum4 and alphaNum12 do not depend on issuer or code", function () { + const poolId = StellarBase.getLiquidityPoolId("constant_product", { + assetA: new StellarBase.Asset("aBc", issuer1), + assetB: new StellarBase.Asset("aBcDeFgHiJk", issuer2), fee }); - expect(poolId.toString('hex')).to.equal( - 'c0d4c87bbaade53764b904fde2901a0353af437e9d3a976f1252670b85a36895' + expect(poolId.toString("hex")).to.equal( + "c0d4c87bbaade53764b904fde2901a0353af437e9d3a976f1252670b85a36895" ); }); }); -describe('StellarBase#LiquidityPoolFeeV18', function () { - it('throws an error if the input assets are invalid', function () { +describe("StellarBase#LiquidityPoolFeeV18", function () { + it("throws an error if the input assets are invalid", function () { expect(StellarBase.LiquidityPoolFeeV18).to.equal(30); }); }); diff --git a/test/unit/hashing_test.js b/test/unit/hashing_test.js index 82498888d..cebd0c98a 100644 --- a/test/unit/hashing_test.js +++ b/test/unit/hashing_test.js @@ -1,27 +1,27 @@ -describe('StellarBase#hash', function () { - it('hashes a string properly, using SHA256', function () { - let msg = 'hello world'; +describe("StellarBase#hash", function () { + it("hashes a string properly, using SHA256", function () { + let msg = "hello world"; let expectedHex = - 'b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9'; - let actualHex = StellarBase.hash(msg).toString('hex'); + "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"; + let actualHex = StellarBase.hash(msg).toString("hex"); expect(actualHex).to.eql(expectedHex); }); - it('hashes a buffer properly, using SHA256', function () { - let msg = Buffer.from('hello world', 'utf8'); + it("hashes a buffer properly, using SHA256", function () { + let msg = Buffer.from("hello world", "utf8"); let expectedHex = - 'b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9'; - let actualHex = StellarBase.hash(msg).toString('hex'); + "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"; + let actualHex = StellarBase.hash(msg).toString("hex"); expect(actualHex).to.eql(expectedHex); }); - it('hashes an array of bytes properly, using SHA256', function () { + it("hashes an array of bytes properly, using SHA256", function () { let msg = [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]; let expectedHex = - 'b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9'; - let actualHex = StellarBase.hash(msg).toString('hex'); + "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"; + let actualHex = StellarBase.hash(msg).toString("hex"); expect(actualHex).to.eql(expectedHex); }); diff --git a/test/unit/i256_test.js b/test/unit/i256_test.js index baa2084be..6d2cfba13 100644 --- a/test/unit/i256_test.js +++ b/test/unit/i256_test.js @@ -1,16 +1,16 @@ // import { XdrWriter, XdrReader } from '@stellar/js-xdr'; const I256 = StellarBase.Int256; // shorthand -describe('I256.isValid', function () { - it('returns true for I256 instances', function () { +describe("I256.isValid", function () { + it("returns true for I256 instances", function () { expect(I256.isValid(I256.MIN_VALUE)).to.be.true; expect(I256.isValid(I256.MAX_VALUE)).to.be.true; - expect(I256.isValid(I256.fromString('0'))).to.be.true; - expect(I256.isValid(I256.fromString('-1'))).to.be.true; + expect(I256.isValid(I256.fromString("0"))).to.be.true; + expect(I256.isValid(I256.fromString("-1"))).to.be.true; expect(I256.isValid(5n)).to.be.true; }); - it('returns false for non I256', function () { + it("returns false for non I256", function () { expect(I256.isValid(null)).to.be.false; expect(I256.isValid(undefined)).to.be.false; expect(I256.isValid([])).to.be.false; @@ -20,8 +20,8 @@ describe('I256.isValid', function () { }); }); -describe('I256.slice', function () { - it('slices number to parts', function () { +describe("I256.slice", function () { + it("slices number to parts", function () { expect( new I256( -0x7fffffff800000005fffffffa00000003fffffffc00000001ffffffffn @@ -40,19 +40,19 @@ describe('I256.slice', function () { }); }); -describe('I256.fromString', function () { - it('works for positive numbers', function () { - expect(I256.fromString('1059').toString()).to.eql('1059'); +describe("I256.fromString", function () { + it("works for positive numbers", function () { + expect(I256.fromString("1059").toString()).to.eql("1059"); }); - it('works for negative numbers', function () { + it("works for negative numbers", function () { expect( - I256.fromString('-105909234885029834059234850234985028304085').toString() - ).to.eql('-105909234885029834059234850234985028304085'); + I256.fromString("-105909234885029834059234850234985028304085").toString() + ).to.eql("-105909234885029834059234850234985028304085"); }); - it('fails when providing a string with a decimal place', function () { - expect(() => I256.fromString('105946095601.5')).to.throw(/bigint-like/); + it("fails when providing a string with a decimal place", function () { + expect(() => I256.fromString("105946095601.5")).to.throw(/bigint-like/); }); }); diff --git a/test/unit/invocation_test.js b/test/unit/invocation_test.js index a7f6b7cf2..4e7f312d3 100644 --- a/test/unit/invocation_test.js +++ b/test/unit/invocation_test.js @@ -45,7 +45,7 @@ function makeInvocation(contract, name, ...args) { ); } -describe('parsing invocation trees', function () { +describe("parsing invocation trees", function () { const invoker = rk(); const [nftContract, swapContract, xlmContract, usdcContract] = [ 1, 2, 3, 4 @@ -59,7 +59,7 @@ describe('parsing invocation trees', function () { const usdcId = rk(); const dest = rk(); const rootInvocation = new xdr.SorobanAuthorizedInvocation({ - function: makeInvocation(nftContract, 'purchase', `SomeNft:${nftId}`, 7), + function: makeInvocation(nftContract, "purchase", `SomeNft:${nftId}`, 7), subInvocations: [ new xdr.SorobanAuthorizedInvocation({ function: @@ -67,7 +67,7 @@ describe('parsing invocation trees', function () { new xdr.CreateContractArgs({ contractIdPreimage: xdr.ContractIdPreimage.contractIdPreimageFromAsset( - new Asset('TEST', nftId).toXDRObject() + new Asset("TEST", nftId).toXDRObject() ), executable: xdr.ContractExecutable.contractExecutableStellarAsset() @@ -78,8 +78,8 @@ describe('parsing invocation trees', function () { new xdr.SorobanAuthorizedInvocation({ function: makeInvocation( swapContract, - 'swap', - 'native', + "swap", + "native", `USDC:${usdcId}`, new Address(invoker).toScVal(), new Address(dest).toScVal() @@ -88,18 +88,18 @@ describe('parsing invocation trees', function () { new xdr.SorobanAuthorizedInvocation({ function: makeInvocation( xlmContract, - 'transfer', + "transfer", new Address(invoker).toScVal(), - '7' + "7" ), subInvocations: [] }), new xdr.SorobanAuthorizedInvocation({ function: makeInvocation( usdcContract, - 'transfer', + "transfer", new Address(invoker).toScVal(), - '1' + "1" ), subInvocations: [] }) @@ -108,9 +108,9 @@ describe('parsing invocation trees', function () { new xdr.SorobanAuthorizedInvocation({ function: makeInvocation( nftContract, - 'transfer', + "transfer", nftContract.address().toScVal(), - '2' + "2" ), subInvocations: [] }), @@ -125,13 +125,13 @@ describe('parsing invocation trees', function () { salt: Buffer.alloc(32, 0) }) ), - constructorArgs: [1, '2', 3].map((arg, i) => { + constructorArgs: [1, "2", 3].map((arg, i) => { return nativeToScVal(arg, { - type: ['u32', 'string', 'i32'][i] + type: ["u32", "string", "i32"][i] }); }), executable: xdr.ContractExecutable.contractExecutableWasm( - Buffer.alloc(32, '\x20') + Buffer.alloc(32, "\x20") ) }) ), @@ -141,68 +141,68 @@ describe('parsing invocation trees', function () { }); const expectedParsed = { - type: 'execute', + type: "execute", args: { source: nftContract.contractId(), - function: 'purchase', - args: [`SomeNft:${nftId}`, '7'] + function: "purchase", + args: [`SomeNft:${nftId}`, "7"] }, invocations: [ { - type: 'create', + type: "create", args: { - type: 'sac', + type: "sac", asset: `TEST:${nftId}` }, invocations: [] }, { - type: 'execute', + type: "execute", args: { source: swapContract.contractId(), - function: 'swap', - args: ['native', `USDC:${usdcId}`, invoker, dest] + function: "swap", + args: ["native", `USDC:${usdcId}`, invoker, dest] }, invocations: [ { - type: 'execute', + type: "execute", args: { source: xlmContract.contractId(), - function: 'transfer', - args: [invoker, '7'] + function: "transfer", + args: [invoker, "7"] }, invocations: [] }, { - type: 'execute', + type: "execute", args: { source: usdcContract.contractId(), - function: 'transfer', - args: [invoker, '1'] + function: "transfer", + args: [invoker, "1"] }, invocations: [] } ] }, { - type: 'execute', + type: "execute", args: { source: nftContract.contractId(), - function: 'transfer', - args: [nftContract.contractId(), '2'] + function: "transfer", + args: [nftContract.contractId(), "2"] }, invocations: [] }, { - type: 'create', + type: "create", args: { - type: 'wasm', + type: "wasm", wasm: { - salt: '00'.repeat(32), - hash: '20'.repeat(32), + salt: "00".repeat(32), + hash: "20".repeat(32), address: nftContract.contractId(), - constructorArgs: [1, '2', 3] + constructorArgs: [1, "2", 3] } }, invocations: [] @@ -210,32 +210,32 @@ describe('parsing invocation trees', function () { ] }; - it('builds an invocation tree', function () { + it("builds an invocation tree", function () { expect(() => rootInvocation.toXDR()).not.to.throw( undefined, - 'the rootInvocation is not a valid SorobanAuthorizedInvocation instance' + "the rootInvocation is not a valid SorobanAuthorizedInvocation instance" ); }); - it('outputs a human-readable version of it', function () { + it("outputs a human-readable version of it", function () { const parsed = buildInvocationTree(rootInvocation); expect( JSON.stringify( parsed, - (_, val) => (typeof val === 'bigint' ? val.toString() : val), + (_, val) => (typeof val === "bigint" ? val.toString() : val), 2 ) ).to.deep.equal(JSON.stringify(expectedParsed, null, 2)); }); - it('walks correctly', function () { + it("walks correctly", function () { let walkCount = 0; let walkSet = {}; let maxDepth = 0; walkInvocationTree(rootInvocation, (node, depth, parent) => { walkCount++; - const s = node.toXDR('base64'); + const s = node.toXDR("base64"); walkSet[s] = s in walkSet ? walkSet[s] + 1 : 1; maxDepth = Math.max(maxDepth, depth); return true; diff --git a/test/unit/keypair_test.js b/test/unit/keypair_test.js index 3f9ebd955..c2fdca017 100644 --- a/test/unit/keypair_test.js +++ b/test/unit/keypair_test.js @@ -1,6 +1,6 @@ -describe('Keypair.contructor', function () { - it('fails when passes secret key does not match public key', function () { - let secret = 'SD7X7LEHBNMUIKQGKPARG5TDJNBHKC346OUARHGZL5ITC6IJPXHILY36'; +describe("Keypair.contructor", function () { + it("fails when passes secret key does not match public key", function () { + let secret = "SD7X7LEHBNMUIKQGKPARG5TDJNBHKC346OUARHGZL5ITC6IJPXHILY36"; let kp = StellarBase.Keypair.fromSecret(secret); let secretKey = kp.rawSecretKey(); @@ -8,79 +8,79 @@ describe('Keypair.contructor', function () { publicKey[0] = 0; // Make public key invalid expect( - () => new StellarBase.Keypair({ type: 'ed25519', secretKey, publicKey }) + () => new StellarBase.Keypair({ type: "ed25519", secretKey, publicKey }) ).to.throw(/secretKey does not match publicKey/); }); - it('fails when secretKey length is invalid', function () { + it("fails when secretKey length is invalid", function () { let secretKey = Buffer.alloc(33); expect( - () => new StellarBase.Keypair({ type: 'ed25519', secretKey }) + () => new StellarBase.Keypair({ type: "ed25519", secretKey }) ).to.throw(/secretKey length is invalid/); }); - it('fails when publicKey length is invalid', function () { + it("fails when publicKey length is invalid", function () { let publicKey = Buffer.alloc(33); expect( - () => new StellarBase.Keypair({ type: 'ed25519', publicKey }) + () => new StellarBase.Keypair({ type: "ed25519", publicKey }) ).to.throw(/publicKey length is invalid/); }); }); -describe('Keypair.fromSecret', function () { - it('creates a keypair correctly', function () { - let secret = 'SD7X7LEHBNMUIKQGKPARG5TDJNBHKC346OUARHGZL5ITC6IJPXHILY36'; +describe("Keypair.fromSecret", function () { + it("creates a keypair correctly", function () { + let secret = "SD7X7LEHBNMUIKQGKPARG5TDJNBHKC346OUARHGZL5ITC6IJPXHILY36"; let kp = StellarBase.Keypair.fromSecret(secret); expect(kp).to.be.instanceof(StellarBase.Keypair); expect(kp.publicKey()).to.eql( - 'GDFQVQCYYB7GKCGSCUSIQYXTPLV5YJ3XWDMWGQMDNM4EAXAL7LITIBQ7' + "GDFQVQCYYB7GKCGSCUSIQYXTPLV5YJ3XWDMWGQMDNM4EAXAL7LITIBQ7" ); expect(kp.secret()).to.eql(secret); }); it("throw an error if the arg isn't strkey encoded as a seed", function () { - expect(() => StellarBase.Keypair.fromSecret('hel0')).to.throw(); + expect(() => StellarBase.Keypair.fromSecret("hel0")).to.throw(); expect(() => StellarBase.Keypair.fromSecret( - 'SBWUBZ3SIPLLF5CCXLWUB2Z6UBTYAW34KVXOLRQ5HDAZG4ZY7MHNBWJ1' + "SBWUBZ3SIPLLF5CCXLWUB2Z6UBTYAW34KVXOLRQ5HDAZG4ZY7MHNBWJ1" ) ).to.throw(); expect(() => - StellarBase.Keypair.fromSecret('masterpassphrasemasterpassphrase') + StellarBase.Keypair.fromSecret("masterpassphrasemasterpassphrase") ).to.throw(); expect(() => StellarBase.Keypair.fromSecret( - 'gsYRSEQhTffqA9opPepAENCr2WG6z5iBHHubxxbRzWaHf8FBWcu' + "gsYRSEQhTffqA9opPepAENCr2WG6z5iBHHubxxbRzWaHf8FBWcu" ) ).to.throw(); }); }); -describe('Keypair.fromRawEd25519Seed', function () { - it('creates a keypair correctly', function () { - let seed = 'masterpassphrasemasterpassphrase'; +describe("Keypair.fromRawEd25519Seed", function () { + it("creates a keypair correctly", function () { + let seed = "masterpassphrasemasterpassphrase"; let kp = StellarBase.Keypair.fromRawEd25519Seed(seed); expect(kp).to.be.instanceof(StellarBase.Keypair); expect(kp.publicKey()).to.eql( - 'GAXDYNIBA5E4DXR5TJN522RRYESFQ5UNUXHIPTFGVLLD5O5K552DF5ZH' + "GAXDYNIBA5E4DXR5TJN522RRYESFQ5UNUXHIPTFGVLLD5O5K552DF5ZH" ); expect(kp.secret()).to.eql( - 'SBWWC43UMVZHAYLTONYGQ4TBONSW2YLTORSXE4DBONZXA2DSMFZWLP2R' + "SBWWC43UMVZHAYLTONYGQ4TBONSW2YLTORSXE4DBONZXA2DSMFZWLP2R" ); - expect(kp.rawPublicKey().toString('hex')).to.eql( - '2e3c35010749c1de3d9a5bdd6a31c12458768da5ce87cca6aad63ebbaaef7432' + expect(kp.rawPublicKey().toString("hex")).to.eql( + "2e3c35010749c1de3d9a5bdd6a31c12458768da5ce87cca6aad63ebbaaef7432" ); }); it("throws an error if the arg isn't 32 bytes", function () { expect(() => - StellarBase.Keypair.fromRawEd25519Seed('masterpassphrasemasterpassphras') + StellarBase.Keypair.fromRawEd25519Seed("masterpassphrasemasterpassphras") ).to.throw(); expect(() => StellarBase.Keypair.fromRawEd25519Seed( - 'masterpassphrasemasterpassphrase1' + "masterpassphrasemasterpassphrase1" ) ).to.throw(); expect(() => StellarBase.Keypair.fromRawEd25519Seed(null)).to.throw(); @@ -88,55 +88,55 @@ describe('Keypair.fromRawEd25519Seed', function () { }); }); -describe('Keypair.fromPublicKey', function () { - it('creates a keypair correctly', function () { +describe("Keypair.fromPublicKey", function () { + it("creates a keypair correctly", function () { let kp = StellarBase.Keypair.fromPublicKey( - 'GAXDYNIBA5E4DXR5TJN522RRYESFQ5UNUXHIPTFGVLLD5O5K552DF5ZH' + "GAXDYNIBA5E4DXR5TJN522RRYESFQ5UNUXHIPTFGVLLD5O5K552DF5ZH" ); expect(kp).to.be.instanceof(StellarBase.Keypair); expect(kp.publicKey()).to.eql( - 'GAXDYNIBA5E4DXR5TJN522RRYESFQ5UNUXHIPTFGVLLD5O5K552DF5ZH' + "GAXDYNIBA5E4DXR5TJN522RRYESFQ5UNUXHIPTFGVLLD5O5K552DF5ZH" ); - expect(kp.rawPublicKey().toString('hex')).to.eql( - '2e3c35010749c1de3d9a5bdd6a31c12458768da5ce87cca6aad63ebbaaef7432' + expect(kp.rawPublicKey().toString("hex")).to.eql( + "2e3c35010749c1de3d9a5bdd6a31c12458768da5ce87cca6aad63ebbaaef7432" ); }); it("throw an error if the arg isn't strkey encoded as a accountid", function () { - expect(() => StellarBase.Keypair.fromPublicKey('hel0')).to.throw(); + expect(() => StellarBase.Keypair.fromPublicKey("hel0")).to.throw(); expect(() => - StellarBase.Keypair.fromPublicKey('masterpassphrasemasterpassphrase') + StellarBase.Keypair.fromPublicKey("masterpassphrasemasterpassphrase") ).to.throw(); expect(() => StellarBase.Keypair.fromPublicKey( - 'sfyjodTxbwLtRToZvi6yQ1KnpZriwTJ7n6nrASFR6goRviCU3Ff' + "sfyjodTxbwLtRToZvi6yQ1KnpZriwTJ7n6nrASFR6goRviCU3Ff" ) ).to.throw(); }); it("throws an error if the address isn't 32 bytes", function () { expect(() => - StellarBase.Keypair.fromPublicKey('masterpassphrasemasterpassphrase') + StellarBase.Keypair.fromPublicKey("masterpassphrasemasterpassphrase") ).to.throw(); expect(() => - StellarBase.Keypair.fromPublicKey('masterpassphrasemasterpassphrase') + StellarBase.Keypair.fromPublicKey("masterpassphrasemasterpassphrase") ).to.throw(); expect(() => StellarBase.Keypair.fromPublicKey(null)).to.throw(); expect(() => StellarBase.Keypair.fromPublicKey()).to.throw(); }); }); -describe('Keypair.random', function () { - it('creates a keypair correctly', function () { +describe("Keypair.random", function () { + it("creates a keypair correctly", function () { let kp = StellarBase.Keypair.random(); expect(kp).to.be.instanceof(StellarBase.Keypair); }); }); -describe('Keypair.xdrMuxedAccount', function () { - it('returns a valid MuxedAccount with a Ed25519 key type', function () { +describe("Keypair.xdrMuxedAccount", function () { + it("returns a valid MuxedAccount with a Ed25519 key type", function () { const kp = StellarBase.Keypair.fromPublicKey( - 'GAXDYNIBA5E4DXR5TJN522RRYESFQ5UNUXHIPTFGVLLD5O5K552DF5ZH' + "GAXDYNIBA5E4DXR5TJN522RRYESFQ5UNUXHIPTFGVLLD5O5K552DF5ZH" ); const muxed = kp.xdrMuxedAccount(); expect(muxed).to.be.instanceof(StellarBase.xdr.MuxedAccount); @@ -146,9 +146,9 @@ describe('Keypair.xdrMuxedAccount', function () { }); }); -describe('Keypair.sign*Decorated', function () { - describe('returning the correct hints', function () { - const secret = 'SDVSYBKP7ESCODJSNGVDNXAJB63NPS5GQXSBZXLNT2Y4YVUJCFZWODGJ'; +describe("Keypair.sign*Decorated", function () { + describe("returning the correct hints", function () { + const secret = "SDVSYBKP7ESCODJSNGVDNXAJB63NPS5GQXSBZXLNT2Y4YVUJCFZWODGJ"; const kp = StellarBase.Keypair.fromSecret(secret); // Note: these were generated using the Go SDK as a source of truth @@ -181,7 +181,7 @@ describe('Keypair.sign*Decorated', function () { }); const decoSig = kp.signPayloadDecorated(data); - expect(decoSig.toXDR('hex')).to.eql(expectedXdr.toXDR('hex')); + expect(decoSig.toXDR("hex")).to.eql(expectedXdr.toXDR("hex")); }); it(`regular#${data.length}`, function () { @@ -191,7 +191,7 @@ describe('Keypair.sign*Decorated', function () { }); const decoSig = kp.signDecorated(data); - expect(decoSig.toXDR('hex')).to.eql(expectedXdr.toXDR('hex')); + expect(decoSig.toXDR("hex")).to.eql(expectedXdr.toXDR("hex")); }); }); }); diff --git a/test/unit/liquidity_pool_asset_test.js b/test/unit/liquidity_pool_asset_test.js index 16cbb7e27..4f4d7fb0c 100644 --- a/test/unit/liquidity_pool_asset_test.js +++ b/test/unit/liquidity_pool_asset_test.js @@ -1,55 +1,55 @@ const assetA = new StellarBase.Asset( - 'ARST', - 'GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO' + "ARST", + "GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO" ); const assetB = new StellarBase.Asset( - 'USD', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "USD", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); const fee = StellarBase.LiquidityPoolFeeV18; -describe('LiquidityPoolAsset', function () { - describe('constructor', function () { - it('throws an error if assetA is invalid', function () { +describe("LiquidityPoolAsset", function () { + describe("constructor", function () { + it("throws an error if assetA is invalid", function () { expect(() => new StellarBase.LiquidityPoolAsset()).to.throw( /assetA is invalid/ ); - expect(() => new StellarBase.LiquidityPoolAsset('random')).to.throw( + expect(() => new StellarBase.LiquidityPoolAsset("random")).to.throw( /assetA is invalid/ ); }); - it('throws an error if assetB is invalid', function () { + it("throws an error if assetB is invalid", function () { expect(() => new StellarBase.LiquidityPoolAsset(assetA)).to.throw( /assetB is invalid/ ); expect( - () => new StellarBase.LiquidityPoolAsset(assetA, 'random') + () => new StellarBase.LiquidityPoolAsset(assetA, "random") ).to.throw(/assetB is invalid/); }); - it('throws an error if assets are not ordered', function () { + it("throws an error if assets are not ordered", function () { expect(() => new StellarBase.LiquidityPoolAsset(assetB, assetA)).to.throw( /Assets are not in lexicographic order/ ); }); - it('throws an error if fee is invalid', function () { + it("throws an error if fee is invalid", function () { expect(() => new StellarBase.LiquidityPoolAsset(assetA, assetB)).to.throw( /fee is invalid/ ); }); - it('does not throw when using the correct attributes', function () { + it("does not throw when using the correct attributes", function () { expect(() => new StellarBase.LiquidityPoolAsset(assetA, assetB, fee)).to .not.throw; }); }); - describe('getLiquidityPoolParameters()', function () { - it('returns liquidity pool parameters for a liquidity pool asset', function () { + describe("getLiquidityPoolParameters()", function () { + it("returns liquidity pool parameters for a liquidity pool asset", function () { const asset = new StellarBase.LiquidityPoolAsset(assetA, assetB, fee); const gotPoolParams = asset.getLiquidityPoolParameters(); expect(gotPoolParams.assetA).to.eq(assetA); @@ -58,20 +58,20 @@ describe('LiquidityPoolAsset', function () { }); }); - describe('getAssetType()', function () { + describe("getAssetType()", function () { it('returns "liquidity_pool_shares" if the trustline asset is a liquidity pool ID', function () { const asset = new StellarBase.LiquidityPoolAsset(assetA, assetB, fee); - expect(asset.getAssetType()).to.eq('liquidity_pool_shares'); + expect(asset.getAssetType()).to.eq("liquidity_pool_shares"); }); }); - describe('toXDRObject()', function () { - it('parses a liquidity pool trustline asset object', function () { + describe("toXDRObject()", function () { + it("parses a liquidity pool trustline asset object", function () { const asset = new StellarBase.LiquidityPoolAsset(assetA, assetB, fee); const xdr = asset.toXDRObject(); expect(xdr).to.be.instanceof(StellarBase.xdr.ChangeTrustAsset); - expect(xdr.arm()).to.eq('liquidityPool'); + expect(xdr.arm()).to.eq("liquidityPool"); const gotPoolParams = asset.getLiquidityPoolParameters(); expect(gotPoolParams.assetA).to.eq(assetA); @@ -80,7 +80,7 @@ describe('LiquidityPoolAsset', function () { }); }); - describe('fromOperation()', function () { + describe("fromOperation()", function () { it('throws an error if asset type is "assetTypeNative"', function () { const xdr = new StellarBase.xdr.ChangeTrustAsset.assetTypeNative(); expect(() => StellarBase.LiquidityPoolAsset.fromOperation(xdr)).to.throw( @@ -89,14 +89,14 @@ describe('LiquidityPoolAsset', function () { }); it('throws an error if asset type is "assetTypeCreditAlphanum4"', function () { - const issuer = 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; - const assetCode = 'KHL'; + const issuer = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; + const assetCode = "KHL"; const assetXdr = new StellarBase.xdr.AlphaNum4({ - assetCode: assetCode + '\0', + assetCode: assetCode + "\0", issuer: StellarBase.Keypair.fromPublicKey(issuer).xdrAccountId() }); const xdr = new StellarBase.xdr.ChangeTrustAsset( - 'assetTypeCreditAlphanum4', + "assetTypeCreditAlphanum4", assetXdr ); expect(() => StellarBase.LiquidityPoolAsset.fromOperation(xdr)).to.throw( @@ -105,14 +105,14 @@ describe('LiquidityPoolAsset', function () { }); it('throws an error if asset type is "assetTypeCreditAlphanum4" (full)', function () { - const issuer = 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; - const assetCode = 'KHL'; + const issuer = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; + const assetCode = "KHL"; const assetXdr = new StellarBase.xdr.AlphaNum4({ - assetCode: assetCode + '\0', + assetCode: assetCode + "\0", issuer: StellarBase.Keypair.fromPublicKey(issuer).xdrAccountId() }); const xdr = new StellarBase.xdr.ChangeTrustAsset( - 'assetTypeCreditAlphanum4', + "assetTypeCreditAlphanum4", assetXdr ); expect(() => StellarBase.LiquidityPoolAsset.fromOperation(xdr)).to.throw( @@ -121,14 +121,14 @@ describe('LiquidityPoolAsset', function () { }); it('throws an error if asset type is "assetTypeCreditAlphanum12"', function () { - const issuer = 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; - const assetCode = 'KHLTOKEN'; + const issuer = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; + const assetCode = "KHLTOKEN"; const assetXdr = new StellarBase.xdr.AlphaNum12({ - assetCode: assetCode + '\0\0\0\0', + assetCode: assetCode + "\0\0\0\0", issuer: StellarBase.Keypair.fromPublicKey(issuer).xdrAccountId() }); const xdr = new StellarBase.xdr.ChangeTrustAsset( - 'assetTypeCreditAlphanum12', + "assetTypeCreditAlphanum12", assetXdr ); expect(() => StellarBase.LiquidityPoolAsset.fromOperation(xdr)).to.throw( @@ -136,7 +136,7 @@ describe('LiquidityPoolAsset', function () { ); }); - it('parses a liquidityPool asset XDR', function () { + it("parses a liquidityPool asset XDR", function () { const lpConstantProductParamsXdr = new StellarBase.xdr.LiquidityPoolConstantProductParameters({ assetA: assetA.toXDRObject(), @@ -144,16 +144,16 @@ describe('LiquidityPoolAsset', function () { fee }); const lpParamsXdr = new StellarBase.xdr.LiquidityPoolParameters( - 'liquidityPoolConstantProduct', + "liquidityPoolConstantProduct", lpConstantProductParamsXdr ); const xdr = new StellarBase.xdr.ChangeTrustAsset( - 'assetTypePoolShare', + "assetTypePoolShare", lpParamsXdr ); expect(xdr).to.be.instanceof(StellarBase.xdr.ChangeTrustAsset); - expect(xdr.arm()).to.eq('liquidityPool'); + expect(xdr.arm()).to.eq("liquidityPool"); const asset = StellarBase.LiquidityPoolAsset.fromOperation(xdr); expect(asset).to.be.instanceof(StellarBase.LiquidityPoolAsset); @@ -161,12 +161,12 @@ describe('LiquidityPoolAsset', function () { expect(gotPoolParams.assetA).to.be.deep.equal(assetA); expect(gotPoolParams.assetB).to.be.deep.equal(assetB); expect(gotPoolParams.fee).to.eq(fee); - expect(asset.getAssetType()).to.eq('liquidity_pool_shares'); + expect(asset.getAssetType()).to.eq("liquidity_pool_shares"); }); }); - describe('equals()', function () { - it('returns true when assetA and assetB are the same for both liquidity pools', function () { + describe("equals()", function () { + it("returns true when assetA and assetB are the same for both liquidity pools", function () { const lpAsset1 = new StellarBase.LiquidityPoolAsset(assetA, assetB, fee); const lpAsset2 = new StellarBase.LiquidityPoolAsset(assetA, assetB, fee); expect(lpAsset1.equals(lpAsset1)).to.true; @@ -175,16 +175,16 @@ describe('LiquidityPoolAsset', function () { expect(lpAsset1.equals(lpAsset2)).to.true; }); - it('returns false when assetA or assetB are different in the liquidity pools', function () { + it("returns false when assetA or assetB are different in the liquidity pools", function () { const lpAsset1 = new StellarBase.LiquidityPoolAsset(assetA, assetB, fee); const assetA2 = new StellarBase.Asset( - 'ARS2', - 'GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO' + "ARS2", + "GB7TAYRUZGE6TVT7NHP5SMIZRNQA6PLM423EYISAOAP3MKYIQMVYP2JO" ); const assetB2 = new StellarBase.Asset( - 'USD2', - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "USD2", + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ); let lpAsset2 = new StellarBase.LiquidityPoolAsset(assetA2, assetB, fee); @@ -195,11 +195,11 @@ describe('LiquidityPoolAsset', function () { }); }); - describe('toString()', function () { + describe("toString()", function () { it("returns 'liquidity_pool:' for liquidity pool assets", function () { const asset = new StellarBase.LiquidityPoolAsset(assetA, assetB, fee); expect(asset.toString()).to.eq( - 'liquidity_pool:dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7' + "liquidity_pool:dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7" ); }); }); diff --git a/test/unit/liquidity_pool_id_test.js b/test/unit/liquidity_pool_id_test.js index 72d0c30d9..63675f546 100644 --- a/test/unit/liquidity_pool_id_test.js +++ b/test/unit/liquidity_pool_id_test.js @@ -1,75 +1,75 @@ -describe('LiquidityPoolId', function () { - describe('constructor', function () { - it('throws an error when no parameter is provided', function () { +describe("LiquidityPoolId", function () { + describe("constructor", function () { + it("throws an error when no parameter is provided", function () { expect(() => new StellarBase.LiquidityPoolId()).to.throw( /liquidityPoolId cannot be empty/ ); }); - it('throws an error when pool ID is not a valid hash', function () { - expect(() => new StellarBase.LiquidityPoolId('abc')).to.throw( + it("throws an error when pool ID is not a valid hash", function () { + expect(() => new StellarBase.LiquidityPoolId("abc")).to.throw( /Liquidity pool ID is not a valid hash/ ); }); - it('throws an error when pool ID is not all lowercase', function () { + it("throws an error when pool ID is not all lowercase", function () { expect( () => new StellarBase.LiquidityPoolId( - 'DD7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7' + "DD7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7" ) ).to.throw(/Liquidity pool ID is not a valid hash/); }); - it('does not throw an error when pool ID is a valid hash', function () { + it("does not throw an error when pool ID is a valid hash", function () { expect( () => new StellarBase.LiquidityPoolId( - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7' + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7" ) ).to.not.throw; }); }); - describe('getLiquidityPoolId()', function () { - it('returns liquidity pool ID of liquidity pool asset', function () { + describe("getLiquidityPoolId()", function () { + it("returns liquidity pool ID of liquidity pool asset", function () { const asset = new StellarBase.LiquidityPoolId( - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7' + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7" ); expect(asset.getLiquidityPoolId()).to.eq( - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7' + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7" ); }); }); - describe('getAssetType()', function () { + describe("getAssetType()", function () { it('returns "liquidity_pool_shares" if the trustline asset is a liquidity pool ID', function () { const asset = new StellarBase.LiquidityPoolId( - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7' + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7" ); - expect(asset.getAssetType()).to.eq('liquidity_pool_shares'); + expect(asset.getAssetType()).to.eq("liquidity_pool_shares"); }); }); - describe('toXDRObject()', function () { - it('parses a liquidity pool trustline asset object', function () { + describe("toXDRObject()", function () { + it("parses a liquidity pool trustline asset object", function () { const asset = new StellarBase.LiquidityPoolId( - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7' + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7" ); const xdr = asset.toXDRObject(); expect(xdr).to.be.instanceof(StellarBase.xdr.TrustLineAsset); - expect(xdr.arm()).to.eq('liquidityPoolId'); - expect(xdr.liquidityPoolId().toString('hex')).to.eq( - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7' + expect(xdr.arm()).to.eq("liquidityPoolId"); + expect(xdr.liquidityPoolId().toString("hex")).to.eq( + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7" ); - expect(xdr.liquidityPoolId().toString('hex')).to.eq( + expect(xdr.liquidityPoolId().toString("hex")).to.eq( asset.getLiquidityPoolId() ); }); }); - describe('fromOperation()', function () { + describe("fromOperation()", function () { it('throws an error if asset type is "assetTypeNative"', function () { const xdr = new StellarBase.xdr.TrustLineAsset.assetTypeNative(); expect(() => StellarBase.LiquidityPoolAsset.fromOperation(xdr)).to.throw( @@ -78,14 +78,14 @@ describe('LiquidityPoolId', function () { }); it('throws an error if asset type is "assetTypeCreditAlphanum4"', function () { - const issuer = 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; - const assetCode = 'KHL'; + const issuer = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; + const assetCode = "KHL"; const assetXdr = new StellarBase.xdr.AlphaNum4({ - assetCode: assetCode + '\0', + assetCode: assetCode + "\0", issuer: StellarBase.Keypair.fromPublicKey(issuer).xdrAccountId() }); const xdr = new StellarBase.xdr.TrustLineAsset( - 'assetTypeCreditAlphanum4', + "assetTypeCreditAlphanum4", assetXdr ); expect(() => StellarBase.LiquidityPoolAsset.fromOperation(xdr)).to.throw( @@ -94,14 +94,14 @@ describe('LiquidityPoolId', function () { }); it('throws an error if asset type is "assetTypeCreditAlphanum4" (full)', function () { - const issuer = 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; - const assetCode = 'KHL'; + const issuer = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; + const assetCode = "KHL"; const assetXdr = new StellarBase.xdr.AlphaNum4({ - assetCode: assetCode + '\0', + assetCode: assetCode + "\0", issuer: StellarBase.Keypair.fromPublicKey(issuer).xdrAccountId() }); const xdr = new StellarBase.xdr.TrustLineAsset( - 'assetTypeCreditAlphanum4', + "assetTypeCreditAlphanum4", assetXdr ); expect(() => StellarBase.LiquidityPoolAsset.fromOperation(xdr)).to.throw( @@ -110,14 +110,14 @@ describe('LiquidityPoolId', function () { }); it('throws an error if asset type is "assetTypeCreditAlphanum12"', function () { - const issuer = 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; - const assetCode = 'KHLTOKEN'; + const issuer = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; + const assetCode = "KHLTOKEN"; const assetXdr = new StellarBase.xdr.AlphaNum12({ - assetCode: assetCode + '\0\0\0\0', + assetCode: assetCode + "\0\0\0\0", issuer: StellarBase.Keypair.fromPublicKey(issuer).xdrAccountId() }); const xdr = new StellarBase.xdr.TrustLineAsset( - 'assetTypeCreditAlphanum12', + "assetTypeCreditAlphanum12", assetXdr ); expect(() => StellarBase.LiquidityPoolAsset.fromOperation(xdr)).to.throw( @@ -125,29 +125,29 @@ describe('LiquidityPoolId', function () { ); }); - it('parses a liquidityPoolId asset XDR', function () { + it("parses a liquidityPoolId asset XDR", function () { const poolId = - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7'; - const xdrPoolId = StellarBase.xdr.PoolId.fromXDR(poolId, 'hex'); + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7"; + const xdrPoolId = StellarBase.xdr.PoolId.fromXDR(poolId, "hex"); const xdr = new StellarBase.xdr.TrustLineAsset( - 'assetTypePoolShare', + "assetTypePoolShare", xdrPoolId ); const asset = StellarBase.LiquidityPoolId.fromOperation(xdr); expect(asset).to.be.instanceof(StellarBase.LiquidityPoolId); expect(asset.getLiquidityPoolId()).to.eq(poolId); - expect(asset.getAssetType()).to.eq('liquidity_pool_shares'); + expect(asset.getAssetType()).to.eq("liquidity_pool_shares"); }); }); - describe('toString()', function () { + describe("toString()", function () { it("returns 'liquidity_pool:' for liquidity pool assets", function () { const asset = new StellarBase.LiquidityPoolId( - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7' + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7" ); expect(asset.toString()).to.eq( - 'liquidity_pool:dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7' + "liquidity_pool:dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7" ); }); }); diff --git a/test/unit/memo_test.js b/test/unit/memo_test.js index 60cde0e04..065b37f3f 100644 --- a/test/unit/memo_test.js +++ b/test/unit/memo_test.js @@ -1,11 +1,11 @@ -describe('Memo.constructor()', function () { - it('throws error when type is invalid', function () { - expect(() => new StellarBase.Memo('test')).to.throw(/Invalid memo type/); +describe("Memo.constructor()", function () { + it("throws error when type is invalid", function () { + expect(() => new StellarBase.Memo("test")).to.throw(/Invalid memo type/); }); }); -describe('Memo.none()', function () { - it('converts to/from xdr object', function () { +describe("Memo.none()", function () { + it("converts to/from xdr object", function () { let memo = StellarBase.Memo.none().toXDRObject(); expect(memo.value()).to.be.undefined; let baseMemo = StellarBase.Memo.fromXDRObject(memo); @@ -14,17 +14,17 @@ describe('Memo.none()', function () { }); }); -describe('Memo.text()', function () { - it('returns a value for a correct argument', function () { - expect(() => StellarBase.Memo.text('test')).to.not.throw(); - let memoUtf8 = StellarBase.Memo.text('三代之時'); +describe("Memo.text()", function () { + it("returns a value for a correct argument", function () { + expect(() => StellarBase.Memo.text("test")).to.not.throw(); + let memoUtf8 = StellarBase.Memo.text("三代之時"); - let a = Buffer.from(memoUtf8.toXDRObject().value(), 'utf8'); - let b = Buffer.from('三代之時', 'utf8'); + let a = Buffer.from(memoUtf8.toXDRObject().value(), "utf8"); + let b = Buffer.from("三代之時", "utf8"); expect(a).to.be.deep.equal(b); }); - it('returns a value for a correct argument (utf8)', function () { + it("returns a value for a correct argument (utf8)", function () { let memoText = StellarBase.Memo.text([0xd1]).toXDRObject().toXDR(); let expected = Buffer.from([ // memo_text @@ -42,20 +42,20 @@ describe('Memo.text()', function () { expect(memoText.equals(expected)).to.be.true; }); - it('converts to/from xdr object', function () { - let memo = StellarBase.Memo.text('test').toXDRObject(); - expect(memo.arm()).to.equal('text'); - expect(memo.text()).to.equal('test'); - expect(memo.value()).to.equal('test'); + it("converts to/from xdr object", function () { + let memo = StellarBase.Memo.text("test").toXDRObject(); + expect(memo.arm()).to.equal("text"); + expect(memo.text()).to.equal("test"); + expect(memo.value()).to.equal("test"); let baseMemo = StellarBase.Memo.fromXDRObject(memo); expect(baseMemo.type).to.be.equal(StellarBase.MemoText); - expect(baseMemo.value).to.be.equal('test'); + expect(baseMemo.value).to.be.equal("test"); }); - it('converts to/from xdr object (array)', function () { + it("converts to/from xdr object (array)", function () { let memo = StellarBase.Memo.text([0xd1]).toXDRObject(); - expect(memo.arm()).to.equal('text'); + expect(memo.arm()).to.equal("text"); expect(memo.text()).to.be.deep.equal([0xd1]); expect(memo.value()).to.be.deep.equal([0xd1]); @@ -65,10 +65,10 @@ describe('Memo.text()', function () { expect(baseMemo.value).to.be.deep.equal([0xd1]); }); - it('converts to/from xdr object (buffer)', function () { + it("converts to/from xdr object (buffer)", function () { let buf = Buffer.from([0xd1]); let memo = StellarBase.Memo.text(buf).toXDRObject(); - expect(memo.arm()).to.equal('text'); + expect(memo.arm()).to.equal("text"); expect(memo.text().equals(buf)).to.be.true; expect(memo.value().equals(buf)).to.be.true; @@ -78,7 +78,7 @@ describe('Memo.text()', function () { expect(baseMemo.value.equals(buf)).to.be.true; }); - it('throws an error when invalid argument was passed', function () { + it("throws an error when invalid argument was passed", function () { expect(() => StellarBase.Memo.text()).to.throw( /Expects string, array or buffer, max 28 bytes/ ); @@ -96,94 +96,94 @@ describe('Memo.text()', function () { ); }); - it('throws an error when string is longer than 28 bytes', function () { + it("throws an error when string is longer than 28 bytes", function () { expect(() => - StellarBase.Memo.text('12345678901234567890123456789') + StellarBase.Memo.text("12345678901234567890123456789") ).to.throw(/Expects string, array or buffer, max 28 bytes/); - expect(() => StellarBase.Memo.text('三代之時三代之時三代之時')).to.throw( + expect(() => StellarBase.Memo.text("三代之時三代之時三代之時")).to.throw( /Expects string, array or buffer, max 28 bytes/ ); }); }); -describe('Memo.id()', function () { - it('returns a value for a correct argument', function () { - expect(() => StellarBase.Memo.id('1000')).to.not.throw(); - expect(() => StellarBase.Memo.id('0')).to.not.throw(); +describe("Memo.id()", function () { + it("returns a value for a correct argument", function () { + expect(() => StellarBase.Memo.id("1000")).to.not.throw(); + expect(() => StellarBase.Memo.id("0")).to.not.throw(); }); - it('converts to/from xdr object', function () { - let memo = StellarBase.Memo.id('1000').toXDRObject(); - expect(memo.arm()).to.equal('id'); - expect(memo.id().toString()).to.equal('1000'); + it("converts to/from xdr object", function () { + let memo = StellarBase.Memo.id("1000").toXDRObject(); + expect(memo.arm()).to.equal("id"); + expect(memo.id().toString()).to.equal("1000"); let baseMemo = StellarBase.Memo.fromXDRObject(memo); expect(baseMemo.type).to.be.equal(StellarBase.MemoID); - expect(baseMemo.value).to.be.equal('1000'); + expect(baseMemo.value).to.be.equal("1000"); }); - it('throws an error when invalid argument was passed', function () { + it("throws an error when invalid argument was passed", function () { expect(() => StellarBase.Memo.id()).to.throw(/Expects a int64/); expect(() => StellarBase.Memo.id({})).to.throw(/Expects a int64/); expect(() => StellarBase.Memo.id(Infinity)).to.throw(/Expects a int64/); expect(() => StellarBase.Memo.id(NaN)).to.throw(/Expects a int64/); - expect(() => StellarBase.Memo.id('test')).to.throw(/Expects a int64/); + expect(() => StellarBase.Memo.id("test")).to.throw(/Expects a int64/); }); }); -describe('Memo.hash() & Memo.return()', function () { - it('hash converts to/from xdr object', function () { +describe("Memo.hash() & Memo.return()", function () { + it("hash converts to/from xdr object", function () { let buffer = Buffer.alloc(32, 10); let memo = StellarBase.Memo.hash(buffer).toXDRObject(); - expect(memo.arm()).to.equal('hash'); + expect(memo.arm()).to.equal("hash"); expect(memo.hash().length).to.equal(32); expect(memo.hash()).to.deep.equal(buffer); let baseMemo = StellarBase.Memo.fromXDRObject(memo); expect(baseMemo.type).to.be.equal(StellarBase.MemoHash); expect(baseMemo.value.length).to.equal(32); - expect(baseMemo.value.toString('hex')).to.be.equal(buffer.toString('hex')); + expect(baseMemo.value.toString("hex")).to.be.equal(buffer.toString("hex")); }); - it('return converts to/from xdr object', function () { + it("return converts to/from xdr object", function () { let buffer = Buffer.alloc(32, 10); // Testing string hash - let memo = StellarBase.Memo.return(buffer.toString('hex')).toXDRObject(); - expect(memo.arm()).to.equal('retHash'); + let memo = StellarBase.Memo.return(buffer.toString("hex")).toXDRObject(); + expect(memo.arm()).to.equal("retHash"); expect(memo.retHash().length).to.equal(32); - expect(memo.retHash().toString('hex')).to.equal(buffer.toString('hex')); + expect(memo.retHash().toString("hex")).to.equal(buffer.toString("hex")); let baseMemo = StellarBase.Memo.fromXDRObject(memo); expect(baseMemo.type).to.be.equal(StellarBase.MemoReturn); expect(Buffer.isBuffer(baseMemo.value)).to.be.true; expect(baseMemo.value.length).to.equal(32); - expect(baseMemo.value.toString('hex')).to.be.equal(buffer.toString('hex')); + expect(baseMemo.value.toString("hex")).to.be.equal(buffer.toString("hex")); }); var methods = [StellarBase.Memo.hash, StellarBase.Memo.return]; - it('returns a value for a correct argument', function () { + it("returns a value for a correct argument", function () { for (let i in methods) { let method = methods[i]; expect(() => method(Buffer.alloc(32))).to.not.throw(); expect(() => method( - '0000000000000000000000000000000000000000000000000000000000000000' + "0000000000000000000000000000000000000000000000000000000000000000" ) ).to.not.throw(); } }); - it('throws an error when invalid argument was passed', function () { + it("throws an error when invalid argument was passed", function () { for (let i in methods) { let method = methods[i]; expect(() => method()).to.throw(/Expects a 32 byte hash value/); expect(() => method({})).to.throw(/Expects a 32 byte hash value/); expect(() => method(Infinity)).to.throw(/Expects a 32 byte hash value/); expect(() => method(NaN)).to.throw(/Expects a 32 byte hash value/); - expect(() => method('test')).to.throw(/Expects a 32 byte hash value/); + expect(() => method("test")).to.throw(/Expects a 32 byte hash value/); expect(() => method([0, 10, 20])).to.throw( /Expects a 32 byte hash value/ ); @@ -191,11 +191,11 @@ describe('Memo.hash() & Memo.return()', function () { /Expects a 32 byte hash value/ ); expect(() => - method('00000000000000000000000000000000000000000000000000000000000000') + method("00000000000000000000000000000000000000000000000000000000000000") ).to.throw(/Expects a 32 byte hash value/); expect(() => method( - '000000000000000000000000000000000000000000000000000000000000000000' + "000000000000000000000000000000000000000000000000000000000000000000" ) ).to.throw(/Expects a 32 byte hash value/); } diff --git a/test/unit/muxed_account_test.js b/test/unit/muxed_account_test.js index 16ea5b039..5ed9d223f 100644 --- a/test/unit/muxed_account_test.js +++ b/test/unit/muxed_account_test.js @@ -1,18 +1,18 @@ -describe('muxed account abstraction works', function () { - const PUBKEY = 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ'; +describe("muxed account abstraction works", function () { + const PUBKEY = "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ"; const MPUBKEY_ZERO = - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUQ'; + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUQ"; const MPUBKEY_ID = - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAABUTGI4'; + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAABUTGI4"; - it('generates addresses correctly', function () { - let baseAccount = new StellarBase.Account(PUBKEY, '1'); - const mux = new StellarBase.MuxedAccount(baseAccount, '0'); + it("generates addresses correctly", function () { + let baseAccount = new StellarBase.Account(PUBKEY, "1"); + const mux = new StellarBase.MuxedAccount(baseAccount, "0"); expect(mux.baseAccount().accountId()).to.equal(PUBKEY); expect(mux.accountId()).to.equal(MPUBKEY_ZERO); - expect(mux.id()).to.equal('0'); + expect(mux.id()).to.equal("0"); - expect(mux.setId('420').id()).to.equal('420'); + expect(mux.setId("420").id()).to.equal("420"); expect(mux.accountId()).to.equal(MPUBKEY_ID); const muxXdr = mux.toXDRObject(); @@ -26,65 +26,65 @@ describe('muxed account abstraction works', function () { .ed25519() .equals(StellarBase.StrKey.decodeEd25519PublicKey(PUBKEY)) ).to.be.true; - expect(innerMux.id()).to.eql(StellarBase.xdr.Uint64.fromString('420')); + expect(innerMux.id()).to.eql(StellarBase.xdr.Uint64.fromString("420")); expect(StellarBase.encodeMuxedAccountToAddress(muxXdr)).to.equal( mux.accountId() ); }); - it('tracks sequence numbers correctly', function () { - let baseAccount = new StellarBase.Account(PUBKEY, '12345'); - const mux1 = new StellarBase.MuxedAccount(baseAccount, '1'); - const mux2 = new StellarBase.MuxedAccount(baseAccount, '2'); + it("tracks sequence numbers correctly", function () { + let baseAccount = new StellarBase.Account(PUBKEY, "12345"); + const mux1 = new StellarBase.MuxedAccount(baseAccount, "1"); + const mux2 = new StellarBase.MuxedAccount(baseAccount, "2"); - expect(baseAccount.sequenceNumber()).to.equal('12345'); - expect(mux1.sequenceNumber()).to.equal('12345'); - expect(mux2.sequenceNumber()).to.equal('12345'); + expect(baseAccount.sequenceNumber()).to.equal("12345"); + expect(mux1.sequenceNumber()).to.equal("12345"); + expect(mux2.sequenceNumber()).to.equal("12345"); mux1.incrementSequenceNumber(); - expect(baseAccount.sequenceNumber()).to.equal('12346'); - expect(mux1.sequenceNumber()).to.equal('12346'); - expect(mux2.sequenceNumber()).to.equal('12346'); + expect(baseAccount.sequenceNumber()).to.equal("12346"); + expect(mux1.sequenceNumber()).to.equal("12346"); + expect(mux2.sequenceNumber()).to.equal("12346"); mux2.incrementSequenceNumber(); - expect(baseAccount.sequenceNumber()).to.equal('12347'); - expect(mux1.sequenceNumber()).to.equal('12347'); - expect(mux2.sequenceNumber()).to.equal('12347'); + expect(baseAccount.sequenceNumber()).to.equal("12347"); + expect(mux1.sequenceNumber()).to.equal("12347"); + expect(mux2.sequenceNumber()).to.equal("12347"); baseAccount.incrementSequenceNumber(); - expect(baseAccount.sequenceNumber()).to.equal('12348'); - expect(mux1.sequenceNumber()).to.equal('12348'); - expect(mux2.sequenceNumber()).to.equal('12348'); + expect(baseAccount.sequenceNumber()).to.equal("12348"); + expect(mux1.sequenceNumber()).to.equal("12348"); + expect(mux2.sequenceNumber()).to.equal("12348"); }); - it('lets virtual accounts be created', function () { - let baseAccount = new StellarBase.Account(PUBKEY, '12345'); - const mux1 = new StellarBase.MuxedAccount(baseAccount, '1'); + it("lets virtual accounts be created", function () { + let baseAccount = new StellarBase.Account(PUBKEY, "12345"); + const mux1 = new StellarBase.MuxedAccount(baseAccount, "1"); - const mux2 = new StellarBase.MuxedAccount(mux1.baseAccount(), '420'); - expect(mux2.id()).to.equal('420'); + const mux2 = new StellarBase.MuxedAccount(mux1.baseAccount(), "420"); + expect(mux2.id()).to.equal("420"); expect(mux2.accountId()).to.equal(MPUBKEY_ID); - expect(mux2.sequenceNumber()).to.equal('12345'); + expect(mux2.sequenceNumber()).to.equal("12345"); - const mux3 = new StellarBase.MuxedAccount(mux2.baseAccount(), '3'); + const mux3 = new StellarBase.MuxedAccount(mux2.baseAccount(), "3"); mux2.incrementSequenceNumber(); - expect(mux1.sequenceNumber()).to.equal('12346'); - expect(mux2.sequenceNumber()).to.equal('12346'); - expect(mux3.sequenceNumber()).to.equal('12346'); + expect(mux1.sequenceNumber()).to.equal("12346"); + expect(mux2.sequenceNumber()).to.equal("12346"); + expect(mux3.sequenceNumber()).to.equal("12346"); }); - it('parses M-addresses', function () { - const mux1 = new StellarBase.MuxedAccount.fromAddress(MPUBKEY_ZERO, '123'); - expect(mux1.id()).to.equal('0'); + it("parses M-addresses", function () { + const mux1 = new StellarBase.MuxedAccount.fromAddress(MPUBKEY_ZERO, "123"); + expect(mux1.id()).to.equal("0"); expect(mux1.accountId()).to.equal(MPUBKEY_ZERO); expect(mux1.baseAccount().accountId()).to.equal( - 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ' + "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ" ); - expect(mux1.sequenceNumber()).to.equal('123'); + expect(mux1.sequenceNumber()).to.equal("123"); }); }); diff --git a/test/unit/operations/classic_ops_test.js b/test/unit/operations/classic_ops_test.js index bfdf121e6..3629b4fa0 100644 --- a/test/unit/operations/classic_ops_test.js +++ b/test/unit/operations/classic_ops_test.js @@ -1,65 +1,65 @@ -import BigNumber from 'bignumber.js'; +import BigNumber from "bignumber.js"; const { encodeMuxedAccountToAddress, encodeMuxedAccount } = StellarBase; -describe('Operation', function () { - describe('.createAccount()', function () { - it('creates a createAccountOp', function () { +describe("Operation", function () { + describe(".createAccount()", function () { + it("creates a createAccountOp", function () { var destination = - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; - var startingBalance = '1000.0000000'; + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; + var startingBalance = "1000.0000000"; let op = StellarBase.Operation.createAccount({ destination, startingBalance }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('createAccount'); + expect(obj.type).to.be.equal("createAccount"); expect(obj.destination).to.be.equal(destination); expect(operation.body().value().startingBalance().toString()).to.be.equal( - '10000000000' + "10000000000" ); expect(obj.startingBalance).to.be.equal(startingBalance); }); - it('fails to create createAccount operation with an invalid destination address', function () { + it("fails to create createAccount operation with an invalid destination address", function () { let opts = { - destination: 'GCEZW', - startingBalance: '20', - source: 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + destination: "GCEZW", + startingBalance: "20", + source: "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" }; expect(() => StellarBase.Operation.createAccount(opts)).to.throw( /destination is invalid/ ); }); - it('creates a createAccount operation with startingBalance equal to 0', function () { + it("creates a createAccount operation with startingBalance equal to 0", function () { let opts = { - destination: 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - startingBalance: '0', - source: 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + destination: "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + startingBalance: "0", + source: "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" }; expect(() => StellarBase.Operation.createAccount(opts)).not.to.throw(); }); - it('fails to create createAccount operation with an invalid startingBalance', function () { + it("fails to create createAccount operation with an invalid startingBalance", function () { let opts = { - destination: 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', + destination: "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", startingBalance: 20, - source: 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + source: "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" }; expect(() => StellarBase.Operation.createAccount(opts)).to.throw( /startingBalance argument must be of type String, represent a positive number and have at most 7 digits after the decimal/ ); }); - it('fails to create createAccount operation with an invalid source address', function () { + it("fails to create createAccount operation with an invalid source address", function () { let opts = { - destination: 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - startingBalance: '20', - source: 'GCEZ' + destination: "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + startingBalance: "20", + source: "GCEZ" }; expect(() => StellarBase.Operation.createAccount(opts)).to.throw( /Source address is invalid/ @@ -67,20 +67,20 @@ describe('Operation', function () { }); }); - describe('.payment()', function () { - it('creates a paymentOp', function () { + describe(".payment()", function () { + it("creates a paymentOp", function () { var destination = - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; - var amount = '1000.0000000'; + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; + var amount = "1000.0000000"; var asset = new StellarBase.Asset( - 'USDUSD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USDUSD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); let op = StellarBase.Operation.payment({ destination, asset, amount }); - var xdr = op.toXDR('hex'); - var operation = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); + var xdr = op.toXDR("hex"); + var operation = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('payment'); + expect(obj.type).to.be.equal("payment"); expect(obj.destination).to.be.equal(destination); }); @@ -94,26 +94,26 @@ describe('Operation', function () { // Address: GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ // ID: 2 const destination = - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAAGZFQ'; - const amount = '1000.0000000'; + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAAGZFQ"; + const amount = "1000.0000000"; const asset = StellarBase.Asset.native(); const source = - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAALIWQ'; - const base = 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ'; + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAALIWQ"; + const base = "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ"; function paymentPacksCorrectly(opts) { const packed = StellarBase.Operation.payment(opts); // Ensure we can convert to and from the raw XDR: expect(() => { - StellarBase.xdr.Operation.fromXDR(packed.toXDR('raw'), 'raw'); - StellarBase.xdr.Operation.fromXDR(packed.toXDR('hex'), 'hex'); + StellarBase.xdr.Operation.fromXDR(packed.toXDR("raw"), "raw"); + StellarBase.xdr.Operation.fromXDR(packed.toXDR("hex"), "hex"); }).to.not.throw(); const unpacked = StellarBase.Operation.fromXDRObject(packed, true); // Ensure the properties match the inputs: - expect(unpacked.type).to.equal('payment'); + expect(unpacked.type).to.equal("payment"); expect(unpacked.source).to.equal(opts.source); expect(unpacked.destination).to.equal(opts.destination); expect(unpacked.asset).to.eql(opts.asset); @@ -121,12 +121,12 @@ describe('Operation', function () { let opts = { destination, asset, amount, source }; - it('supports muxed accounts', function () { + it("supports muxed accounts", function () { opts.source = opts.destination = base; paymentPacksCorrectly(opts); }); - it('supports mixing muxed and unmuxed properties', function () { + it("supports mixing muxed and unmuxed properties", function () { opts.source = base; opts.destination = destination; paymentPacksCorrectly(opts); @@ -136,20 +136,20 @@ describe('Operation', function () { paymentPacksCorrectly(opts); }); - it('fails to create payment operation with an invalid destination address', function () { + it("fails to create payment operation with an invalid destination address", function () { let opts = { - destination: 'GCEZW', + destination: "GCEZW", asset: StellarBase.Asset.native(), - amount: '20' + amount: "20" }; expect(() => StellarBase.Operation.payment(opts)).to.throw( /destination is invalid/ ); }); - it('fails to create payment operation with an invalid amount', function () { + it("fails to create payment operation with an invalid amount", function () { let opts = { - destination: 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', + destination: "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", asset: StellarBase.Asset.native(), amount: 20 }; @@ -159,28 +159,28 @@ describe('Operation', function () { }); }); - describe('.pathPaymentStrictReceive()', function () { - it('creates a pathPaymentStrictReceiveOp', function () { + describe(".pathPaymentStrictReceive()", function () { + it("creates a pathPaymentStrictReceiveOp", function () { var sendAsset = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - var sendMax = '3.0070000'; + var sendMax = "3.0070000"; var destination = - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; var destAsset = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - var destAmount = '3.1415000'; + var destAmount = "3.1415000"; var path = [ new StellarBase.Asset( - 'USD', - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB' + "USD", + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB" ), new StellarBase.Asset( - 'EUR', - 'GDTNXRLOJD2YEBPKK7KCMR7J33AAG5VZXHAJTHIG736D6LVEFLLLKPDL' + "EUR", + "GDTNXRLOJD2YEBPKK7KCMR7J33AAG5VZXHAJTHIG736D6LVEFLLLKPDL" ) ]; let op = StellarBase.Operation.pathPaymentStrictReceive({ @@ -191,54 +191,54 @@ describe('Operation', function () { destAmount, path }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('pathPaymentStrictReceive'); + expect(obj.type).to.be.equal("pathPaymentStrictReceive"); expect(obj.sendAsset.equals(sendAsset)).to.be.true; expect(operation.body().value().sendMax().toString()).to.be.equal( - '30070000' + "30070000" ); expect(obj.sendMax).to.be.equal(sendMax); expect(obj.destination).to.be.equal(destination); expect(obj.destAsset.equals(destAsset)).to.be.true; expect(operation.body().value().destAmount().toString()).to.be.equal( - '31415000' + "31415000" ); expect(obj.destAmount).to.be.equal(destAmount); - expect(obj.path[0].getCode()).to.be.equal('USD'); + expect(obj.path[0].getCode()).to.be.equal("USD"); expect(obj.path[0].getIssuer()).to.be.equal( - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB' + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB" ); - expect(obj.path[1].getCode()).to.be.equal('EUR'); + expect(obj.path[1].getCode()).to.be.equal("EUR"); expect(obj.path[1].getIssuer()).to.be.equal( - 'GDTNXRLOJD2YEBPKK7KCMR7J33AAG5VZXHAJTHIG736D6LVEFLLLKPDL' + "GDTNXRLOJD2YEBPKK7KCMR7J33AAG5VZXHAJTHIG736D6LVEFLLLKPDL" ); }); - const base = 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ'; - const source = encodeMuxedAccountToAddress(encodeMuxedAccount(base, '1')); + const base = "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ"; + const source = encodeMuxedAccountToAddress(encodeMuxedAccount(base, "1")); const destination = encodeMuxedAccountToAddress( - encodeMuxedAccount(base, '2') + encodeMuxedAccount(base, "2") ); const sendAsset = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); const destAsset = sendAsset; - const sendMax = '3.0070000'; - const destAmount = '3.1415000'; + const sendMax = "3.0070000"; + const destAmount = "3.1415000"; const path = [ new StellarBase.Asset( - 'USD', - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB' + "USD", + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB" ), new StellarBase.Asset( - 'EUR', - 'GDTNXRLOJD2YEBPKK7KCMR7J33AAG5VZXHAJTHIG736D6LVEFLLLKPDL' + "EUR", + "GDTNXRLOJD2YEBPKK7KCMR7J33AAG5VZXHAJTHIG736D6LVEFLLLKPDL" ) ]; let opts = { @@ -251,44 +251,44 @@ describe('Operation', function () { source }; - it('supports muxed accounts', function () { + it("supports muxed accounts", function () { const packed = StellarBase.Operation.pathPaymentStrictReceive(opts); // Ensure we can convert to and from the raw XDR: expect(() => { - StellarBase.xdr.Operation.fromXDR(packed.toXDR('raw'), 'raw'); - StellarBase.xdr.Operation.fromXDR(packed.toXDR('hex'), 'hex'); + StellarBase.xdr.Operation.fromXDR(packed.toXDR("raw"), "raw"); + StellarBase.xdr.Operation.fromXDR(packed.toXDR("hex"), "hex"); }).to.not.throw(); const unpacked = StellarBase.Operation.fromXDRObject(packed); - expect(unpacked.type).to.equal('pathPaymentStrictReceive'); + expect(unpacked.type).to.equal("pathPaymentStrictReceive"); expect(unpacked.source).to.equal(opts.source); expect(unpacked.destination).to.equal(opts.destination); }); - it('fails to create path payment operation with an invalid destination address', function () { - opts.destination = 'GCEZW'; + it("fails to create path payment operation with an invalid destination address", function () { + opts.destination = "GCEZW"; expect(() => StellarBase.Operation.pathPaymentStrictReceive(opts) ).to.throw(/destination is invalid/); }); - it('fails to create path payment operation with an invalid sendMax', function () { + it("fails to create path payment operation with an invalid sendMax", function () { opts.sendMax = 20; expect(() => StellarBase.Operation.pathPaymentStrictReceive(opts) ).to.throw(/sendMax argument must be of type String/); }); - it('fails to create path payment operation with an invalid destAmount', function () { + it("fails to create path payment operation with an invalid destAmount", function () { let opts = { - destination: 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - sendMax: '20', + destination: "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + sendMax: "20", destAmount: 50, sendAsset: StellarBase.Asset.native(), destAsset: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ) }; expect(() => @@ -297,28 +297,28 @@ describe('Operation', function () { }); }); - describe('.pathPaymentStrictSend()', function () { - it('creates a pathPaymentStrictSendOp', function () { + describe(".pathPaymentStrictSend()", function () { + it("creates a pathPaymentStrictSendOp", function () { var sendAsset = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - var sendAmount = '3.0070000'; + var sendAmount = "3.0070000"; var destination = - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; var destAsset = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - var destMin = '3.1415000'; + var destMin = "3.1415000"; var path = [ new StellarBase.Asset( - 'USD', - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB' + "USD", + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB" ), new StellarBase.Asset( - 'EUR', - 'GDTNXRLOJD2YEBPKK7KCMR7J33AAG5VZXHAJTHIG736D6LVEFLLLKPDL' + "EUR", + "GDTNXRLOJD2YEBPKK7KCMR7J33AAG5VZXHAJTHIG736D6LVEFLLLKPDL" ) ]; let op = StellarBase.Operation.pathPaymentStrictSend({ @@ -329,77 +329,77 @@ describe('Operation', function () { destMin, path }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('pathPaymentStrictSend'); + expect(obj.type).to.be.equal("pathPaymentStrictSend"); expect(obj.sendAsset.equals(sendAsset)).to.be.true; expect(operation.body().value().sendAmount().toString()).to.be.equal( - '30070000' + "30070000" ); expect(obj.sendAmount).to.be.equal(sendAmount); expect(obj.destination).to.be.equal(destination); expect(obj.destAsset.equals(destAsset)).to.be.true; expect(operation.body().value().destMin().toString()).to.be.equal( - '31415000' + "31415000" ); expect(obj.destMin).to.be.equal(destMin); - expect(obj.path[0].getCode()).to.be.equal('USD'); + expect(obj.path[0].getCode()).to.be.equal("USD"); expect(obj.path[0].getIssuer()).to.be.equal( - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB' + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB" ); - expect(obj.path[1].getCode()).to.be.equal('EUR'); + expect(obj.path[1].getCode()).to.be.equal("EUR"); expect(obj.path[1].getIssuer()).to.be.equal( - 'GDTNXRLOJD2YEBPKK7KCMR7J33AAG5VZXHAJTHIG736D6LVEFLLLKPDL' + "GDTNXRLOJD2YEBPKK7KCMR7J33AAG5VZXHAJTHIG736D6LVEFLLLKPDL" ); }); - const base = 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ'; - const source = encodeMuxedAccountToAddress(encodeMuxedAccount(base, '1')); + const base = "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ"; + const source = encodeMuxedAccountToAddress(encodeMuxedAccount(base, "1")); const destination = encodeMuxedAccountToAddress( - encodeMuxedAccount(base, '2') + encodeMuxedAccount(base, "2") ); let opts = { source, destination }; opts.sendAsset = opts.destAsset = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.destMin = '3.1415000'; - opts.sendAmount = '3.0070000'; + opts.destMin = "3.1415000"; + opts.sendAmount = "3.0070000"; opts.path = [ new StellarBase.Asset( - 'USD', - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB' + "USD", + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB" ) ]; - it('supports muxed accounts', function () { + it("supports muxed accounts", function () { const packed = StellarBase.Operation.pathPaymentStrictSend(opts); // Ensure we can convert to and from the raw XDR: expect(() => { - StellarBase.xdr.Operation.fromXDR(packed.toXDR('raw'), 'raw'); - StellarBase.xdr.Operation.fromXDR(packed.toXDR('hex'), 'hex'); + StellarBase.xdr.Operation.fromXDR(packed.toXDR("raw"), "raw"); + StellarBase.xdr.Operation.fromXDR(packed.toXDR("hex"), "hex"); }).to.not.throw(); const unpacked = StellarBase.Operation.fromXDRObject(packed); - expect(unpacked.type).to.equal('pathPaymentStrictSend'); + expect(unpacked.type).to.equal("pathPaymentStrictSend"); expect(unpacked.source).to.equal(opts.source); expect(unpacked.destination).to.equal(opts.destination); }); - it('fails to create path payment operation with an invalid destination address', function () { + it("fails to create path payment operation with an invalid destination address", function () { let opts = { - destination: 'GCEZW', - sendAmount: '20', - destMin: '50', + destination: "GCEZW", + sendAmount: "20", + destMin: "50", sendAsset: StellarBase.Asset.native(), destAsset: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ) }; expect(() => StellarBase.Operation.pathPaymentStrictSend(opts)).to.throw( @@ -407,15 +407,15 @@ describe('Operation', function () { ); }); - it('fails to create path payment operation with an invalid sendAmount', function () { + it("fails to create path payment operation with an invalid sendAmount", function () { let opts = { - destination: 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', + destination: "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", sendAmount: 20, - destMin: '50', + destMin: "50", sendAsset: StellarBase.Asset.native(), destAsset: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ) }; expect(() => StellarBase.Operation.pathPaymentStrictSend(opts)).to.throw( @@ -423,15 +423,15 @@ describe('Operation', function () { ); }); - it('fails to create path payment operation with an invalid destMin', function () { + it("fails to create path payment operation with an invalid destMin", function () { let opts = { - destination: 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - sendAmount: '20', + destination: "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + sendAmount: "20", destMin: 50, sendAsset: StellarBase.Asset.native(), destAsset: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ) }; expect(() => StellarBase.Operation.pathPaymentStrictSend(opts)).to.throw( @@ -440,122 +440,122 @@ describe('Operation', function () { }); }); - describe('.changeTrust()', function () { - it('creates a changeTrustOp with Asset', function () { + describe(".changeTrust()", function () { + it("creates a changeTrustOp with Asset", function () { let asset = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); let op = StellarBase.Operation.changeTrust({ asset }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('changeTrust'); + expect(obj.type).to.be.equal("changeTrust"); expect(obj.line).to.be.deep.equal(asset); expect(operation.body().value().limit().toString()).to.be.equal( - '9223372036854775807' + "9223372036854775807" ); // MAX_INT64 - expect(obj.limit).to.be.equal('922337203685.4775807'); + expect(obj.limit).to.be.equal("922337203685.4775807"); }); - it('creates a changeTrustOp with Asset and limit', function () { + it("creates a changeTrustOp with Asset and limit", function () { let asset = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); let op = StellarBase.Operation.changeTrust({ asset, - limit: '50.0000000' + limit: "50.0000000" }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('changeTrust'); + expect(obj.type).to.be.equal("changeTrust"); expect(obj.line).to.be.deep.equal(asset); expect(operation.body().value().limit().toString()).to.be.equal( - '500000000' + "500000000" ); - expect(obj.limit).to.be.equal('50.0000000'); + expect(obj.limit).to.be.equal("50.0000000"); }); - it('creates a changeTrustOp to a liquidity pool', function () { + it("creates a changeTrustOp to a liquidity pool", function () { const assetA = new StellarBase.Asset( - 'ARST', - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB' + "ARST", + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB" ); const assetB = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); const fee = StellarBase.LiquidityPoolFeeV18; const asset = new StellarBase.LiquidityPoolAsset(assetA, assetB, fee); const op = StellarBase.Operation.changeTrust({ asset }); expect(op).to.be.instanceof(StellarBase.xdr.Operation); - const opXdr = op.toXDR('hex'); - const opXdrObj = StellarBase.xdr.Operation.fromXDR(opXdr, 'hex'); + const opXdr = op.toXDR("hex"); + const opXdrObj = StellarBase.xdr.Operation.fromXDR(opXdr, "hex"); const operation = StellarBase.Operation.fromXDRObject(opXdrObj); - expect(operation.type).to.be.equal('changeTrust'); + expect(operation.type).to.be.equal("changeTrust"); expect(operation.line).to.be.deep.equal(asset); expect(opXdrObj.body().value().limit().toString()).to.be.equal( - '9223372036854775807' + "9223372036854775807" ); // MAX_INT64 - expect(operation.limit).to.be.equal('922337203685.4775807'); + expect(operation.limit).to.be.equal("922337203685.4775807"); }); - it('deletes an Asset trustline', function () { + it("deletes an Asset trustline", function () { let asset = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); let op = StellarBase.Operation.changeTrust({ asset: asset, - limit: '0.0000000' + limit: "0.0000000" }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('changeTrust'); + expect(obj.type).to.be.equal("changeTrust"); expect(obj.line).to.be.deep.equal(asset); - expect(obj.limit).to.be.equal('0.0000000'); + expect(obj.limit).to.be.equal("0.0000000"); }); - it('deletes a LiquidityPoolAsset trustline', function () { + it("deletes a LiquidityPoolAsset trustline", function () { const assetA = new StellarBase.Asset( - 'ARST', - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB' + "ARST", + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB" ); const assetB = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); const fee = StellarBase.LiquidityPoolFeeV18; const asset = new StellarBase.LiquidityPoolAsset(assetA, assetB, fee); let op = StellarBase.Operation.changeTrust({ asset, - limit: '0.0000000' + limit: "0.0000000" }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('changeTrust'); + expect(obj.type).to.be.equal("changeTrust"); expect(obj.line).to.be.deep.equal(asset); - expect(obj.limit).to.be.equal('0.0000000'); + expect(obj.limit).to.be.equal("0.0000000"); }); - it('throws TypeError for incorrect limit argument', function () { + it("throws TypeError for incorrect limit argument", function () { let asset = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); let changeTrust = () => StellarBase.Operation.changeTrust({ asset: asset, limit: 0 }); @@ -563,30 +563,30 @@ describe('Operation', function () { }); }); - describe('.allowTrust()', function () { - it('creates an allowTrustOp', function () { - let trustor = 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'; - let assetCode = 'USD'; + describe(".allowTrust()", function () { + it("creates an allowTrustOp", function () { + let trustor = "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"; + let assetCode = "USD"; let authorize = true; let op = StellarBase.Operation.allowTrust({ trustor: trustor, assetCode: assetCode, authorize: authorize }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('allowTrust'); + expect(obj.type).to.be.equal("allowTrust"); expect(obj.trustor).to.be.equal(trustor); expect(obj.assetCode).to.be.equal(assetCode); expect(obj.authorize).to.be.equal(1); }); - it('fails to create allowTrust operation with an invalid trustor address', function () { + it("fails to create allowTrust operation with an invalid trustor address", function () { let opts = { - trustor: 'GCEZW' + trustor: "GCEZW" }; expect(() => StellarBase.Operation.allowTrust(opts)).to.throw( /trustor is invalid/ @@ -594,18 +594,18 @@ describe('Operation', function () { }); }); - describe('.setOptions()', function () { - it('auth flags are set correctly', function () { + describe(".setOptions()", function () { + it("auth flags are set correctly", function () { expect(StellarBase.AuthRequiredFlag).to.be.equal(1); expect(StellarBase.AuthRevocableFlag).to.be.equal(2); expect(StellarBase.AuthImmutableFlag).to.be.equal(4); expect(StellarBase.AuthClawbackEnabledFlag).to.be.equal(8); }); - it('creates a setOptionsOp', function () { + it("creates a setOptionsOp", function () { var opts = {}; opts.inflationDest = - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'; + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"; opts.clearFlags = StellarBase.AuthRevocableFlag | StellarBase.AuthImmutableFlag; opts.setFlags = @@ -617,18 +617,18 @@ describe('Operation', function () { opts.signer = { ed25519PublicKey: - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7', + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7", weight: 1 }; - opts.homeDomain = 'www.example.com'; + opts.homeDomain = "www.example.com"; let op = StellarBase.Operation.setOptions(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('setOptions'); + expect(obj.type).to.be.equal("setOptions"); expect(obj.inflationDest).to.be.equal(opts.inflationDest); expect(obj.clearFlags).to.be.equal(6); expect(obj.setFlags).to.be.equal(9); @@ -644,10 +644,10 @@ describe('Operation', function () { expect(obj.homeDomain.toString()).to.be.equal(opts.homeDomain); }); - it('creates a setOptionsOp with preAuthTx signer', function () { + it("creates a setOptionsOp with preAuthTx signer", function () { var opts = {}; - var hash = StellarBase.hash('Tx hash'); + var hash = StellarBase.hash("Tx hash"); opts.signer = { preAuthTx: hash, @@ -655,9 +655,9 @@ describe('Operation', function () { }; let op = StellarBase.Operation.setOptions(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); @@ -665,11 +665,11 @@ describe('Operation', function () { expect(obj.signer.weight).to.be.equal(opts.signer.weight); }); - it('creates a setOptionsOp with preAuthTx signer from a hex string', function () { + it("creates a setOptionsOp with preAuthTx signer from a hex string", function () { var opts = {}; - var hash = StellarBase.hash('Tx hash').toString('hex'); - expect(typeof hash === 'string').to.be.true; + var hash = StellarBase.hash("Tx hash").toString("hex"); + expect(typeof hash === "string").to.be.true; opts.signer = { preAuthTx: hash, @@ -677,9 +677,9 @@ describe('Operation', function () { }; let op = StellarBase.Operation.setOptions(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); @@ -687,10 +687,10 @@ describe('Operation', function () { expect(obj.signer.weight).to.be.equal(opts.signer.weight); }); - it('creates a setOptionsOp with hash signer', function () { + it("creates a setOptionsOp with hash signer", function () { var opts = {}; - var hash = StellarBase.hash('Hash Preimage'); + var hash = StellarBase.hash("Hash Preimage"); opts.signer = { sha256Hash: hash, @@ -698,9 +698,9 @@ describe('Operation', function () { }; let op = StellarBase.Operation.setOptions(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); @@ -708,11 +708,11 @@ describe('Operation', function () { expect(obj.signer.weight).to.be.equal(opts.signer.weight); }); - it('creates a setOptionsOp with hash signer from a hex string', function () { + it("creates a setOptionsOp with hash signer from a hex string", function () { var opts = {}; - var hash = StellarBase.hash('Hash Preimage').toString('hex'); - expect(typeof hash === 'string').to.be.true; + var hash = StellarBase.hash("Hash Preimage").toString("hex"); + expect(typeof hash === "string").to.be.true; opts.signer = { sha256Hash: hash, @@ -720,9 +720,9 @@ describe('Operation', function () { }; let op = StellarBase.Operation.setOptions(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); @@ -730,13 +730,13 @@ describe('Operation', function () { expect(obj.signer.weight).to.be.equal(opts.signer.weight); }); - it('creates a setOptionsOp with signed payload signer', function () { + it("creates a setOptionsOp with signed payload signer", function () { var opts = {}; - var pubkey = 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ'; + var pubkey = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"; var signedPayload = new StellarBase.xdr.SignerKeyEd25519SignedPayload({ ed25519: StellarBase.StrKey.decodeEd25519PublicKey(pubkey), - payload: Buffer.from('test') + payload: Buffer.from("test") }); var xdrSignerKey = StellarBase.xdr.SignerKey.signerKeyTypeEd25519SignedPayload( @@ -753,9 +753,9 @@ describe('Operation', function () { }; let op = StellarBase.Operation.setOptions(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); @@ -763,14 +763,14 @@ describe('Operation', function () { expect(obj.signer.weight).to.be.equal(opts.signer.weight); }); - it('empty homeDomain is decoded correctly', function () { + it("empty homeDomain is decoded correctly", function () { const keypair = StellarBase.Keypair.random(); - const account = new StellarBase.Account(keypair.publicKey(), '0'); + const account = new StellarBase.Account(keypair.publicKey(), "0"); // First operation do nothing. const tx1 = new StellarBase.TransactionBuilder(account, { fee: 100, - networkPassphrase: 'Some Network' + networkPassphrase: "Some Network" }) .addOperation(StellarBase.Operation.setOptions({})) .setTimeout(StellarBase.TimeoutInfinite) @@ -779,73 +779,73 @@ describe('Operation', function () { // Second operation unset homeDomain const tx2 = new StellarBase.TransactionBuilder(account, { fee: 100, - networkPassphrase: 'Some Network' + networkPassphrase: "Some Network" }) - .addOperation(StellarBase.Operation.setOptions({ homeDomain: '' })) + .addOperation(StellarBase.Operation.setOptions({ homeDomain: "" })) .setTimeout(StellarBase.TimeoutInfinite) .build(); expect(tx1.operations[0].homeDomain).to.be.undefined; - expect(tx2.operations[0].homeDomain).to.be.equal(''); + expect(tx2.operations[0].homeDomain).to.be.equal(""); }); - it('string setFlags', function () { + it("string setFlags", function () { let opts = { - setFlags: '4' + setFlags: "4" }; let op = StellarBase.Operation.setOptions(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('setOptions'); + expect(obj.type).to.be.equal("setOptions"); expect(obj.setFlags).to.be.equal(4); }); - it('fails to create setOptions operation with an invalid setFlags', function () { + it("fails to create setOptions operation with an invalid setFlags", function () { let opts = { setFlags: {} }; expect(() => StellarBase.Operation.setOptions(opts)).to.throw(); }); - it('string clearFlags', function () { + it("string clearFlags", function () { let opts = { - clearFlags: '4' + clearFlags: "4" }; let op = StellarBase.Operation.setOptions(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('setOptions'); + expect(obj.type).to.be.equal("setOptions"); expect(obj.clearFlags).to.be.equal(4); }); - it('fails to create setOptions operation with an invalid clearFlags', function () { + it("fails to create setOptions operation with an invalid clearFlags", function () { let opts = { clearFlags: {} }; expect(() => StellarBase.Operation.setOptions(opts)).to.throw(); }); - it('fails to create setOptions operation with an invalid inflationDest address', function () { + it("fails to create setOptions operation with an invalid inflationDest address", function () { let opts = { - inflationDest: 'GCEZW' + inflationDest: "GCEZW" }; expect(() => StellarBase.Operation.setOptions(opts)).to.throw( /inflationDest is invalid/ ); }); - it('fails to create setOptions operation with an invalid signer address', function () { + it("fails to create setOptions operation with an invalid signer address", function () { let opts = { signer: { - ed25519PublicKey: 'GDGU5OAPHNPU5UCL', + ed25519PublicKey: "GDGU5OAPHNPU5UCL", weight: 1 } }; @@ -854,11 +854,11 @@ describe('Operation', function () { ); }); - it('fails to create setOptions operation with multiple signer values', function () { + it("fails to create setOptions operation with multiple signer values", function () { let opts = { signer: { ed25519PublicKey: - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7', + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7", sha256Hash: Buffer.alloc(32), weight: 1 } @@ -868,7 +868,7 @@ describe('Operation', function () { ); }); - it('fails to create setOptions operation with an invalid masterWeight', function () { + it("fails to create setOptions operation with an invalid masterWeight", function () { let opts = { masterWeight: 400 }; @@ -877,7 +877,7 @@ describe('Operation', function () { ); }); - it('fails to create setOptions operation with an invalid lowThreshold', function () { + it("fails to create setOptions operation with an invalid lowThreshold", function () { let opts = { lowThreshold: 400 }; @@ -886,7 +886,7 @@ describe('Operation', function () { ); }); - it('fails to create setOptions operation with an invalid medThreshold', function () { + it("fails to create setOptions operation with an invalid medThreshold", function () { let opts = { medThreshold: 400 }; @@ -895,7 +895,7 @@ describe('Operation', function () { ); }); - it('fails to create setOptions operation with an invalid highThreshold', function () { + it("fails to create setOptions operation with an invalid highThreshold", function () { let opts = { highThreshold: 400 }; @@ -904,7 +904,7 @@ describe('Operation', function () { ); }); - it('fails to create setOptions operation with an invalid homeDomain', function () { + it("fails to create setOptions operation with an invalid homeDomain", function () { let opts = { homeDomain: 67238 }; @@ -914,57 +914,57 @@ describe('Operation', function () { }); }); - describe('.manageSellOffer', function () { - it('creates a manageSellOfferOp (string price)', function () { + describe(".manageSellOffer", function () { + it("creates a manageSellOfferOp (string price)", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.amount = '3.1234560'; - opts.price = '8.141592'; - opts.offerId = '1'; + opts.amount = "3.1234560"; + opts.price = "8.141592"; + opts.offerId = "1"; let op = StellarBase.Operation.manageSellOffer(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('manageSellOffer'); + expect(obj.type).to.be.equal("manageSellOffer"); expect(obj.selling.equals(opts.selling)).to.be.true; expect(obj.buying.equals(opts.buying)).to.be.true; expect(operation.body().value().amount().toString()).to.be.equal( - '31234560' + "31234560" ); expect(obj.amount).to.be.equal(opts.amount); expect(obj.price).to.be.equal(opts.price); expect(obj.offerId).to.be.equal(opts.offerId); }); - it('creates a manageSellOfferOp (price fraction)', function () { + it("creates a manageSellOfferOp (price fraction)", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.amount = '3.123456'; + opts.amount = "3.123456"; opts.price = { n: 11, d: 10 }; - opts.offerId = '1'; + opts.offerId = "1"; let op = StellarBase.Operation.manageSellOffer(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); expect(obj.price).to.be.equal( @@ -972,141 +972,141 @@ describe('Operation', function () { ); }); - it('creates an invalid manageSellOfferOp (price fraction)', function () { + it("creates an invalid manageSellOfferOp (price fraction)", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.amount = '3.123456'; + opts.amount = "3.123456"; opts.price = { n: 11, d: -1 }; - opts.offerId = '1'; + opts.offerId = "1"; expect(() => StellarBase.Operation.manageSellOffer(opts)).to.throw( /price must be positive/ ); }); - it('creates a manageSellOfferOp (number price)', function () { + it("creates a manageSellOfferOp (number price)", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.amount = '3.123456'; + opts.amount = "3.123456"; opts.price = 3.07; - opts.offerId = '1'; + opts.offerId = "1"; let op = StellarBase.Operation.manageSellOffer(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('manageSellOffer'); + expect(obj.type).to.be.equal("manageSellOffer"); expect(obj.price).to.be.equal(opts.price.toString()); }); - it('creates a manageSellOfferOp (BigNumber price)', function () { + it("creates a manageSellOfferOp (BigNumber price)", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.amount = '3.123456'; + opts.amount = "3.123456"; opts.price = new BigNumber(5).dividedBy(4); - opts.offerId = '1'; + opts.offerId = "1"; let op = StellarBase.Operation.manageSellOffer(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('manageSellOffer'); - expect(obj.price).to.be.equal('1.25'); + expect(obj.type).to.be.equal("manageSellOffer"); + expect(obj.price).to.be.equal("1.25"); }); - it('creates a manageSellOfferOp with no offerId', function () { + it("creates a manageSellOfferOp with no offerId", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.amount = '1000.0000000'; - opts.price = '3.141592'; + opts.amount = "1000.0000000"; + opts.price = "3.141592"; let op = StellarBase.Operation.manageSellOffer(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('manageSellOffer'); + expect(obj.type).to.be.equal("manageSellOffer"); expect(obj.selling.equals(opts.selling)).to.be.true; expect(obj.buying.equals(opts.buying)).to.be.true; expect(operation.body().value().amount().toString()).to.be.equal( - '10000000000' + "10000000000" ); expect(obj.amount).to.be.equal(opts.amount); expect(obj.price).to.be.equal(opts.price); - expect(obj.offerId).to.be.equal('0'); // 0=create a new offer, otherwise edit an existing offer + expect(obj.offerId).to.be.equal("0"); // 0=create a new offer, otherwise edit an existing offer }); - it('cancels offer', function () { + it("cancels offer", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.amount = '0.0000000'; - opts.price = '3.141592'; - opts.offerId = '1'; + opts.amount = "0.0000000"; + opts.price = "3.141592"; + opts.offerId = "1"; let op = StellarBase.Operation.manageSellOffer(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('manageSellOffer'); + expect(obj.type).to.be.equal("manageSellOffer"); expect(obj.selling.equals(opts.selling)).to.be.true; expect(obj.buying.equals(opts.buying)).to.be.true; - expect(operation.body().value().amount().toString()).to.be.equal('0'); + expect(operation.body().value().amount().toString()).to.be.equal("0"); expect(obj.amount).to.be.equal(opts.amount); expect(obj.price).to.be.equal(opts.price); - expect(obj.offerId).to.be.equal('1'); // 0=create a new offer, otherwise edit an existing offer + expect(obj.offerId).to.be.equal("1"); // 0=create a new offer, otherwise edit an existing offer }); - it('fails to create manageSellOffer operation with an invalid amount', function () { + it("fails to create manageSellOffer operation with an invalid amount", function () { let opts = { amount: 20, - price: '10', + price: "10", selling: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ), buying: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ) }; expect(() => StellarBase.Operation.manageSellOffer(opts)).to.throw( @@ -1114,16 +1114,16 @@ describe('Operation', function () { ); }); - it('fails to create manageSellOffer operation with missing price', function () { + it("fails to create manageSellOffer operation with missing price", function () { let opts = { - amount: '20', + amount: "20", selling: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ), buying: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ) }; expect(() => StellarBase.Operation.manageSellOffer(opts)).to.throw( @@ -1131,17 +1131,17 @@ describe('Operation', function () { ); }); - it('fails to create manageSellOffer operation with negative price', function () { + it("fails to create manageSellOffer operation with negative price", function () { let opts = { - amount: '20', - price: '-1', + amount: "20", + price: "-1", selling: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ), buying: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ) }; expect(() => StellarBase.Operation.manageSellOffer(opts)).to.throw( @@ -1149,17 +1149,17 @@ describe('Operation', function () { ); }); - it('fails to create manageSellOffer operation with invalid price', function () { + it("fails to create manageSellOffer operation with invalid price", function () { let opts = { - amount: '20', - price: 'test', + amount: "20", + price: "test", selling: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ), buying: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ) }; expect(() => StellarBase.Operation.manageSellOffer(opts)).to.throw( @@ -1168,57 +1168,57 @@ describe('Operation', function () { }); }); - describe('.manageBuyOffer', function () { - it('creates a manageBuyOfferOp (string price)', function () { + describe(".manageBuyOffer", function () { + it("creates a manageBuyOfferOp (string price)", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.buyAmount = '3.1234560'; - opts.price = '8.141592'; - opts.offerId = '1'; + opts.buyAmount = "3.1234560"; + opts.price = "8.141592"; + opts.offerId = "1"; let op = StellarBase.Operation.manageBuyOffer(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('manageBuyOffer'); + expect(obj.type).to.be.equal("manageBuyOffer"); expect(obj.selling.equals(opts.selling)).to.be.true; expect(obj.buying.equals(opts.buying)).to.be.true; expect(operation.body().value().buyAmount().toString()).to.be.equal( - '31234560' + "31234560" ); expect(obj.buyAmount).to.be.equal(opts.buyAmount); expect(obj.price).to.be.equal(opts.price); expect(obj.offerId).to.be.equal(opts.offerId); }); - it('creates a manageBuyOfferOp (price fraction)', function () { + it("creates a manageBuyOfferOp (price fraction)", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.buyAmount = '3.123456'; + opts.buyAmount = "3.123456"; opts.price = { n: 11, d: 10 }; - opts.offerId = '1'; + opts.offerId = "1"; let op = StellarBase.Operation.manageBuyOffer(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); expect(obj.price).to.be.equal( @@ -1226,141 +1226,141 @@ describe('Operation', function () { ); }); - it('creates an invalid manageBuyOfferOp (price fraction)', function () { + it("creates an invalid manageBuyOfferOp (price fraction)", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.buyAmount = '3.123456'; + opts.buyAmount = "3.123456"; opts.price = { n: 11, d: -1 }; - opts.offerId = '1'; + opts.offerId = "1"; expect(() => StellarBase.Operation.manageBuyOffer(opts)).to.throw( /price must be positive/ ); }); - it('creates a manageBuyOfferOp (number price)', function () { + it("creates a manageBuyOfferOp (number price)", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.buyAmount = '3.123456'; + opts.buyAmount = "3.123456"; opts.price = 3.07; - opts.offerId = '1'; + opts.offerId = "1"; let op = StellarBase.Operation.manageBuyOffer(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('manageBuyOffer'); + expect(obj.type).to.be.equal("manageBuyOffer"); expect(obj.price).to.be.equal(opts.price.toString()); }); - it('creates a manageBuyOfferOp (BigNumber price)', function () { + it("creates a manageBuyOfferOp (BigNumber price)", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.buyAmount = '3.123456'; + opts.buyAmount = "3.123456"; opts.price = new BigNumber(5).dividedBy(4); - opts.offerId = '1'; + opts.offerId = "1"; let op = StellarBase.Operation.manageBuyOffer(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('manageBuyOffer'); - expect(obj.price).to.be.equal('1.25'); + expect(obj.type).to.be.equal("manageBuyOffer"); + expect(obj.price).to.be.equal("1.25"); }); - it('creates a manageBuyOfferOp with no offerId', function () { + it("creates a manageBuyOfferOp with no offerId", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.buyAmount = '1000.0000000'; - opts.price = '3.141592'; + opts.buyAmount = "1000.0000000"; + opts.price = "3.141592"; let op = StellarBase.Operation.manageBuyOffer(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('manageBuyOffer'); + expect(obj.type).to.be.equal("manageBuyOffer"); expect(obj.selling.equals(opts.selling)).to.be.true; expect(obj.buying.equals(opts.buying)).to.be.true; expect(operation.body().value().buyAmount().toString()).to.be.equal( - '10000000000' + "10000000000" ); expect(obj.buyAmount).to.be.equal(opts.buyAmount); expect(obj.price).to.be.equal(opts.price); - expect(obj.offerId).to.be.equal('0'); // 0=create a new offer, otherwise edit an existing offer + expect(obj.offerId).to.be.equal("0"); // 0=create a new offer, otherwise edit an existing offer }); - it('cancels offer', function () { + it("cancels offer", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.buyAmount = '0.0000000'; - opts.price = '3.141592'; - opts.offerId = '1'; + opts.buyAmount = "0.0000000"; + opts.price = "3.141592"; + opts.offerId = "1"; let op = StellarBase.Operation.manageBuyOffer(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('manageBuyOffer'); + expect(obj.type).to.be.equal("manageBuyOffer"); expect(obj.selling.equals(opts.selling)).to.be.true; expect(obj.buying.equals(opts.buying)).to.be.true; - expect(operation.body().value().buyAmount().toString()).to.be.equal('0'); + expect(operation.body().value().buyAmount().toString()).to.be.equal("0"); expect(obj.buyAmount).to.be.equal(opts.buyAmount); expect(obj.price).to.be.equal(opts.price); - expect(obj.offerId).to.be.equal('1'); // 0=create a new offer, otherwise edit an existing offer + expect(obj.offerId).to.be.equal("1"); // 0=create a new offer, otherwise edit an existing offer }); - it('fails to create manageBuyOffer operation with an invalid amount', function () { + it("fails to create manageBuyOffer operation with an invalid amount", function () { let opts = { buyAmount: 20, - price: '10', + price: "10", selling: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ), buying: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ) }; expect(() => StellarBase.Operation.manageBuyOffer(opts)).to.throw( @@ -1368,16 +1368,16 @@ describe('Operation', function () { ); }); - it('fails to create manageBuyOffer operation with missing price', function () { + it("fails to create manageBuyOffer operation with missing price", function () { let opts = { - buyAmount: '20', + buyAmount: "20", selling: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ), buying: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ) }; expect(() => StellarBase.Operation.manageBuyOffer(opts)).to.throw( @@ -1385,17 +1385,17 @@ describe('Operation', function () { ); }); - it('fails to create manageBuyOffer operation with negative price', function () { + it("fails to create manageBuyOffer operation with negative price", function () { let opts = { - buyAmount: '20', - price: '-1', + buyAmount: "20", + price: "-1", selling: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ), buying: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ) }; expect(() => StellarBase.Operation.manageBuyOffer(opts)).to.throw( @@ -1403,17 +1403,17 @@ describe('Operation', function () { ); }); - it('fails to create manageBuyOffer operation with invalid price', function () { + it("fails to create manageBuyOffer operation with invalid price", function () { let opts = { - buyAmount: '20', - price: 'test', + buyAmount: "20", + price: "test", selling: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ), buying: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ) }; expect(() => StellarBase.Operation.manageBuyOffer(opts)).to.throw( @@ -1422,102 +1422,102 @@ describe('Operation', function () { }); }); - describe('.createPassiveSellOffer', function () { - it('creates a createPassiveSellOfferOp (string price)', function () { + describe(".createPassiveSellOffer", function () { + it("creates a createPassiveSellOfferOp (string price)", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.amount = '11.2782700'; - opts.price = '3.07'; + opts.amount = "11.2782700"; + opts.price = "3.07"; let op = StellarBase.Operation.createPassiveSellOffer(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('createPassiveSellOffer'); + expect(obj.type).to.be.equal("createPassiveSellOffer"); expect(obj.selling.equals(opts.selling)).to.be.true; expect(obj.buying.equals(opts.buying)).to.be.true; expect(operation.body().value().amount().toString()).to.be.equal( - '112782700' + "112782700" ); expect(obj.amount).to.be.equal(opts.amount); expect(obj.price).to.be.equal(opts.price); }); - it('creates a createPassiveSellOfferOp (number price)', function () { + it("creates a createPassiveSellOfferOp (number price)", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.amount = '11.2782700'; + opts.amount = "11.2782700"; opts.price = 3.07; let op = StellarBase.Operation.createPassiveSellOffer(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('createPassiveSellOffer'); + expect(obj.type).to.be.equal("createPassiveSellOffer"); expect(obj.selling.equals(opts.selling)).to.be.true; expect(obj.buying.equals(opts.buying)).to.be.true; expect(operation.body().value().amount().toString()).to.be.equal( - '112782700' + "112782700" ); expect(obj.amount).to.be.equal(opts.amount); expect(obj.price).to.be.equal(opts.price.toString()); }); - it('creates a createPassiveSellOfferOp (BigNumber price)', function () { + it("creates a createPassiveSellOfferOp (BigNumber price)", function () { var opts = {}; opts.selling = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); opts.buying = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - opts.amount = '11.2782700'; + opts.amount = "11.2782700"; opts.price = new BigNumber(5).dividedBy(4); let op = StellarBase.Operation.createPassiveSellOffer(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('createPassiveSellOffer'); + expect(obj.type).to.be.equal("createPassiveSellOffer"); expect(obj.selling.equals(opts.selling)).to.be.true; expect(obj.buying.equals(opts.buying)).to.be.true; expect(operation.body().value().amount().toString()).to.be.equal( - '112782700' + "112782700" ); expect(obj.amount).to.be.equal(opts.amount); - expect(obj.price).to.be.equal('1.25'); + expect(obj.price).to.be.equal("1.25"); }); - it('fails to create createPassiveSellOffer operation with an invalid amount', function () { + it("fails to create createPassiveSellOffer operation with an invalid amount", function () { let opts = { amount: 20, - price: '10', + price: "10", selling: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ), buying: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ) }; expect(() => StellarBase.Operation.createPassiveSellOffer(opts)).to.throw( @@ -1525,16 +1525,16 @@ describe('Operation', function () { ); }); - it('fails to create createPassiveSellOffer operation with missing price', function () { + it("fails to create createPassiveSellOffer operation with missing price", function () { let opts = { - amount: '20', + amount: "20", selling: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ), buying: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ) }; expect(() => StellarBase.Operation.createPassiveSellOffer(opts)).to.throw( @@ -1542,17 +1542,17 @@ describe('Operation', function () { ); }); - it('fails to create createPassiveSellOffer operation with negative price', function () { + it("fails to create createPassiveSellOffer operation with negative price", function () { let opts = { - amount: '20', - price: '-2', + amount: "20", + price: "-2", selling: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ), buying: new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ) }; expect(() => StellarBase.Operation.createPassiveSellOffer(opts)).to.throw( @@ -1561,27 +1561,27 @@ describe('Operation', function () { }); }); - describe('.accountMerge', function () { - const base = 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'; + describe(".accountMerge", function () { + const base = "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"; const checkMergeOp = function (opts) { - const xdr = StellarBase.Operation.accountMerge(opts).toXDR('hex'); - const op = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); + const xdr = StellarBase.Operation.accountMerge(opts).toXDR("hex"); + const op = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); const obj = StellarBase.Operation.fromXDRObject(op); - expect(obj.type).to.be.equal('accountMerge'); + expect(obj.type).to.be.equal("accountMerge"); expect(obj.destination).to.be.equal(opts.destination); return obj; }; - it('creates an accountMergeOp', function () { + it("creates an accountMergeOp", function () { let opts = { destination: base }; checkMergeOp(opts); }); - it('supports muxed accounts', function () { - const dest = encodeMuxedAccountToAddress(encodeMuxedAccount(base, '1')); - const source = encodeMuxedAccountToAddress(encodeMuxedAccount(base, '2')); + it("supports muxed accounts", function () { + const dest = encodeMuxedAccountToAddress(encodeMuxedAccount(base, "1")); + const source = encodeMuxedAccountToAddress(encodeMuxedAccount(base, "2")); let opts = { destination: dest, source: source }; let obj = checkMergeOp(opts); @@ -1592,92 +1592,92 @@ describe('Operation', function () { expect(obj.source).to.equal(base); }); - it('fails to create accountMergeOp with invalid destination', function () { - let opts = { destination: 'GCEZW' }; + it("fails to create accountMergeOp with invalid destination", function () { + let opts = { destination: "GCEZW" }; expect(() => StellarBase.Operation.accountMerge(opts)).to.throw( /destination is invalid/ ); }); }); - describe('.inflation', function () { - it('creates a inflationOp', function () { + describe(".inflation", function () { + it("creates a inflationOp", function () { let op = StellarBase.Operation.inflation(); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('inflation'); + expect(obj.type).to.be.equal("inflation"); }); }); - describe('.manageData', function () { - it('creates a manageDataOp with string value', function () { + describe(".manageData", function () { + it("creates a manageDataOp with string value", function () { var opts = { - name: 'name', - value: 'value' + name: "name", + value: "value" }; let op = StellarBase.Operation.manageData(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('manageData'); + expect(obj.type).to.be.equal("manageData"); expect(obj.name).to.be.equal(opts.name); - expect(obj.value.toString('ascii')).to.be.equal(opts.value); + expect(obj.value.toString("ascii")).to.be.equal(opts.value); }); - it('creates a manageDataOp with Buffer value', function () { + it("creates a manageDataOp with Buffer value", function () { var opts = { - name: 'name', - value: Buffer.from('value') + name: "name", + value: Buffer.from("value") }; let op = StellarBase.Operation.manageData(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('manageData'); + expect(obj.type).to.be.equal("manageData"); expect(obj.name).to.be.equal(opts.name); - expect(obj.value.toString('hex')).to.be.equal(opts.value.toString('hex')); + expect(obj.value.toString("hex")).to.be.equal(opts.value.toString("hex")); }); - it('creates a manageDataOp with null dataValue', function () { + it("creates a manageDataOp with null dataValue", function () { var opts = { - name: 'name', + name: "name", value: null }; let op = StellarBase.Operation.manageData(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('manageData'); + expect(obj.type).to.be.equal("manageData"); expect(obj.name).to.be.equal(opts.name); expect(obj.value).to.be.undefined; }); - describe('fails to create manageData operation', function () { - it('name is not a string', function () { + describe("fails to create manageData operation", function () { + it("name is not a string", function () { expect(() => StellarBase.Operation.manageData({ name: 123 }) ).to.throw(); }); - it('name is too long', function () { + it("name is too long", function () { expect(() => - StellarBase.Operation.manageData({ name: 'a'.repeat(65) }) + StellarBase.Operation.manageData({ name: "a".repeat(65) }) ).to.throw(); }); - it('value is too long', function () { + it("value is too long", function () { expect(() => StellarBase.Operation.manageData({ - name: 'a', + name: "a", value: Buffer.alloc(65) }) ).to.throw(); @@ -1685,35 +1685,35 @@ describe('Operation', function () { }); }); - describe('.bumpSequence', function () { - it('creates a bumpSequence', function () { + describe(".bumpSequence", function () { + it("creates a bumpSequence", function () { var opts = { - bumpTo: '77833036561510299' + bumpTo: "77833036561510299" }; let op = StellarBase.Operation.bumpSequence(opts); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('bumpSequence'); + expect(obj.type).to.be.equal("bumpSequence"); expect(obj.bumpTo).to.be.equal(opts.bumpTo); }); - it('fails when `bumpTo` is not string', function () { + it("fails when `bumpTo` is not string", function () { expect(() => StellarBase.Operation.bumpSequence({ bumpTo: 1000 }) ).to.throw(); }); }); - describe('._checkUnsignedIntValue()', function () { - it('returns true for valid values', function () { + describe("._checkUnsignedIntValue()", function () { + it("returns true for valid values", function () { let values = [ { value: 0, expected: 0 }, { value: 10, expected: 10 }, - { value: '0', expected: 0 }, - { value: '10', expected: 10 }, + { value: "0", expected: 0 }, + { value: "10", expected: 10 }, { value: undefined, expected: undefined } ]; @@ -1725,18 +1725,18 @@ describe('Operation', function () { } }); - it('throws error for invalid values', function () { + it("throws error for invalid values", function () { let values = [ {}, [], - '', // empty string - 'test', // string not representing a number - '0.5', - '-10', - '-10.5', - 'Infinity', + "", // empty string + "test", // string not representing a number + "0.5", + "-10", + "-10.5", + "Infinity", Infinity, - 'Nan', + "Nan", NaN ]; @@ -1748,10 +1748,10 @@ describe('Operation', function () { } }); - it('return correct values when isValidFunction is set', function () { + it("return correct values when isValidFunction is set", function () { expect( StellarBase.Operation._checkUnsignedIntValue( - 'test', + "test", undefined, (value) => value < 10 ) @@ -1759,46 +1759,46 @@ describe('Operation', function () { expect( StellarBase.Operation._checkUnsignedIntValue( - 'test', + "test", 8, (value) => value < 10 ) ).to.equal(8); expect( StellarBase.Operation._checkUnsignedIntValue( - 'test', - '8', + "test", + "8", (value) => value < 10 ) ).to.equal(8); expect(() => { StellarBase.Operation._checkUnsignedIntValue( - 'test', + "test", 12, (value) => value < 10 ); }).to.throw(); expect(() => { StellarBase.Operation._checkUnsignedIntValue( - 'test', - '12', + "test", + "12", (value) => value < 10 ); }).to.throw(); }); }); - describe('createClaimableBalance()', function () { - it('creates a CreateClaimableBalanceOp', function () { + describe("createClaimableBalance()", function () { + it("creates a CreateClaimableBalanceOp", function () { const asset = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - const amount = '100.0000000'; + const amount = "100.0000000"; const claimants = [ new StellarBase.Claimant( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ) ]; @@ -1807,24 +1807,24 @@ describe('Operation', function () { amount, claimants }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('createClaimableBalance'); + expect(obj.type).to.be.equal("createClaimableBalance"); expect(obj.asset.toString()).to.equal(asset.toString()); expect(obj.amount).to.be.equal(amount); expect(obj.claimants).to.have.lengthOf(1); - expect(obj.claimants[0].toXDRObject().toXDR('hex')).to.equal( - claimants[0].toXDRObject().toXDR('hex') + expect(obj.claimants[0].toXDRObject().toXDR("hex")).to.equal( + claimants[0].toXDRObject().toXDR("hex") ); }); - it('throws an error when asset is not present', function () { - const amount = '100.0000000'; + it("throws an error when asset is not present", function () { + const amount = "100.0000000"; const claimants = [ new StellarBase.Claimant( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ) ]; @@ -1839,14 +1839,14 @@ describe('Operation', function () { /must provide an asset for create claimable balance operation/ ); }); - it('throws an error when amount is not present', function () { + it("throws an error when amount is not present", function () { const asset = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); const claimants = [ new StellarBase.Claimant( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" ) ]; @@ -1861,12 +1861,12 @@ describe('Operation', function () { /amount argument must be of type String, represent a positive number and have at most 7 digits after the decimal/ ); }); - it('throws an error when claimants is empty or not present', function () { + it("throws an error when claimants is empty or not present", function () { const asset = new StellarBase.Asset( - 'USD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - const amount = '100.0000'; + const amount = "100.0000"; const attrs = { asset, @@ -1884,362 +1884,362 @@ describe('Operation', function () { }); }); - describe('claimClaimableBalance()', function () { - it('creates a claimClaimableBalanceOp', function () { + describe("claimClaimableBalance()", function () { + it("creates a claimClaimableBalanceOp", function () { const balanceId = - '00000000da0d57da7d4850e7fc10d2a9d0ebc731f7afb40574c03395b17d49149b91f5be'; + "00000000da0d57da7d4850e7fc10d2a9d0ebc731f7afb40574c03395b17d49149b91f5be"; const op = StellarBase.Operation.claimClaimableBalance({ balanceId }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('claimClaimableBalance'); + expect(obj.type).to.be.equal("claimClaimableBalance"); expect(obj.balanceId).to.equal(balanceId); }); - it('throws an error when balanceId is not present', function () { + it("throws an error when balanceId is not present", function () { expect(() => StellarBase.Operation.claimClaimableBalance({})).to.throw( /must provide a valid claimable balance id/ ); }); - it('throws an error for invalid balanceIds', function () { + it("throws an error for invalid balanceIds", function () { expect(() => StellarBase.Operation.claimClaimableBalance({ - balanceId: 'badc0ffee' + balanceId: "badc0ffee" }) ).to.throw(/must provide a valid claimable balance id/); }); }); - describe('clawbackClaimableBalance()', function () { - it('creates a clawbackClaimableBalanceOp', function () { + describe("clawbackClaimableBalance()", function () { + it("creates a clawbackClaimableBalanceOp", function () { const balanceId = - '00000000da0d57da7d4850e7fc10d2a9d0ebc731f7afb40574c03395b17d49149b91f5be'; + "00000000da0d57da7d4850e7fc10d2a9d0ebc731f7afb40574c03395b17d49149b91f5be"; const op = StellarBase.Operation.clawbackClaimableBalance({ balanceId: balanceId }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('clawbackClaimableBalance'); + expect(obj.type).to.be.equal("clawbackClaimableBalance"); expect(obj.balanceId).to.equal(balanceId); }); - it('throws an error when balanceId is not present', function () { + it("throws an error when balanceId is not present", function () { expect(() => StellarBase.Operation.clawbackClaimableBalance({})).to.throw( /must provide a valid claimable balance id/ ); }); - it('throws an error for invalid balanceIds', function () { + it("throws an error for invalid balanceIds", function () { expect(() => StellarBase.Operation.clawbackClaimableBalance({ - balanceId: 'badc0ffee' + balanceId: "badc0ffee" }) ).to.throw(/must provide a valid claimable balance id/); }); }); - describe('beginSponsoringFutureReserves()', function () { - it('creates a beginSponsoringFutureReservesOp', function () { + describe("beginSponsoringFutureReserves()", function () { + it("creates a beginSponsoringFutureReservesOp", function () { const sponsoredId = - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'; + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"; const op = StellarBase.Operation.beginSponsoringFutureReserves({ sponsoredId }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); - var operation = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); + var operation = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); expect(operation.body().switch().name).to.equal( - 'beginSponsoringFutureReserves' + "beginSponsoringFutureReserves" ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('beginSponsoringFutureReserves'); + expect(obj.type).to.be.equal("beginSponsoringFutureReserves"); expect(obj.sponsoredId).to.equal(sponsoredId); }); - it('throws an error when sponsoredId is invalid', function () { + it("throws an error when sponsoredId is invalid", function () { expect(() => StellarBase.Operation.beginSponsoringFutureReserves({}) ).to.throw(/sponsoredId is invalid/); expect(() => StellarBase.Operation.beginSponsoringFutureReserves({ - sponsoredId: 'GBAD' + sponsoredId: "GBAD" }) ).to.throw(/sponsoredId is invalid/); }); }); - describe('endSponsoringFutureReserves()', function () { - it('creates a endSponsoringFutureReservesOp', function () { + describe("endSponsoringFutureReserves()", function () { + it("creates a endSponsoringFutureReservesOp", function () { const op = StellarBase.Operation.endSponsoringFutureReserves(); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); - var operation = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); + var operation = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); expect(operation.body().switch().name).to.equal( - 'endSponsoringFutureReserves' + "endSponsoringFutureReserves" ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('endSponsoringFutureReserves'); + expect(obj.type).to.be.equal("endSponsoringFutureReserves"); }); }); - describe('revokeAccountSponsorship()', function () { - it('creates a revokeAccountSponsorshipOp', function () { + describe("revokeAccountSponsorship()", function () { + it("creates a revokeAccountSponsorshipOp", function () { const account = - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'; + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"; const op = StellarBase.Operation.revokeAccountSponsorship({ account }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); - var operation = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); - expect(operation.body().switch().name).to.equal('revokeSponsorship'); + var operation = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); + expect(operation.body().switch().name).to.equal("revokeSponsorship"); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('revokeAccountSponsorship'); + expect(obj.type).to.be.equal("revokeAccountSponsorship"); expect(obj.account).to.be.equal(account); }); - it('throws an error when account is invalid', function () { + it("throws an error when account is invalid", function () { expect(() => StellarBase.Operation.revokeAccountSponsorship({})).to.throw( /account is invalid/ ); expect(() => StellarBase.Operation.revokeAccountSponsorship({ - account: 'GBAD' + account: "GBAD" }) ).to.throw(/account is invalid/); }); }); - describe('revokeTrustlineSponsorship()', function () { - it('creates a revokeTrustlineSponsorship', function () { + describe("revokeTrustlineSponsorship()", function () { + it("creates a revokeTrustlineSponsorship", function () { const account = - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'; + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"; var asset = new StellarBase.Asset( - 'USDUSD', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "USDUSD", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); const op = StellarBase.Operation.revokeTrustlineSponsorship({ account, asset }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); - var operation = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); - expect(operation.body().switch().name).to.equal('revokeSponsorship'); + var operation = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); + expect(operation.body().switch().name).to.equal("revokeSponsorship"); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('revokeTrustlineSponsorship'); + expect(obj.type).to.be.equal("revokeTrustlineSponsorship"); }); - it('creates a revokeTrustlineSponsorship for a liquidity pool', function () { + it("creates a revokeTrustlineSponsorship for a liquidity pool", function () { const account = - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'; + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"; const asset = new StellarBase.LiquidityPoolId( - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7' + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7" ); const op = StellarBase.Operation.revokeTrustlineSponsorship({ account, asset }); - const xdr = op.toXDR('hex'); + const xdr = op.toXDR("hex"); - const operation = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); - expect(operation.body().switch().name).to.equal('revokeSponsorship'); + const operation = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); + expect(operation.body().switch().name).to.equal("revokeSponsorship"); const obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('revokeTrustlineSponsorship'); + expect(obj.type).to.be.equal("revokeTrustlineSponsorship"); }); - it('throws an error when account is invalid', function () { + it("throws an error when account is invalid", function () { expect(() => StellarBase.Operation.revokeTrustlineSponsorship({}) ).to.throw(/account is invalid/); expect(() => StellarBase.Operation.revokeTrustlineSponsorship({ - account: 'GBAD' + account: "GBAD" }) ).to.throw(/account is invalid/); }); - it('throws an error when asset is invalid', function () { + it("throws an error when asset is invalid", function () { expect(() => StellarBase.Operation.revokeTrustlineSponsorship({ - account: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + account: "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" }) ).to.throw(/asset must be an Asset or LiquidityPoolId/); }); }); - describe('revokeOfferSponsorship()', function () { - it('creates a revokeOfferSponsorship', function () { - const seller = 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'; - var offerId = '1234'; + describe("revokeOfferSponsorship()", function () { + it("creates a revokeOfferSponsorship", function () { + const seller = "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"; + var offerId = "1234"; const op = StellarBase.Operation.revokeOfferSponsorship({ seller, offerId }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); - var operation = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); - expect(operation.body().switch().name).to.equal('revokeSponsorship'); + var operation = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); + expect(operation.body().switch().name).to.equal("revokeSponsorship"); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('revokeOfferSponsorship'); + expect(obj.type).to.be.equal("revokeOfferSponsorship"); expect(obj.seller).to.be.equal(seller); expect(obj.offerId).to.be.equal(offerId); }); - it('throws an error when seller is invalid', function () { + it("throws an error when seller is invalid", function () { expect(() => StellarBase.Operation.revokeOfferSponsorship({})).to.throw( /seller is invalid/ ); expect(() => StellarBase.Operation.revokeOfferSponsorship({ - seller: 'GBAD' + seller: "GBAD" }) ).to.throw(/seller is invalid/); }); - it('throws an error when asset offerId is not included', function () { + it("throws an error when asset offerId is not included", function () { expect(() => StellarBase.Operation.revokeOfferSponsorship({ - seller: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + seller: "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" }) ).to.throw(/offerId is invalid/); }); }); - describe('revokeDataSponsorship()', function () { - it('creates a revokeDataSponsorship', function () { + describe("revokeDataSponsorship()", function () { + it("creates a revokeDataSponsorship", function () { const account = - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'; - var name = 'foo'; + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"; + var name = "foo"; const op = StellarBase.Operation.revokeDataSponsorship({ account, name }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); - var operation = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); - expect(operation.body().switch().name).to.equal('revokeSponsorship'); + var operation = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); + expect(operation.body().switch().name).to.equal("revokeSponsorship"); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('revokeDataSponsorship'); + expect(obj.type).to.be.equal("revokeDataSponsorship"); expect(obj.account).to.be.equal(account); expect(obj.name).to.be.equal(name); }); - it('throws an error when account is invalid', function () { + it("throws an error when account is invalid", function () { expect(() => StellarBase.Operation.revokeDataSponsorship({})).to.throw( /account is invalid/ ); expect(() => StellarBase.Operation.revokeDataSponsorship({ - account: 'GBAD' + account: "GBAD" }) ).to.throw(/account is invalid/); }); - it('throws an error when data name is not included', function () { + it("throws an error when data name is not included", function () { expect(() => StellarBase.Operation.revokeDataSponsorship({ - account: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + account: "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" }) ).to.throw(/name must be a string, up to 64 characters/); }); }); - describe('revokeClaimableBalanceSponsorship()', function () { - it('creates a revokeClaimableBalanceSponsorship', function () { + describe("revokeClaimableBalanceSponsorship()", function () { + it("creates a revokeClaimableBalanceSponsorship", function () { const balanceId = - '00000000da0d57da7d4850e7fc10d2a9d0ebc731f7afb40574c03395b17d49149b91f5be'; + "00000000da0d57da7d4850e7fc10d2a9d0ebc731f7afb40574c03395b17d49149b91f5be"; const op = StellarBase.Operation.revokeClaimableBalanceSponsorship({ balanceId }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); - var operation = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); - expect(operation.body().switch().name).to.equal('revokeSponsorship'); + var operation = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); + expect(operation.body().switch().name).to.equal("revokeSponsorship"); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('revokeClaimableBalanceSponsorship'); + expect(obj.type).to.be.equal("revokeClaimableBalanceSponsorship"); expect(obj.balanceId).to.be.equal(balanceId); }); - it('throws an error when balanceId is invalid', function () { + it("throws an error when balanceId is invalid", function () { expect(() => StellarBase.Operation.revokeClaimableBalanceSponsorship({}) ).to.throw(/balanceId is invalid/); }); }); - describe('revokeLiquidityPoolSponsorship()', function () { - it('creates a revokeLiquidityPoolSponsorship', function () { + describe("revokeLiquidityPoolSponsorship()", function () { + it("creates a revokeLiquidityPoolSponsorship", function () { const liquidityPoolId = - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7'; + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7"; const op = StellarBase.Operation.revokeLiquidityPoolSponsorship({ liquidityPoolId }); - const xdr = op.toXDR('hex'); + const xdr = op.toXDR("hex"); - const operation = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); - expect(operation.body().switch().name).to.equal('revokeSponsorship'); + const operation = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); + expect(operation.body().switch().name).to.equal("revokeSponsorship"); const obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('revokeLiquidityPoolSponsorship'); + expect(obj.type).to.be.equal("revokeLiquidityPoolSponsorship"); expect(obj.liquidityPoolId).to.be.equal(liquidityPoolId); }); - it('throws an error when liquidityPoolId is invalid', function () { + it("throws an error when liquidityPoolId is invalid", function () { expect(() => StellarBase.Operation.revokeLiquidityPoolSponsorship({}) ).to.throw(/liquidityPoolId is invalid/); }); }); - describe('revokeSignerSponsorship()', function () { - it('creates a revokeSignerSponsorship', function () { + describe("revokeSignerSponsorship()", function () { + it("creates a revokeSignerSponsorship", function () { const account = - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'; + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"; let signer = { ed25519PublicKey: - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" }; let op = StellarBase.Operation.revokeSignerSponsorship({ account, signer }); - let xdr = op.toXDR('hex'); + let xdr = op.toXDR("hex"); - let operation = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); - expect(operation.body().switch().name).to.equal('revokeSponsorship'); + let operation = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); + expect(operation.body().switch().name).to.equal("revokeSponsorship"); let obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('revokeSignerSponsorship'); + expect(obj.type).to.be.equal("revokeSignerSponsorship"); expect(obj.account).to.be.equal(account); expect(obj.signer.ed25519PublicKey).to.be.equal(signer.ed25519PublicKey); // preAuthTx signer signer = { - preAuthTx: StellarBase.hash('Tx hash').toString('hex') + preAuthTx: StellarBase.hash("Tx hash").toString("hex") }; op = StellarBase.Operation.revokeSignerSponsorship({ account, signer }); - operation = StellarBase.xdr.Operation.fromXDR(op.toXDR('hex'), 'hex'); + operation = StellarBase.xdr.Operation.fromXDR(op.toXDR("hex"), "hex"); obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('revokeSignerSponsorship'); + expect(obj.type).to.be.equal("revokeSignerSponsorship"); expect(obj.account).to.be.equal(account); expect(obj.signer.preAuthTx).to.be.equal(signer.preAuthTx); // sha256Hash signer signer = { - sha256Hash: StellarBase.hash('Hash Preimage').toString('hex') + sha256Hash: StellarBase.hash("Hash Preimage").toString("hex") }; op = StellarBase.Operation.revokeSignerSponsorship({ account, signer }); - operation = StellarBase.xdr.Operation.fromXDR(op.toXDR('hex'), 'hex'); + operation = StellarBase.xdr.Operation.fromXDR(op.toXDR("hex"), "hex"); obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('revokeSignerSponsorship'); + expect(obj.type).to.be.equal("revokeSignerSponsorship"); expect(obj.account).to.be.equal(account); expect(obj.signer.sha256Hash).to.be.equal(signer.sha256Hash); }); - it('throws an error when account is invalid', function () { + it("throws an error when account is invalid", function () { const signer = { ed25519PublicKey: - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ" }; expect(() => StellarBase.Operation.revokeSignerSponsorship({ @@ -2249,17 +2249,17 @@ describe('Operation', function () { }); }); - describe('clawback()', function () { - it('requires asset, amount, account', function () { + describe("clawback()", function () { + it("requires asset, amount, account", function () { let asset = new StellarBase.Asset( - 'GCOIN', - 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + "GCOIN", + "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" ); - const amount = '100.0000000'; + const amount = "100.0000000"; expect(() => { StellarBase.Operation.clawback({ - from: 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' + from: "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7" }); }).to.throw(); expect(() => { @@ -2272,31 +2272,31 @@ describe('Operation', function () { StellarBase.Operation.clawback({}); }).to.throw(); }); - it('returns a clawback()', function () { - let account = 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'; - let asset = new StellarBase.Asset('GCOIN', account); - const amount = '100.0000000'; + it("returns a clawback()", function () { + let account = "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"; + let asset = new StellarBase.Asset("GCOIN", account); + const amount = "100.0000000"; const op = StellarBase.Operation.clawback({ from: account, amount: amount, asset: asset }); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('clawback'); + expect(obj.type).to.be.equal("clawback"); expect(obj.asset.equals(asset)).to.be.true; expect(obj.from).to.be.equal(account); }); }); - describe('setTrustLineFlags()', function () { - it('creates a SetTrustLineFlagsOp', function () { - let account = 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'; - let asset = new StellarBase.Asset('GCOIN', account); + describe("setTrustLineFlags()", function () { + it("creates a SetTrustLineFlagsOp", function () { + let account = "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"; + let asset = new StellarBase.Asset("GCOIN", account); const op = StellarBase.Operation.setTrustLineFlags({ trustor: account, @@ -2311,21 +2311,21 @@ describe('Operation', function () { expect(opBody.clearFlags()).to.be.equal(1 | 4); expect(opBody.setFlags()).to.be.equal(2); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('setTrustLineFlags'); + expect(obj.type).to.be.equal("setTrustLineFlags"); expect(obj.asset.equals(asset)).to.be.true; expect(obj.trustor).to.be.equal(account); expect(obj.flags.authorized).to.be.false; expect(obj.flags.authorizedToMaintainLiabilities).to.be.true; expect(obj.flags.clawbackEnabled).to.be.false; }); - it('leaves unmodified flags as undefined', function () { - let account = 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7'; - let asset = new StellarBase.Asset('GCOIN', account); + it("leaves unmodified flags as undefined", function () { + let account = "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"; + let asset = new StellarBase.Asset("GCOIN", account); expect(() => StellarBase.Operation.setTrustLineFlags({ @@ -2351,19 +2351,19 @@ describe('Operation', function () { const opBody = op.body().setTrustLineFlagsOp(); expect(opBody.setFlags()).to.be.equal(1); - var xdr = op.toXDR('hex'); + var xdr = op.toXDR("hex"); var operation = StellarBase.xdr.Operation.fromXDR( - Buffer.from(xdr, 'hex') + Buffer.from(xdr, "hex") ); var obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('setTrustLineFlags'); + expect(obj.type).to.be.equal("setTrustLineFlags"); expect(obj.asset.equals(asset)).to.be.true; expect(obj.trustor).to.be.equal(account); expect(obj.flags.authorized).to.be.true; expect(obj.flags.authorizedToMaintainLiabilities).to.be.undefined; expect(obj.flags.clawbackEnabled).to.be.undefined; }); - it('fails with invalid flags', function () { + it("fails with invalid flags", function () { expect(() => { StellarBase.Operation.setTrustLineFlags({ trustor: account, @@ -2375,15 +2375,15 @@ describe('Operation', function () { }); }).to.throw(); }); - it('should require parameters', function () { + it("should require parameters", function () { expect(() => { StellarBase.Operation.setTrustLineFlags({}); }).to.throw(); }); }); - describe('liquidityPoolDeposit()', function () { - it('throws an error if a required parameter is missing', function () { + describe("liquidityPoolDeposit()", function () { + it("throws an error if a required parameter is missing", function () { expect(() => StellarBase.Operation.liquidityPoolDeposit()).to.throw( /liquidityPoolId argument is required/ ); @@ -2394,69 +2394,69 @@ describe('Operation', function () { ); opts.liquidityPoolId = - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7'; + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7"; expect(() => StellarBase.Operation.liquidityPoolDeposit(opts)).to.throw( /maxAmountA argument must be of type String, represent a positive number and have at most 7 digits after the decimal/ ); - opts.maxAmountA = '10'; + opts.maxAmountA = "10"; expect(() => StellarBase.Operation.liquidityPoolDeposit(opts)).to.throw( /maxAmountB argument must be of type String, represent a positive number and have at most 7 digits after the decimal/ ); - opts.maxAmountB = '20'; + opts.maxAmountB = "20"; expect(() => StellarBase.Operation.liquidityPoolDeposit(opts)).to.throw( /minPrice argument is required/ ); - opts.minPrice = '0.45'; + opts.minPrice = "0.45"; expect(() => StellarBase.Operation.liquidityPoolDeposit(opts)).to.throw( /maxPrice argument is required/ ); - opts.maxPrice = '0.55'; + opts.maxPrice = "0.55"; expect(() => StellarBase.Operation.liquidityPoolDeposit(opts) ).to.not.throw(); }); - it('throws an error if prices are negative', function () { + it("throws an error if prices are negative", function () { const opts = { liquidityPoolId: - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7', - maxAmountA: '10.0000000', - maxAmountB: '20.0000000', - minPrice: '-0.45', - maxPrice: '0.55' + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7", + maxAmountA: "10.0000000", + maxAmountB: "20.0000000", + minPrice: "-0.45", + maxPrice: "0.55" }; expect(() => StellarBase.Operation.liquidityPoolDeposit(opts)).to.throw( /price must be positive/ ); }); - it('creates a liquidityPoolDeposit (string prices)', function () { + it("creates a liquidityPoolDeposit (string prices)", function () { const opts = { liquidityPoolId: - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7', - maxAmountA: '10.0000000', - maxAmountB: '20.0000000', - minPrice: '0.45', - maxPrice: '0.55' + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7", + maxAmountA: "10.0000000", + maxAmountB: "20.0000000", + minPrice: "0.45", + maxPrice: "0.55" }; const op = StellarBase.Operation.liquidityPoolDeposit(opts); - const xdr = op.toXDR('hex'); + const xdr = op.toXDR("hex"); - const xdrObj = StellarBase.xdr.Operation.fromXDR(Buffer.from(xdr, 'hex')); - expect(xdrObj.body().switch().name).to.equal('liquidityPoolDeposit'); + const xdrObj = StellarBase.xdr.Operation.fromXDR(Buffer.from(xdr, "hex")); + expect(xdrObj.body().switch().name).to.equal("liquidityPoolDeposit"); expect(xdrObj.body().value().maxAmountA().toString()).to.equal( - '100000000' + "100000000" ); expect(xdrObj.body().value().maxAmountB().toString()).to.equal( - '200000000' + "200000000" ); const operation = StellarBase.Operation.fromXDRObject(xdrObj); - expect(operation.type).to.be.equal('liquidityPoolDeposit'); + expect(operation.type).to.be.equal("liquidityPoolDeposit"); expect(operation.liquidityPoolId).to.be.equals(opts.liquidityPoolId); expect(operation.maxAmountA).to.be.equals(opts.maxAmountA); expect(operation.maxAmountB).to.be.equals(opts.maxAmountB); @@ -2464,12 +2464,12 @@ describe('Operation', function () { expect(operation.maxPrice).to.be.equals(opts.maxPrice); }); - it('creates a liquidityPoolDeposit (fraction prices)', function () { + it("creates a liquidityPoolDeposit (fraction prices)", function () { const opts = { liquidityPoolId: - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7', - maxAmountA: '10.0000000', - maxAmountB: '20.0000000', + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7", + maxAmountA: "10.0000000", + maxAmountB: "20.0000000", minPrice: { n: 9, d: 20 @@ -2480,19 +2480,19 @@ describe('Operation', function () { } }; const op = StellarBase.Operation.liquidityPoolDeposit(opts); - const xdr = op.toXDR('hex'); + const xdr = op.toXDR("hex"); - const xdrObj = StellarBase.xdr.Operation.fromXDR(Buffer.from(xdr, 'hex')); - expect(xdrObj.body().switch().name).to.equal('liquidityPoolDeposit'); + const xdrObj = StellarBase.xdr.Operation.fromXDR(Buffer.from(xdr, "hex")); + expect(xdrObj.body().switch().name).to.equal("liquidityPoolDeposit"); expect(xdrObj.body().value().maxAmountA().toString()).to.equal( - '100000000' + "100000000" ); expect(xdrObj.body().value().maxAmountB().toString()).to.equal( - '200000000' + "200000000" ); const operation = StellarBase.Operation.fromXDRObject(xdrObj); - expect(operation.type).to.be.equal('liquidityPoolDeposit'); + expect(operation.type).to.be.equal("liquidityPoolDeposit"); expect(operation.liquidityPoolId).to.be.equals(opts.liquidityPoolId); expect(operation.maxAmountA).to.be.equals(opts.maxAmountA); expect(operation.maxAmountB).to.be.equals(opts.maxAmountB); @@ -2504,29 +2504,29 @@ describe('Operation', function () { ); }); - it('creates a liquidityPoolDeposit (number prices)', function () { + it("creates a liquidityPoolDeposit (number prices)", function () { const opts = { liquidityPoolId: - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7', - maxAmountA: '10.0000000', - maxAmountB: '20.0000000', + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7", + maxAmountA: "10.0000000", + maxAmountB: "20.0000000", minPrice: 0.45, maxPrice: 0.55 }; const op = StellarBase.Operation.liquidityPoolDeposit(opts); - const xdr = op.toXDR('hex'); + const xdr = op.toXDR("hex"); - const xdrObj = StellarBase.xdr.Operation.fromXDR(Buffer.from(xdr, 'hex')); - expect(xdrObj.body().switch().name).to.equal('liquidityPoolDeposit'); + const xdrObj = StellarBase.xdr.Operation.fromXDR(Buffer.from(xdr, "hex")); + expect(xdrObj.body().switch().name).to.equal("liquidityPoolDeposit"); expect(xdrObj.body().value().maxAmountA().toString()).to.equal( - '100000000' + "100000000" ); expect(xdrObj.body().value().maxAmountB().toString()).to.equal( - '200000000' + "200000000" ); const operation = StellarBase.Operation.fromXDRObject(xdrObj); - expect(operation.type).to.be.equal('liquidityPoolDeposit'); + expect(operation.type).to.be.equal("liquidityPoolDeposit"); expect(operation.liquidityPoolId).to.be.equals(opts.liquidityPoolId); expect(operation.maxAmountA).to.be.equals(opts.maxAmountA); expect(operation.maxAmountB).to.be.equals(opts.maxAmountB); @@ -2534,29 +2534,29 @@ describe('Operation', function () { expect(operation.maxPrice).to.be.equals(opts.maxPrice.toString()); }); - it('creates a liquidityPoolDeposit (BigNumber prices)', function () { + it("creates a liquidityPoolDeposit (BigNumber prices)", function () { const opts = { liquidityPoolId: - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7', - maxAmountA: '10.0000000', - maxAmountB: '20.0000000', + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7", + maxAmountA: "10.0000000", + maxAmountB: "20.0000000", minPrice: new BigNumber(9).dividedBy(20), maxPrice: new BigNumber(11).dividedBy(20) }; const op = StellarBase.Operation.liquidityPoolDeposit(opts); - const xdr = op.toXDR('hex'); + const xdr = op.toXDR("hex"); - const xdrObj = StellarBase.xdr.Operation.fromXDR(Buffer.from(xdr, 'hex')); - expect(xdrObj.body().switch().name).to.equal('liquidityPoolDeposit'); + const xdrObj = StellarBase.xdr.Operation.fromXDR(Buffer.from(xdr, "hex")); + expect(xdrObj.body().switch().name).to.equal("liquidityPoolDeposit"); expect(xdrObj.body().value().maxAmountA().toString()).to.equal( - '100000000' + "100000000" ); expect(xdrObj.body().value().maxAmountB().toString()).to.equal( - '200000000' + "200000000" ); const operation = StellarBase.Operation.fromXDRObject(xdrObj); - expect(operation.type).to.be.equal('liquidityPoolDeposit'); + expect(operation.type).to.be.equal("liquidityPoolDeposit"); expect(operation.liquidityPoolId).to.be.equals(opts.liquidityPoolId); expect(operation.maxAmountA).to.be.equals(opts.maxAmountA); expect(operation.maxAmountB).to.be.equals(opts.maxAmountB); @@ -2565,8 +2565,8 @@ describe('Operation', function () { }); }); - describe('liquidityPoolWithdraw()', function () { - it('throws an error if a required parameter is missing', function () { + describe("liquidityPoolWithdraw()", function () { + it("throws an error if a required parameter is missing", function () { expect(() => StellarBase.Operation.liquidityPoolWithdraw()).to.throw( /liquidityPoolId argument is required/ ); @@ -2577,50 +2577,50 @@ describe('Operation', function () { ); opts.liquidityPoolId = - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7'; + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7"; expect(() => StellarBase.Operation.liquidityPoolWithdraw(opts)).to.throw( /amount argument must be of type String, represent a positive number and have at most 7 digits after the decimal/ ); - opts.amount = '10'; + opts.amount = "10"; expect(() => StellarBase.Operation.liquidityPoolWithdraw(opts)).to.throw( /minAmountA argument must be of type String, represent a positive number and have at most 7 digits after the decimal/ ); - opts.minAmountA = '10000'; + opts.minAmountA = "10000"; expect(() => StellarBase.Operation.liquidityPoolWithdraw(opts)).to.throw( /minAmountB argument must be of type String, represent a positive number and have at most 7 digits after the decimal/ ); - opts.minAmountB = '20000'; + opts.minAmountB = "20000"; expect(() => StellarBase.Operation.liquidityPoolWithdraw(opts) ).to.not.throw(); }); - it('creates a liquidityPoolWithdraw', function () { + it("creates a liquidityPoolWithdraw", function () { const opts = { liquidityPoolId: - 'dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7', - amount: '5.0000000', - minAmountA: '10.0000000', - minAmountB: '20.0000000' + "dd7b1ab831c273310ddbec6f97870aa83c2fbd78ce22aded37ecbf4f3380fac7", + amount: "5.0000000", + minAmountA: "10.0000000", + minAmountB: "20.0000000" }; const op = StellarBase.Operation.liquidityPoolWithdraw(opts); - const xdr = op.toXDR('hex'); + const xdr = op.toXDR("hex"); - const xdrObj = StellarBase.xdr.Operation.fromXDR(Buffer.from(xdr, 'hex')); - expect(xdrObj.body().switch().name).to.equal('liquidityPoolWithdraw'); - expect(xdrObj.body().value().amount().toString()).to.equal('50000000'); + const xdrObj = StellarBase.xdr.Operation.fromXDR(Buffer.from(xdr, "hex")); + expect(xdrObj.body().switch().name).to.equal("liquidityPoolWithdraw"); + expect(xdrObj.body().value().amount().toString()).to.equal("50000000"); expect(xdrObj.body().value().minAmountA().toString()).to.equal( - '100000000' + "100000000" ); expect(xdrObj.body().value().minAmountB().toString()).to.equal( - '200000000' + "200000000" ); const operation = StellarBase.Operation.fromXDRObject(xdrObj); - expect(operation.type).to.be.equal('liquidityPoolWithdraw'); + expect(operation.type).to.be.equal("liquidityPoolWithdraw"); expect(operation.liquidityPoolId).to.be.equals(opts.liquidityPoolId); expect(operation.amount).to.be.equals(opts.amount); expect(operation.minAmountA).to.be.equals(opts.minAmountA); @@ -2628,13 +2628,13 @@ describe('Operation', function () { }); }); - describe('.isValidAmount()', function () { - it('returns true for valid amounts', function () { + describe(".isValidAmount()", function () { + it("returns true for valid amounts", function () { let amounts = [ - '10', - '0.10', - '0.1234567', - '922337203685.4775807' // MAX + "10", + "0.10", + "0.1234567", + "922337203685.4775807" // MAX ]; for (var i in amounts) { @@ -2642,20 +2642,20 @@ describe('Operation', function () { } }); - it('returns false for invalid amounts', function () { + it("returns false for invalid amounts", function () { let amounts = [ 100, // integer 100.5, // float - '', // empty string - 'test', // string not representing a number - '0', - '-10', - '-10.5', - '0.12345678', - '922337203685.4775808', // Overflow - 'Infinity', + "", // empty string + "test", // string not representing a number + "0", + "-10", + "-10.5", + "0.12345678", + "922337203685.4775808", // Overflow + "Infinity", Infinity, - 'Nan', + "Nan", NaN ]; @@ -2664,30 +2664,30 @@ describe('Operation', function () { } }); - it('allows 0 only if allowZero argument is set to true', function () { - expect(StellarBase.Operation.isValidAmount('0')).to.be.false; - expect(StellarBase.Operation.isValidAmount('0', true)).to.be.true; + it("allows 0 only if allowZero argument is set to true", function () { + expect(StellarBase.Operation.isValidAmount("0")).to.be.false; + expect(StellarBase.Operation.isValidAmount("0", true)).to.be.true; }); }); - describe('._fromXDRAmount()', function () { - it('correctly parses the amount', function () { - expect(StellarBase.Operation._fromXDRAmount(1)).to.be.equal('0.0000001'); + describe("._fromXDRAmount()", function () { + it("correctly parses the amount", function () { + expect(StellarBase.Operation._fromXDRAmount(1)).to.be.equal("0.0000001"); expect(StellarBase.Operation._fromXDRAmount(10000000)).to.be.equal( - '1.0000000' + "1.0000000" ); expect(StellarBase.Operation._fromXDRAmount(10000000000)).to.be.equal( - '1000.0000000' + "1000.0000000" ); expect( StellarBase.Operation._fromXDRAmount(1000000000000000000) - ).to.be.equal('100000000000.0000000'); + ).to.be.equal("100000000000.0000000"); }); }); }); function expectBuffersToBeEqual(left, right) { - let leftHex = left.toString('hex'); - let rightHex = right.toString('hex'); + let leftHex = left.toString("hex"); + let rightHex = right.toString("hex"); expect(leftHex).to.eql(rightHex); } diff --git a/test/unit/operations/extend_restore_test.js b/test/unit/operations/extend_restore_test.js index eb990a49a..60fdc2f1d 100644 --- a/test/unit/operations/extend_restore_test.js +++ b/test/unit/operations/extend_restore_test.js @@ -1,15 +1,15 @@ const { Operation } = StellarBase; -describe('Operation', function () { - describe('.extendFootprintTtl()', function () { - it('creates operation', function () { +describe("Operation", function () { + describe(".extendFootprintTtl()", function () { + it("creates operation", function () { const op = StellarBase.Operation.extendFootprintTtl({ extendTo: 1234 }); - const xdr = op.toXDR('hex'); - const operation = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); + const xdr = op.toXDR("hex"); + const operation = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); - expect(operation.body().switch().name).to.equal('extendFootprintTtl'); + expect(operation.body().switch().name).to.equal("extendFootprintTtl"); const obj = StellarBase.Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('extendFootprintTtl'); + expect(obj.type).to.be.equal("extendFootprintTtl"); expect(obj.extendTo).to.equal(1234); expect(() => { @@ -18,15 +18,15 @@ describe('Operation', function () { }); }); - describe('.restoreFootprint()', function () { - it('creates operation', function () { + describe(".restoreFootprint()", function () { + it("creates operation", function () { const op = Operation.restoreFootprint(); - const xdr = op.toXDR('hex'); - const operation = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); + const xdr = op.toXDR("hex"); + const operation = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); - expect(operation.body().switch().name).to.equal('restoreFootprint'); + expect(operation.body().switch().name).to.equal("restoreFootprint"); const obj = Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('restoreFootprint'); + expect(obj.type).to.be.equal("restoreFootprint"); }); }); }); diff --git a/test/unit/operations/invoke_host_function_test.js b/test/unit/operations/invoke_host_function_test.js index 50a5acfbe..64f4ded1f 100644 --- a/test/unit/operations/invoke_host_function_test.js +++ b/test/unit/operations/invoke_host_function_test.js @@ -1,69 +1,69 @@ const { Asset, Contract, Operation, hash, nativeToScVal } = StellarBase; -describe('Operation', function () { - describe('.invokeHostFunction()', function () { +describe("Operation", function () { + describe(".invokeHostFunction()", function () { beforeEach(function () { this.contractId = - 'CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE'; + "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE"; this.c = new Contract(this.contractId); }); - it('creates operation', function () { + it("creates operation", function () { const op = Operation.invokeHostFunction({ auth: [], func: StellarBase.xdr.HostFunction.hostFunctionTypeInvokeContract( new StellarBase.xdr.InvokeContractArgs({ contractAddress: this.c.address().toScAddress(), - functionName: 'hello', - args: [nativeToScVal('world')] + functionName: "hello", + args: [nativeToScVal("world")] }) ) }); - var xdr = op.toXDR('hex'); - var operation = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); + var xdr = op.toXDR("hex"); + var operation = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); - expect(operation.body().switch().name).to.equal('invokeHostFunction'); + expect(operation.body().switch().name).to.equal("invokeHostFunction"); var obj = Operation.fromXDRObject(operation); - expect(obj.type).to.be.equal('invokeHostFunction'); - expect(obj.func.switch().name).to.equal('hostFunctionTypeInvokeContract'); + expect(obj.type).to.be.equal("invokeHostFunction"); + expect(obj.func.switch().name).to.equal("hostFunctionTypeInvokeContract"); expect(obj.auth).to.deep.equal([]); expect( Operation.invokeContractFunction({ contract: this.contractId, - function: 'hello', - args: [nativeToScVal('world')] - }).toXDR('hex') + function: "hello", + args: [nativeToScVal("world")] + }).toXDR("hex") ).to.eql(xdr); }); - it('throws when no func passed', function () { + it("throws when no func passed", function () { expect(() => Operation.invokeHostFunction({ auth: [] })).to.throw( /\('func'\) required/ ); }); - describe('abstractions', function () { - it('lets you create custom contracts', function () { + describe("abstractions", function () { + it("lets you create custom contracts", function () { let op; - const h = hash(Buffer.from('random stuff')); + const h = hash(Buffer.from("random stuff")); op = Operation.createCustomContract({ address: this.c.address(), wasmHash: h, salt: h }); - expect(op.body().switch().name).to.equal('invokeHostFunction'); + expect(op.body().switch().name).to.equal("invokeHostFunction"); // round trip back - const xdr = op.toXDR('hex'); - const xdrOp = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); - const decodedOp = Operation.fromXDRObject(xdrOp, 'hex'); + const xdr = op.toXDR("hex"); + const xdrOp = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); + const decodedOp = Operation.fromXDRObject(xdrOp, "hex"); - expect(decodedOp.type).to.equal('invokeHostFunction'); + expect(decodedOp.type).to.equal("invokeHostFunction"); expect(decodedOp.func.switch().name).to.equal( - 'hostFunctionTypeCreateContractV2' + "hostFunctionTypeCreateContractV2" ); expect( // check deep inner field to ensure RT @@ -76,28 +76,28 @@ describe('Operation', function () { expect(decodedOp.auth).to.be.empty; }); - describe('lets you wrap tokens', function () { + describe("lets you wrap tokens", function () { [ - 'USD:GCP2QKBFLLEEWYVKAIXIJIJNCZ6XEBIE4PCDB6BF3GUB6FGE2RQ3HDVP', + "USD:GCP2QKBFLLEEWYVKAIXIJIJNCZ6XEBIE4PCDB6BF3GUB6FGE2RQ3HDVP", Asset.native(), new Asset( - 'USD', - 'GCP2QKBFLLEEWYVKAIXIJIJNCZ6XEBIE4PCDB6BF3GUB6FGE2RQ3HDVP' + "USD", + "GCP2QKBFLLEEWYVKAIXIJIJNCZ6XEBIE4PCDB6BF3GUB6FGE2RQ3HDVP" ) ].forEach((asset) => { it(`with asset ${asset.toString()}`, function () { const op = Operation.createStellarAssetContract({ asset }); - expect(op.body().switch().name).to.equal('invokeHostFunction'); + expect(op.body().switch().name).to.equal("invokeHostFunction"); // round trip back - const xdr = op.toXDR('hex'); - const xdrOp = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); - const decodedOp = Operation.fromXDRObject(xdrOp, 'hex'); + const xdr = op.toXDR("hex"); + const xdrOp = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); + const decodedOp = Operation.fromXDRObject(xdrOp, "hex"); - expect(decodedOp.type).to.equal('invokeHostFunction'); + expect(decodedOp.type).to.equal("invokeHostFunction"); expect(decodedOp.func.switch().name).to.equal( - 'hostFunctionTypeCreateContract' + "hostFunctionTypeCreateContract" ); expect( // check deep inner field to ensure RT @@ -110,30 +110,30 @@ describe('Operation', function () { }); }); - it('lets you upload wasm', function () { + it("lets you upload wasm", function () { const wasm = Buffer.alloc(512); const op = Operation.uploadContractWasm({ wasm }); - expect(op.body().switch().name).to.equal('invokeHostFunction'); + expect(op.body().switch().name).to.equal("invokeHostFunction"); // round trip back - const xdr = op.toXDR('hex'); - const xdrOp = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); - const decodedOp = Operation.fromXDRObject(xdrOp, 'hex'); + const xdr = op.toXDR("hex"); + const xdrOp = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); + const decodedOp = Operation.fromXDRObject(xdrOp, "hex"); - expect(decodedOp.type).to.equal('invokeHostFunction'); + expect(decodedOp.type).to.equal("invokeHostFunction"); expect(decodedOp.func.switch().name).to.equal( - 'hostFunctionTypeUploadContractWasm' + "hostFunctionTypeUploadContractWasm" ); expect(decodedOp.func.wasm()).to.eql(wasm); expect(decodedOp.auth).to.be.empty; }); - it('lets you create contracts with a constructor', function () { - const h = hash(Buffer.from('random stuff')); + it("lets you create contracts with a constructor", function () { + const h = hash(Buffer.from("random stuff")); const constructorArgs = [ - nativeToScVal('admin name'), - nativeToScVal(1234, { type: 'i128' }) + nativeToScVal("admin name"), + nativeToScVal(1234, { type: "i128" }) ]; const op = Operation.createCustomContract({ @@ -142,17 +142,17 @@ describe('Operation', function () { wasmHash: h, salt: h }); - expect(op.body().switch().name).to.equal('invokeHostFunction'); + expect(op.body().switch().name).to.equal("invokeHostFunction"); // round trip back - const xdr = op.toXDR('hex'); - const xdrOp = StellarBase.xdr.Operation.fromXDR(xdr, 'hex'); - const decodedOp = Operation.fromXDRObject(xdrOp, 'hex'); + const xdr = op.toXDR("hex"); + const xdrOp = StellarBase.xdr.Operation.fromXDR(xdr, "hex"); + const decodedOp = Operation.fromXDRObject(xdrOp, "hex"); - expect(decodedOp.type).to.equal('invokeHostFunction'); + expect(decodedOp.type).to.equal("invokeHostFunction"); expect(decodedOp.func.switch().name).to.equal( - 'hostFunctionTypeCreateContractV2' + "hostFunctionTypeCreateContractV2" ); // check deep inner field to ensure RT @@ -176,16 +176,16 @@ describe('Operation', function () { expect(ctorArgs[0].str().toString()).to.eql(constructorArgs[0].str()); }); - it('prevents invocation with claimable balances', function () { + it("prevents invocation with claimable balances", function () { expect(() => Operation.invokeContractFunction({ contract: - 'CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE', - function: 'increment', + "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE", + function: "increment", args: [ nativeToScVal( - 'LA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUPJN', - { type: 'address' } + "LA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUPJN", + { type: "address" } ) ] }) diff --git a/test/unit/scint_test.js b/test/unit/scint_test.js index 05b009627..b330c1c27 100644 --- a/test/unit/scint_test.js +++ b/test/unit/scint_test.js @@ -4,10 +4,10 @@ const I256 = StellarBase.Int256; const U256 = StellarBase.Uint256; const xdr = StellarBase.xdr; // shorthand -describe('creating large integers', function () { - describe('picks the right types', function () { +describe("creating large integers", function () { + describe("picks the right types", function () { Object.entries({ - u64: [1, '1', 0xdeadbeef, (1n << 64n) - 1n], + u64: [1, "1", 0xdeadbeef, (1n << 64n) - 1n], u128: [1n << 64n, (1n << 128n) - 1n], u256: [1n << 128n, (1n << 256n) - 1n] }).forEach(([type, values]) => { @@ -21,21 +21,21 @@ describe('creating large integers', function () { }); }); - it('has correct utility methods', function () { + it("has correct utility methods", function () { const v = 123456789123456789123456789123456789123456789123456789123456789123456789n; const i = new StellarBase.ScInt(v); expect(i.valueOf()).to.be.eql(new U256(v)); expect(i.toString()).to.equal( - '123456789123456789123456789123456789123456789123456789123456789123456789' + "123456789123456789123456789123456789123456789123456789123456789123456789" ); - expect(i.toJSON()).to.be.eql({ value: v.toString(), type: 'u256' }); + expect(i.toJSON()).to.be.eql({ value: v.toString(), type: "u256" }); }); - describe('64 bit inputs', function () { + describe("64 bit inputs", function () { const sentinel = 800000085n; - it('handles u64', function () { + it("handles u64", function () { let b = new StellarBase.ScInt(sentinel); expect(b.toBigInt()).to.equal(sentinel); expect(b.toNumber()).to.equal(Number(sentinel)); @@ -51,7 +51,7 @@ describe('creating large integers', function () { expect(u64.high).to.equal(-1); }); - it('handles timepoint', function () { + it("handles timepoint", function () { let b = new StellarBase.ScInt(sentinel); expect(b.toBigInt()).to.equal(sentinel); expect(b.toNumber()).to.equal(Number(sentinel)); @@ -60,7 +60,7 @@ describe('creating large integers', function () { expect(u64.high).to.equal(0); }); - it('handles duration', function () { + it("handles duration", function () { let b = new StellarBase.ScInt(sentinel); expect(b.toBigInt()).to.equal(sentinel); expect(b.toNumber()).to.equal(Number(sentinel)); @@ -69,7 +69,7 @@ describe('creating large integers', function () { expect(u64.high).to.equal(0); }); - it('handles i64', function () { + it("handles i64", function () { let b = new StellarBase.ScInt(sentinel); expect(b.toBigInt()).to.equal(sentinel); expect(b.toNumber()).to.equal(Number(sentinel)); @@ -142,10 +142,10 @@ describe('creating large integers', function () { }); }); - describe('128 bit inputs', function () { + describe("128 bit inputs", function () { const sentinel = 800000000000000000000085n; // 80 bits long - it('handles inputs', function () { + it("handles inputs", function () { let b = new StellarBase.ScInt(sentinel); expect(b.toBigInt()).to.equal(sentinel); expect(() => b.toNumber()).to.throw(/not in range/i); @@ -196,7 +196,7 @@ describe('creating large integers', function () { ).to.equal(-sentinel); }); - it('upscales to 256 bits', function () { + it("upscales to 256 bits", function () { let b = new StellarBase.ScInt(-sentinel); let i256 = b.toI256().i256(); let u256 = b.toU256().u256(); @@ -229,21 +229,21 @@ describe('creating large integers', function () { }); }); - describe('conversion to/from ScVals', function () { + describe("conversion to/from ScVals", function () { const v = 80000085n; const i = new StellarBase.ScInt(v); [ - [i.toI64(), 'i64'], - [i.toU64(), 'u64'], - [i.toI128(), 'i128'], - [i.toU128(), 'u128'], - [i.toI256(), 'i256'], - [i.toU256(), 'u256'] + [i.toI64(), "i64"], + [i.toU64(), "u64"], + [i.toI128(), "i128"], + [i.toU128(), "u128"], + [i.toI256(), "i256"], + [i.toU256(), "u256"] ].forEach(([scv, type]) => { it(`works for ${type}`, function () { expect(scv.switch().name).to.equal(`scv${type.toUpperCase()}`); - expect(typeof scv.toXDR('base64')).to.equal('string'); + expect(typeof scv.toXDR("base64")).to.equal("string"); const bigi = StellarBase.scValToBigInt(scv); expect(bigi).to.equal(v); @@ -254,7 +254,7 @@ describe('creating large integers', function () { }); }); - it('works for 32-bit', function () { + it("works for 32-bit", function () { const i32 = new xdr.ScVal.scvI32(Number(v)); const u32 = new xdr.ScVal.scvU32(Number(v)); @@ -262,25 +262,25 @@ describe('creating large integers', function () { expect(StellarBase.scValToBigInt(u32)).to.equal(v); }); - it('throws for non-integers', function () { + it("throws for non-integers", function () { expect(() => - StellarBase.scValToBigInt(new xdr.ScVal.scvString('hello')) + StellarBase.scValToBigInt(new xdr.ScVal.scvString("hello")) ).to.throw(/integer/i); }); }); - describe('error handling', function () { - ['u64', 'u128', 'u256'].forEach((type) => { + describe("error handling", function () { + ["u64", "u128", "u256"].forEach((type) => { it(`throws when signed parts and {type: '${type}'}`, function () { expect(() => new StellarBase.ScInt(-2, { type })).to.throw(/negative/i); }); }); - it('throws when too big', function () { + it("throws when too big", function () { expect(() => new StellarBase.ScInt(1n << 400n)).to.throw(/expected/i); }); - it('throws when big interpreted as small', function () { + it("throws when big interpreted as small", function () { let big; big = new StellarBase.ScInt(1n << 64n); @@ -289,11 +289,11 @@ describe('creating large integers', function () { big = new StellarBase.ScInt(Number.MAX_SAFE_INTEGER + 1); expect(() => big.toNumber()).to.throw(/not in range/i); - big = new StellarBase.ScInt(1, { type: 'i128' }); + big = new StellarBase.ScInt(1, { type: "i128" }); expect(() => big.toU64()).to.throw(/too large/i); expect(() => big.toI64()).to.throw(/too large/i); - big = new StellarBase.ScInt(1, { type: 'i256' }); + big = new StellarBase.ScInt(1, { type: "i256" }); expect(() => big.toU64()).to.throw(/too large/i); expect(() => big.toI64()).to.throw(/too large/i); expect(() => big.toI128()).to.throw(/too large/i); @@ -302,12 +302,12 @@ describe('creating large integers', function () { }); }); -describe('creating raw large XDR integers', function () { - describe('array inputs', function () { +describe("creating raw large XDR integers", function () { + describe("array inputs", function () { [ - ['i64', 2], - ['i128', 4], - ['i256', 8] + ["i64", 2], + ["i128", 4], + ["i256", 8] ].forEach(([type, count], idx) => { it(`works for ${type}`, function () { const input = new Array(count).fill(1n); diff --git a/test/unit/scval_test.js b/test/unit/scval_test.js index 5c78ff4ae..ac9023cc3 100644 --- a/test/unit/scval_test.js +++ b/test/unit/scval_test.js @@ -9,7 +9,7 @@ const { scValToBigInt } = StellarBase; -describe('parsing and building ScVals', function () { +describe("parsing and building ScVals", function () { const gigaMap = { bool: true, void: null, @@ -25,47 +25,47 @@ describe('parsing and building ScVals', function () { i256: new ScInt(1).toI256(), map: { arbitrary: 1n, - nested: 'values', + nested: "values", etc: false }, - vec: ['same', 'type', 'list'] + vec: ["same", "type", "list"] }; const targetScv = xdr.ScVal.scvMap( [ - ['bool', xdr.ScVal.scvBool(true)], - ['duration', new ScInt(1000n, { type: 'duration' }).toScVal()], - ['i128', new ScInt(1, { type: 'i128' }).toScVal()], - ['i256', new ScInt(1, { type: 'i256' }).toScVal()], - ['i32', xdr.ScVal.scvI32(1)], - ['i64', xdr.ScVal.scvI64(new xdr.Int64(-1))], + ["bool", xdr.ScVal.scvBool(true)], + ["duration", new ScInt(1000n, { type: "duration" }).toScVal()], + ["i128", new ScInt(1, { type: "i128" }).toScVal()], + ["i256", new ScInt(1, { type: "i256" }).toScVal()], + ["i32", xdr.ScVal.scvI32(1)], + ["i64", xdr.ScVal.scvI64(new xdr.Int64(-1))], [ - 'map', + "map", xdr.ScVal.scvMap([ new xdr.ScMapEntry({ - key: xdr.ScVal.scvString('arbitrary'), + key: xdr.ScVal.scvString("arbitrary"), val: xdr.ScVal.scvU64(new xdr.Uint64(1)) }), new xdr.ScMapEntry({ - key: xdr.ScVal.scvString('etc'), + key: xdr.ScVal.scvString("etc"), val: xdr.ScVal.scvBool(false) }), new xdr.ScMapEntry({ - key: xdr.ScVal.scvString('nested'), - val: xdr.ScVal.scvString('values') + key: xdr.ScVal.scvString("nested"), + val: xdr.ScVal.scvString("values") }) ]) ], - ['timepoint', new ScInt(1443571200n, { type: 'timepoint' }).toScVal()], - ['u128', new ScInt(1, { type: 'u128' }).toScVal()], - ['u256', new ScInt(1, { type: 'u256' }).toScVal()], - ['u32', xdr.ScVal.scvU32(1)], - ['u64', xdr.ScVal.scvU64(new xdr.Uint64(1))], + ["timepoint", new ScInt(1443571200n, { type: "timepoint" }).toScVal()], + ["u128", new ScInt(1, { type: "u128" }).toScVal()], + ["u256", new ScInt(1, { type: "u256" }).toScVal()], + ["u32", xdr.ScVal.scvU32(1)], + ["u64", xdr.ScVal.scvU64(new xdr.Uint64(1))], [ - 'vec', - xdr.ScVal.scvVec(['same', 'type', 'list'].map(xdr.ScVal.scvString)) + "vec", + xdr.ScVal.scvVec(["same", "type", "list"].map(xdr.ScVal.scvString)) ], - ['void', xdr.ScVal.scvVoid()] + ["void", xdr.ScVal.scvVoid()] ].map(([type, scv]) => { return new xdr.ScMapEntry({ key: new xdr.ScVal.scvString(type), @@ -74,12 +74,12 @@ describe('parsing and building ScVals', function () { }) ); - it('builds an ScVal from all intended native types', function () { + it("builds an ScVal from all intended native types", function () { const scv = nativeToScVal(gigaMap); // test case expectation sanity check expect(targetScv.value().length).to.equal(Object.keys(gigaMap).length); - expect(scv.switch().name).to.equal('scvMap'); + expect(scv.switch().name).to.equal("scvMap"); expect(scv.value().length).to.equal(targetScv.value().length); // iterate for granular errors on failures @@ -88,12 +88,12 @@ describe('parsing and building ScVals', function () { expect(entry).to.deep.equal(actual, `item ${idx} doesn't match`); }); - expect(scv.toXDR('base64')).to.deep.equal(targetScv.toXDR('base64')); + expect(scv.toXDR("base64")).to.deep.equal(targetScv.toXDR("base64")); }); - it('converts ScVal to intended native types', function () { + it("converts ScVal to intended native types", function () { const kp = StellarBase.Keypair.random(); - const inputVec = ['Hello', 'there.', 'General', 'Kenobi!']; + const inputVec = ["Hello", "there.", "General", "Kenobi!"]; [ [xdr.ScVal.scvVoid(), null], @@ -109,15 +109,15 @@ describe('parsing and building ScVals', function () { [new ScInt(33).toI256(), 33n], [xdr.ScVal.scvTimepoint(new xdr.Uint64(44n)), 44n], [xdr.ScVal.scvDuration(new xdr.Uint64(55n)), 55n], - [xdr.ScVal.scvBytes(Buffer.alloc(32, 123)), Buffer.from('{'.repeat(32))], + [xdr.ScVal.scvBytes(Buffer.alloc(32, 123)), Buffer.from("{".repeat(32))], [ xdr.ScVal.scvBytes(Buffer.alloc(32, 123)), new Uint8Array(32).fill(123, 0, 32) ], - [xdr.ScVal.scvString('hello there!'), 'hello there!'], - [xdr.ScVal.scvSymbol('hello'), 'hello'], - [xdr.ScVal.scvString(Buffer.from('hello')), 'hello'], // ensure conversion - [xdr.ScVal.scvSymbol(Buffer.from('hello')), 'hello'], // ensure conversion + [xdr.ScVal.scvString("hello there!"), "hello there!"], + [xdr.ScVal.scvSymbol("hello"), "hello"], + [xdr.ScVal.scvString(Buffer.from("hello")), "hello"], // ensure conversion + [xdr.ScVal.scvSymbol(Buffer.from("hello")), "hello"], // ensure conversion [ new StellarBase.Address(kp.publicKey()).toScVal(), (actual) => actual.toString() === kp.publicKey() @@ -127,7 +127,7 @@ describe('parsing and building ScVals', function () { xdr.ScVal.scvMap( [ [new ScInt(0).toI256(), xdr.ScVal.scvBool(true)], - [xdr.ScVal.scvBool(false), xdr.ScVal.scvString('second')], + [xdr.ScVal.scvBool(false), xdr.ScVal.scvString("second")], [ xdr.ScVal.scvU32(2), xdr.ScVal.scvVec(inputVec.map(xdr.ScVal.scvString)) @@ -136,16 +136,16 @@ describe('parsing and building ScVals', function () { ), { 0: true, - false: 'second', + false: "second", 2: inputVec } ] ].forEach(([scv, expected]) => { - expect(() => scv.toXDR(), 'ScVal is invalid').to.not.throw(); + expect(() => scv.toXDR(), "ScVal is invalid").to.not.throw(); const actual = scValToNative(scv); - if (typeof expected === 'function') { + if (typeof expected === "function") { expect(expected(actual), `converting ${scv} to native`).to.be.true; } else { expect(actual).to.deep.equal(expected); @@ -153,21 +153,21 @@ describe('parsing and building ScVals', function () { }); }); - it('converts native types with customized types', function () { + it("converts native types with customized types", function () { [ - [1, 'u32', 'scvU32'], - [1, 'i32', 'scvI32'], - [1, 'i64', 'scvI64'], - [1, 'i128', 'scvI128'], - [1, 'u256', 'scvU256'], - [2, 'timepoint', 'scvTimepoint'], - [3, 'duration', 'scvDuration'], - ['a', 'symbol', 'scvSymbol'], - ['a', undefined, 'scvString'], - [Keypair.random(), undefined, 'scvAddress'], - [Buffer.from('abcdefg'), undefined, 'scvBytes'], - [Buffer.from('abcdefg'), 'string', 'scvString'], - [Buffer.from('abcdefg'), 'symbol', 'scvSymbol'] + [1, "u32", "scvU32"], + [1, "i32", "scvI32"], + [1, "i64", "scvI64"], + [1, "i128", "scvI128"], + [1, "u256", "scvU256"], + [2, "timepoint", "scvTimepoint"], + [3, "duration", "scvDuration"], + ["a", "symbol", "scvSymbol"], + ["a", undefined, "scvString"], + [Keypair.random(), undefined, "scvAddress"], + [Buffer.from("abcdefg"), undefined, "scvBytes"], + [Buffer.from("abcdefg"), "string", "scvString"], + [Buffer.from("abcdefg"), "symbol", "scvSymbol"] ].forEach(([input, typeSpec, outType]) => { let scv = nativeToScVal(input, { type: typeSpec }); expect(scv.switch().name).to.equal( @@ -178,93 +178,93 @@ describe('parsing and building ScVals', function () { let scv; - scv = nativeToScVal(['a', 'b', 'c'], { type: 'symbol' }); - expect(scv.switch().name).to.equal('scvVec'); + scv = nativeToScVal(["a", "b", "c"], { type: "symbol" }); + expect(scv.switch().name).to.equal("scvVec"); scv.value().forEach((v) => { - expect(v.switch().name).to.equal('scvSymbol'); + expect(v.switch().name).to.equal("scvSymbol"); }); scv = nativeToScVal( { - hello: 'world', + hello: "world", there: [1, 2, 3] }, { type: { - hello: ['symbol', null], - there: [null, 'i32'] + hello: ["symbol", null], + there: [null, "i32"] } } ); let e; - expect(scv.switch().name).to.equal('scvMap'); + expect(scv.switch().name).to.equal("scvMap"); e = scv.value()[0]; - expect(e.key().switch().name).to.equal('scvSymbol', `${JSON.stringify(e)}`); - expect(e.val().switch().name).to.equal('scvString', `${JSON.stringify(e)}`); + expect(e.key().switch().name).to.equal("scvSymbol", `${JSON.stringify(e)}`); + expect(e.val().switch().name).to.equal("scvString", `${JSON.stringify(e)}`); e = scv.value()[1]; - expect(e.key().switch().name).to.equal('scvString', `${JSON.stringify(e)}`); - expect(e.val().switch().name).to.equal('scvVec', `${JSON.stringify(e)}`); + expect(e.key().switch().name).to.equal("scvString", `${JSON.stringify(e)}`); + expect(e.val().switch().name).to.equal("scvVec", `${JSON.stringify(e)}`); expect(e.val().value()[0].switch().name).to.equal( - 'scvI32', + "scvI32", `${JSON.stringify(e)}` ); }); - it('doesnt throw on arrays with mixed types', function () { - expect(nativeToScVal([1, 'a', false]).switch().name).to.equal('scvVec'); + it("doesnt throw on arrays with mixed types", function () { + expect(nativeToScVal([1, "a", false]).switch().name).to.equal("scvVec"); }); - it('allows type specifications across an array', function () { - const scv = nativeToScVal([1, 'a', false, 'b'], { - type: ['i128', 'symbol'] + it("allows type specifications across an array", function () { + const scv = nativeToScVal([1, "a", false, "b"], { + type: ["i128", "symbol"] }); - expect(scv.switch().name).to.equal('scvVec'); + expect(scv.switch().name).to.equal("scvVec"); expect(scv.value().length).to.equal(4); - ['scvI128', 'scvSymbol', 'scvBool', 'scvString'].forEach( + ["scvI128", "scvSymbol", "scvBool", "scvString"].forEach( (expectedType, idx) => { expect(scv.value()[idx].switch().name).to.equal(expectedType); } ); }); - it('lets strings be small integer ScVals', function () { - ['i32', 'u32'].forEach((type) => { - const scv = nativeToScVal('12345', { type }); + it("lets strings be small integer ScVals", function () { + ["i32", "u32"].forEach((type) => { + const scv = nativeToScVal("12345", { type }); expect(scv.switch()).to.eql( - type === 'u32' ? xdr.ScValType.scvU32() : xdr.ScValType.scvI32() + type === "u32" ? xdr.ScValType.scvU32() : xdr.ScValType.scvI32() ); expect(scv.value()).to.eql(12345); }); }); - it('lets strings be large integer ScVals', function () { - ['i64', 'i128', 'i256', 'u64', 'u128', 'u256'].forEach((type) => { - const scv = nativeToScVal('12345', { type }); + it("lets strings be large integer ScVals", function () { + ["i64", "i128", "i256", "u64", "u128", "u256"].forEach((type) => { + const scv = nativeToScVal("12345", { type }); expect(XdrLargeInt.getType(scv.switch().name)).to.equal(type); expect(scValToBigInt(scv)).to.equal(BigInt(12345)); }); - expect(() => nativeToScVal('not a number', { type: 'i128' })).to.throw(); - expect(() => nativeToScVal('12345', { type: 'notnumeric' })).to.throw(); + expect(() => nativeToScVal("not a number", { type: "i128" })).to.throw(); + expect(() => nativeToScVal("12345", { type: "notnumeric" })).to.throw(); }); - it('lets strings be addresses', function () { + it("lets strings be addresses", function () { [ - 'CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM', - 'CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE', + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE", Keypair.random().publicKey(), Keypair.random().publicKey() ].forEach((addr) => { - const scv = nativeToScVal(addr, { type: 'address' }); + const scv = nativeToScVal(addr, { type: "address" }); const equiv = new Address(addr).toScVal(); - expect(scv.switch().name).to.be.equal('scvAddress'); + expect(scv.switch().name).to.be.equal("scvAddress"); expect(scv).to.deep.equal(equiv); }); }); - it('parses errors', function () { + it("parses errors", function () { const userErr = xdr.ScVal.scvError(xdr.ScError.sceContract(1234)); const systemErr = xdr.ScVal.scvError( xdr.ScError.sceWasmVm(xdr.ScErrorCode.scecInvalidInput()) @@ -273,27 +273,27 @@ describe('parsing and building ScVals', function () { const native = scValToNative(xdr.ScVal.scvVec([userErr, systemErr])); expect(native).to.deep.equal([ - { type: 'contract', code: 1234 }, + { type: "contract", code: 1234 }, { - type: 'system', + type: "system", code: systemErr.error().code().value, value: systemErr.error().code().name } ]); }); - it('can sort maps by string', function () { + it("can sort maps by string", function () { const sample = nativeToScVal( { a: 1, b: 2, c: 3 }, { type: { - a: ['symbol'], - b: ['symbol'], - c: ['symbol'] + a: ["symbol"], + b: ["symbol"], + c: ["symbol"] } } ); - ['a', 'b', 'c'].forEach((val, idx) => { + ["a", "b", "c"].forEach((val, idx) => { expect(sample.value()[idx].key().value()).to.equal(val); }); @@ -303,29 +303,29 @@ describe('parsing and building ScVals', function () { sample.value()[0] = sample.value()[2]; sample.value()[2] = tmp; - ['c', 'b', 'a'].forEach((val, idx) => { + ["c", "b", "a"].forEach((val, idx) => { expect(sample.value()[idx].key().value()).to.equal(val); }); const sorted = xdr.scvSortedMap(sample.value()); - expect(sorted.switch().name).to.equal('scvMap'); - ['a', 'b', 'c'].forEach((val, idx) => { + expect(sorted.switch().name).to.equal("scvMap"); + ["a", "b", "c"].forEach((val, idx) => { expect(sorted.value()[idx].key().value()).to.equal(val); }); }); - it('can sort number-like maps', function () { + it("can sort number-like maps", function () { const sample = nativeToScVal( - { 1: 'a', 2: 'b', 3: 'c' }, + { 1: "a", 2: "b", 3: "c" }, { type: { - 1: ['i64', 'symbol'], - 2: ['i64', 'symbol'], - 3: ['i64', 'symbol'] + 1: ["i64", "symbol"], + 2: ["i64", "symbol"], + 3: ["i64", "symbol"] } } ); - expect(sample.value()[0].key().switch().name).to.equal('scvI64'); + expect(sample.value()[0].key().switch().name).to.equal("scvI64"); [1n, 2n, 3n].forEach((val, idx) => { let underlyingKey = sample.value()[idx].key().value(); @@ -343,7 +343,7 @@ describe('parsing and building ScVals', function () { }); const sorted = xdr.scvSortedMap(sample.value()); - expect(sorted.switch().name).to.equal('scvMap'); + expect(sorted.switch().name).to.equal("scvMap"); [1n, 2n, 3n].forEach((val, idx) => { expect(sorted.value()[idx].key().value().toBigInt()).to.equal(val); }); diff --git a/test/unit/signerkey_test.js b/test/unit/signerkey_test.js index 92e0672a3..df533e19f 100644 --- a/test/unit/signerkey_test.js +++ b/test/unit/signerkey_test.js @@ -1,21 +1,21 @@ -describe('SignerKey', function () { - describe('encode/decode roundtrip', function () { +describe("SignerKey", function () { + describe("encode/decode roundtrip", function () { const TEST_CASES = [ { - strkey: 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ', + strkey: "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ", type: StellarBase.xdr.SignerKeyType.signerKeyTypeEd25519() }, { - strkey: 'TBU2RRGLXH3E5CQHTD3ODLDF2BWDCYUSSBLLZ5GNW7JXHDIYKXZWHXL7', + strkey: "TBU2RRGLXH3E5CQHTD3ODLDF2BWDCYUSSBLLZ5GNW7JXHDIYKXZWHXL7", type: StellarBase.xdr.SignerKeyType.signerKeyTypePreAuthTx() }, { - strkey: 'XBU2RRGLXH3E5CQHTD3ODLDF2BWDCYUSSBLLZ5GNW7JXHDIYKXZWGTOG', + strkey: "XBU2RRGLXH3E5CQHTD3ODLDF2BWDCYUSSBLLZ5GNW7JXHDIYKXZWGTOG", type: StellarBase.xdr.SignerKeyType.signerKeyTypeHashX() }, { strkey: - 'PA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAQACAQDAQCQMBYIBEFAWDANBYHRAEISCMKBKFQXDAMRUGY4DUPB6IBZGM', + "PA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAQACAQDAQCQMBYIBEFAWDANBYHRAEISCMKBKFQXDAMRUGY4DUPB6IBZGM", type: StellarBase.xdr.SignerKeyType.signerKeyTypeEd25519SignedPayload() } ]; @@ -25,8 +25,8 @@ describe('SignerKey', function () { const skey = StellarBase.SignerKey.decodeAddress(testCase.strkey); expect(skey.switch()).to.eql(testCase.type); - const rawXdr = skey.toXDR('raw'); - const rawSk = StellarBase.xdr.SignerKey.fromXDR(rawXdr, 'raw'); + const rawXdr = skey.toXDR("raw"); + const rawSk = StellarBase.xdr.SignerKey.fromXDR(rawXdr, "raw"); expect(rawSk).to.eql(skey); const address = StellarBase.SignerKey.encodeSignerKey(skey); @@ -35,13 +35,13 @@ describe('SignerKey', function () { }); }); - describe('error cases', function () { + describe("error cases", function () { [ // these are valid strkeys, just not valid signers - 'SAB5556L5AN5KSR5WF7UOEFDCIODEWEO7H2UR4S5R62DFTQOGLKOVZDY', - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK', + "SAB5556L5AN5KSR5WF7UOEFDCIODEWEO7H2UR4S5R62DFTQOGLKOVZDY", + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK", // this is (literal) nonsense - 'NONSENSE' + "NONSENSE" ].forEach((strkey) => { it(`fails on ${strkey.substring(0, 5)}...`, function () { expect(() => { @@ -50,11 +50,11 @@ describe('SignerKey', function () { }); }); - it('fails on invalid strkey', function () { + it("fails on invalid strkey", function () { expect(() => // address taken from strkey_test.js#invalidStrKeys StellarBase.SignerKey.decodeAddress( - 'G47QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVP2I' + "G47QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVP2I" ) ).to.throw(/invalid version byte/i); }); diff --git a/test/unit/signing_test.js b/test/unit/signing_test.js index 177c1f005..87d22e483 100644 --- a/test/unit/signing_test.js +++ b/test/unit/signing_test.js @@ -1,65 +1,65 @@ // NOTE: key and signature constants were generated using rbnacl let seed = Buffer.from( - '1123740522f11bfef6b3671f51e159ccf589ccf8965262dd5f97d1721d383dd4', - 'hex' + "1123740522f11bfef6b3671f51e159ccf589ccf8965262dd5f97d1721d383dd4", + "hex" ); let publicKey = Buffer.from( - 'ffbdd7ef9933fe7249dc5ca1e7120b6d7b7b99a7a367e1a2fc6cb062fe420437', - 'hex' + "ffbdd7ef9933fe7249dc5ca1e7120b6d7b7b99a7a367e1a2fc6cb062fe420437", + "hex" ); let secretKey = seed; -describe('StellarBase#sign', function () { +describe("StellarBase#sign", function () { let expectedSig = - '587d4b472eeef7d07aafcd0b049640b0bb3f39784118c2e2b73a04fa2f64c9c538b4b2d0f5335e968a480021fdc23e98c0ddf424cb15d8131df8cb6c4bb58309'; + "587d4b472eeef7d07aafcd0b049640b0bb3f39784118c2e2b73a04fa2f64c9c538b4b2d0f5335e968a480021fdc23e98c0ddf424cb15d8131df8cb6c4bb58309"; - it('can sign an string properly', function () { - let data = 'hello world'; - let actualSig = StellarBase.sign(data, secretKey).toString('hex'); + it("can sign an string properly", function () { + let data = "hello world"; + let actualSig = StellarBase.sign(data, secretKey).toString("hex"); expect(actualSig).to.eql(expectedSig); }); - it('can sign an buffer properly', function () { - let data = Buffer.from('hello world', 'utf8'); - let actualSig = StellarBase.sign(data, secretKey).toString('hex'); + it("can sign an buffer properly", function () { + let data = Buffer.from("hello world", "utf8"); + let actualSig = StellarBase.sign(data, secretKey).toString("hex"); expect(actualSig).to.eql(expectedSig); }); - it('can sign an array of bytes properly', function () { + it("can sign an array of bytes properly", function () { let data = [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]; - let actualSig = StellarBase.sign(data, secretKey).toString('hex'); + let actualSig = StellarBase.sign(data, secretKey).toString("hex"); expect(actualSig).to.eql(expectedSig); }); }); -describe('StellarBase#verify', function () { +describe("StellarBase#verify", function () { let sig = Buffer.from( - '587d4b472eeef7d07aafcd0b049640b0bb3f39784118c2e2b73a04fa2f64c9c538b4b2d0f5335e968a480021fdc23e98c0ddf424cb15d8131df8cb6c4bb58309', - 'hex' + "587d4b472eeef7d07aafcd0b049640b0bb3f39784118c2e2b73a04fa2f64c9c538b4b2d0f5335e968a480021fdc23e98c0ddf424cb15d8131df8cb6c4bb58309", + "hex" ); let badSig = Buffer.from( - '687d4b472eeef7d07aafcd0b049640b0bb3f39784118c2e2b73a04fa2f64c9c538b4b2d0f5335e968a480021fdc23e98c0ddf424cb15d8131df8cb6c4bb58309', - 'hex' + "687d4b472eeef7d07aafcd0b049640b0bb3f39784118c2e2b73a04fa2f64c9c538b4b2d0f5335e968a480021fdc23e98c0ddf424cb15d8131df8cb6c4bb58309", + "hex" ); - it('can verify an string properly', function () { - let data = 'hello world'; + it("can verify an string properly", function () { + let data = "hello world"; expect(StellarBase.verify(data, sig, publicKey)).to.be.ok; - expect(StellarBase.verify('corrupted', sig, publicKey)).to.not.be.ok; + expect(StellarBase.verify("corrupted", sig, publicKey)).to.not.be.ok; expect(StellarBase.verify(data, badSig, publicKey)).to.not.be.ok; }); - it('can verify an buffer properly', function () { - let data = Buffer.from('hello world', 'utf8'); + it("can verify an buffer properly", function () { + let data = Buffer.from("hello world", "utf8"); expect(StellarBase.verify(data, sig, publicKey)).to.be.ok; - expect(StellarBase.verify('corrupted', sig, publicKey)).to.not.be.ok; + expect(StellarBase.verify("corrupted", sig, publicKey)).to.not.be.ok; expect(StellarBase.verify(data, badSig, publicKey)).to.not.be.ok; }); - it('can verify an array of bytes properly', function () { + it("can verify an array of bytes properly", function () { let data = [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]; expect(StellarBase.verify(data, sig, publicKey)).to.be.ok; - expect(StellarBase.verify('corrupted', sig, publicKey)).to.not.be.ok; + expect(StellarBase.verify("corrupted", sig, publicKey)).to.not.be.ok; expect(StellarBase.verify(data, badSig, publicKey)).to.not.be.ok; }); }); diff --git a/test/unit/soroban_test.js b/test/unit/soroban_test.js index 8ccfed689..c159fd24f 100644 --- a/test/unit/soroban_test.js +++ b/test/unit/soroban_test.js @@ -1,29 +1,29 @@ -describe('Soroban', function () { - it('should have XDR serialization', function () { +describe("Soroban", function () { + it("should have XDR serialization", function () { expect(StellarBase.cereal).not.to.be.undefined; }); - describe('formatTokenAmount', function () { + describe("formatTokenAmount", function () { const SUCCESS_TEST_CASES = [ - { amount: '1000000001', decimals: 7, expected: '100.0000001' }, - { amount: '10000000010', decimals: 5, expected: '100000.0001' }, - { amount: '10000000010', decimals: 0, expected: '10000000010' }, - { amount: '10000', decimals: 10, expected: '0.000001' }, - { amount: '10000', decimals: 4, expected: '1.0' }, - { amount: '1567890', decimals: 10, expected: '0.000156789' }, - { amount: '1230', decimals: 0, expected: '1230' }, - { amount: '1230', decimals: 1, expected: '123.0' }, - { amount: '123', decimals: 3, expected: '0.123' } + { amount: "1000000001", decimals: 7, expected: "100.0000001" }, + { amount: "10000000010", decimals: 5, expected: "100000.0001" }, + { amount: "10000000010", decimals: 0, expected: "10000000010" }, + { amount: "10000", decimals: 10, expected: "0.000001" }, + { amount: "10000", decimals: 4, expected: "1.0" }, + { amount: "1567890", decimals: 10, expected: "0.000156789" }, + { amount: "1230", decimals: 0, expected: "1230" }, + { amount: "1230", decimals: 1, expected: "123.0" }, + { amount: "123", decimals: 3, expected: "0.123" } ]; const FAILED_TEST_CASES = [ { - amount: '1000000001.1', + amount: "1000000001.1", decimals: 7, expected: /No decimals are allowed/ }, { - amount: '10000.00001.1', + amount: "10000.00001.1", decimals: 4, expected: /No decimals are allowed/ } @@ -52,16 +52,16 @@ describe('Soroban', function () { }); }); - describe('parseTokenAmount', function () { + describe("parseTokenAmount", function () { const SUCCESS_TEST_CASES = [ - { amount: '100', decimals: 2, expected: '10000' }, - { amount: '123.4560', decimals: 5, expected: '12345600' }, - { amount: '100', decimals: 5, expected: '10000000' } + { amount: "100", decimals: 2, expected: "10000" }, + { amount: "123.4560", decimals: 5, expected: "12345600" }, + { amount: "100", decimals: 5, expected: "10000000" } ]; const FAILED_TEST_CASES = [ { - amount: '1000000.001.1', + amount: "1000000.001.1", decimals: 7, expected: /Invalid decimal value/i } diff --git a/test/unit/sorobandata_builder_test.js b/test/unit/sorobandata_builder_test.js index 536891ad5..92c8fb3eb 100644 --- a/test/unit/sorobandata_builder_test.js +++ b/test/unit/sorobandata_builder_test.js @@ -1,8 +1,8 @@ let xdr = StellarBase.xdr; let dataBuilder = StellarBase.SorobanDataBuilder; -describe('SorobanTransactionData can be built', function () { - const contractId = 'CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE'; +describe("SorobanTransactionData can be built", function () { + const contractId = "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE"; const c = new StellarBase.Contract(contractId); const sentinel = new xdr.SorobanTransactionData({ @@ -18,22 +18,22 @@ describe('SorobanTransactionData can be built', function () { const key = c.getFootprint(); // arbitrary key for testing - it('constructs from xdr, base64, and nothing', function () { + it("constructs from xdr, base64, and nothing", function () { new dataBuilder(); const fromRaw = new dataBuilder(sentinel).build(); - const fromStr = new dataBuilder(sentinel.toXDR('base64')).build(); + const fromStr = new dataBuilder(sentinel.toXDR("base64")).build(); expect(fromRaw).to.eql(sentinel); expect(fromStr).to.eql(sentinel); const baseline = new dataBuilder().build(); - [null, '', 0].forEach((falsy) => { + [null, "", 0].forEach((falsy) => { const db = new dataBuilder(falsy).build(); expect(db).to.eql(baseline); }); }); - it('sets properties as expected', function () { + it("sets properties as expected", function () { expect( new dataBuilder().setResources(1, 2, 3).setResourceFee(5).build() ).to.eql(sentinel); @@ -44,7 +44,7 @@ describe('SorobanTransactionData can be built', function () { expect(withFootprint.resources().footprint().readWrite()[0]).to.eql(key); }); - it('leaves untouched footprints untouched', function () { + it("leaves untouched footprints untouched", function () { const builder = new dataBuilder(); const data = builder.setFootprint([key], [key]).build(); @@ -56,7 +56,7 @@ describe('SorobanTransactionData can be built', function () { expect(data2.resources().footprint().readWrite()).to.eql([]); }); - it('appends footprints', function () { + it("appends footprints", function () { const builder = new dataBuilder(); const data = builder @@ -70,7 +70,7 @@ describe('SorobanTransactionData can be built', function () { expect(built.resources().footprint().readWrite()).to.eql([key]); }); - it('makes copies on build()', function () { + it("makes copies on build()", function () { const builder = new dataBuilder(); const first = builder.build(); const second = builder.setResourceFee(100).build(); diff --git a/test/unit/strkey_test.js b/test/unit/strkey_test.js index 91c5998e4..4b3a7f98e 100644 --- a/test/unit/strkey_test.js +++ b/test/unit/strkey_test.js @@ -1,7 +1,7 @@ -describe('StrKey', function () { +describe("StrKey", function () { beforeEach(function () { var keypair = StellarBase.Keypair.master( - 'Test SDF Network ; September 2015' + "Test SDF Network ; September 2015" ); this.unencodedBuffer = keypair.rawPublicKey(); this.unencoded = this.unencodedBuffer.toString(); @@ -10,8 +10,8 @@ describe('StrKey', function () { this.unencodedBuffer ); }); - describe('#decodeCheck', function () { - it('decodes correctly', function () { + describe("#decodeCheck", function () { + it("decodes correctly", function () { expect( StellarBase.StrKey.decodeEd25519PublicKey(this.accountIdEncoded) ).to.eql(this.unencodedBuffer); @@ -20,90 +20,90 @@ describe('StrKey', function () { ).to.eql(this.unencodedBuffer); }); - it('throws an error when the version byte is wrong', function () { + it("throws an error when the version byte is wrong", function () { expect(() => StellarBase.StrKey.decodeEd25519SecretSeed( - 'GBPXXOA5N4JYPESHAADMQKBPWZWQDQ64ZV6ZL2S3LAGW4SY7NTCMWIVL' + "GBPXXOA5N4JYPESHAADMQKBPWZWQDQ64ZV6ZL2S3LAGW4SY7NTCMWIVL" ) ).to.throw(/invalid version/); expect(() => StellarBase.StrKey.decodeEd25519PublicKey( - 'SBGWKM3CD4IL47QN6X54N6Y33T3JDNVI6AIJ6CD5IM47HG3IG4O36XCU' + "SBGWKM3CD4IL47QN6X54N6Y33T3JDNVI6AIJ6CD5IM47HG3IG4O36XCU" ) ).to.throw(/invalid version/); }); - it('throws an error when decoded data encodes to other string', function () { + it("throws an error when decoded data encodes to other string", function () { // accountId expect(() => StellarBase.StrKey.decodeEd25519PublicKey( - 'GBPXX0A5N4JYPESHAADMQKBPWZWQDQ64ZV6ZL2S3LAGW4SY7NTCMWIVL' + "GBPXX0A5N4JYPESHAADMQKBPWZWQDQ64ZV6ZL2S3LAGW4SY7NTCMWIVL" ) ).to.throw(/invalid encoded string/); expect(() => StellarBase.StrKey.decodeEd25519PublicKey( - 'GCFZB6L25D26RQFDWSSBDEYQ32JHLRMTT44ZYE3DZQUTYOL7WY43PLBG++' + "GCFZB6L25D26RQFDWSSBDEYQ32JHLRMTT44ZYE3DZQUTYOL7WY43PLBG++" ) ).to.throw(/invalid encoded string/); expect(() => StellarBase.StrKey.decodeEd25519PublicKey( - 'GADE5QJ2TY7S5ZB65Q43DFGWYWCPHIYDJ2326KZGAGBN7AE5UY6JVDRRA' + "GADE5QJ2TY7S5ZB65Q43DFGWYWCPHIYDJ2326KZGAGBN7AE5UY6JVDRRA" ) ).to.throw(/invalid encoded string/); expect(() => StellarBase.StrKey.decodeEd25519PublicKey( - 'GB6OWYST45X57HCJY5XWOHDEBULB6XUROWPIKW77L5DSNANBEQGUPADT2' + "GB6OWYST45X57HCJY5XWOHDEBULB6XUROWPIKW77L5DSNANBEQGUPADT2" ) ).to.throw(/invalid encoded string/); expect(() => StellarBase.StrKey.decodeEd25519PublicKey( - 'GB6OWYST45X57HCJY5XWOHDEBULB6XUROWPIKW77L5DSNANBEQGUPADT2T' + "GB6OWYST45X57HCJY5XWOHDEBULB6XUROWPIKW77L5DSNANBEQGUPADT2T" ) ).to.throw(/invalid encoded string/); // seed expect(() => StellarBase.StrKey.decodeEd25519SecretSeed( - 'SB7OJNF5727F3RJUG5ASQJ3LUM44ELLNKW35ZZQDHMVUUQNGYW' + "SB7OJNF5727F3RJUG5ASQJ3LUM44ELLNKW35ZZQDHMVUUQNGYW" ) ).to.throw(/invalid encoded string/); expect(() => StellarBase.StrKey.decodeEd25519SecretSeed( - 'SB7OJNF5727F3RJUG5ASQJ3LUM44ELLNKW35ZZQDHMVUUQNGYWMEGB2W2' + "SB7OJNF5727F3RJUG5ASQJ3LUM44ELLNKW35ZZQDHMVUUQNGYWMEGB2W2" ) ).to.throw(/invalid encoded string/); expect(() => StellarBase.StrKey.decodeEd25519SecretSeed( - 'SB7OJNF5727F3RJUG5ASQJ3LUM44ELLNKW35ZZQDHMVUUQNGYWMEGB2W2T' + "SB7OJNF5727F3RJUG5ASQJ3LUM44ELLNKW35ZZQDHMVUUQNGYWMEGB2W2T" ) ).to.throw(/invalid encoded string/); expect(() => StellarBase.StrKey.decodeEd25519SecretSeed( - 'SCMB30FQCIQAWZ4WQTS6SVK37LGMAFJGXOZIHTH2PY6EXLP37G46H6DT' + "SCMB30FQCIQAWZ4WQTS6SVK37LGMAFJGXOZIHTH2PY6EXLP37G46H6DT" ) ).to.throw(/invalid encoded string/); expect(() => StellarBase.StrKey.decodeEd25519SecretSeed( - 'SAYC2LQ322EEHZYWNSKBEW6N66IRTDREEBUXXU5HPVZGMAXKLIZNM45H++' + "SAYC2LQ322EEHZYWNSKBEW6N66IRTDREEBUXXU5HPVZGMAXKLIZNM45H++" ) ).to.throw(/invalid encoded string/); }); - it('throws an error when the checksum is wrong', function () { + it("throws an error when the checksum is wrong", function () { expect(() => StellarBase.StrKey.decodeEd25519PublicKey( - 'GBPXXOA5N4JYPESHAADMQKBPWZWQDQ64ZV6ZL2S3LAGW4SY7NTCMWIVT' + "GBPXXOA5N4JYPESHAADMQKBPWZWQDQ64ZV6ZL2S3LAGW4SY7NTCMWIVT" ) ).to.throw(/invalid checksum/); expect(() => StellarBase.StrKey.decodeEd25519SecretSeed( - 'SBGWKM3CD4IL47QN6X54N6Y33T3JDNVI6AIJ6CD5IM47HG3IG4O36XCX' + "SBGWKM3CD4IL47QN6X54N6Y33T3JDNVI6AIJ6CD5IM47HG3IG4O36XCX" ) ).to.throw(/invalid checksum/); }); }); - describe('#encodeCheck', function () { - it('encodes a buffer correctly', function () { + describe("#encodeCheck", function () { + it("encodes a buffer correctly", function () { expect( StellarBase.StrKey.encodeEd25519PublicKey(this.unencodedBuffer) ).to.eql(this.accountIdEncoded); @@ -132,7 +132,7 @@ describe('StrKey', function () { ); }); - it('encodes a buffer correctly', function () { + it("encodes a buffer correctly", function () { expect( StellarBase.StrKey.encodeEd25519PublicKey(this.unencodedBuffer) ).to.eql(this.accountIdEncoded); @@ -141,7 +141,7 @@ describe('StrKey', function () { ).to.eql(this.seedEncoded); }); - it('throws an error when the data is null', function () { + it("throws an error when the data is null", function () { expect(() => StellarBase.StrKey.encodeEd25519SecretSeed(null)).to.throw( /null data/ ); @@ -151,19 +151,19 @@ describe('StrKey', function () { }); }); - describe('#isValidEd25519PublicKey', function () { - it('returns true for valid public key', function () { + describe("#isValidEd25519PublicKey", function () { + it("returns true for valid public key", function () { var keys = [ - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB', - 'GB7KKHHVYLDIZEKYJPAJUOTBE5E3NJAXPSDZK7O6O44WR3EBRO5HRPVT', - 'GD6WVYRVID442Y4JVWFWKWCZKB45UGHJAABBJRS22TUSTWGJYXIUR7N2', - 'GBCG42WTVWPO4Q6OZCYI3D6ZSTFSJIXIS6INCIUF23L6VN3ADE4337AP', - 'GDFX463YPLCO2EY7NGFMI7SXWWDQAMASGYZXCG2LATOF3PP5NQIUKBPT', - 'GBXEODUMM3SJ3QSX2VYUWFU3NRP7BQRC2ERWS7E2LZXDJXL2N66ZQ5PT', - 'GAJHORKJKDDEPYCD6URDFODV7CVLJ5AAOJKR6PG2VQOLWFQOF3X7XLOG', - 'GACXQEAXYBEZLBMQ2XETOBRO4P66FZAJENDHOQRYPUIXZIIXLKMZEXBJ', - 'GDD3XRXU3G4DXHVRUDH7LJM4CD4PDZTVP4QHOO4Q6DELKXUATR657OZV', - 'GDTYVCTAUQVPKEDZIBWEJGKBQHB4UGGXI2SXXUEW7LXMD4B7MK37CWLJ' + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB", + "GB7KKHHVYLDIZEKYJPAJUOTBE5E3NJAXPSDZK7O6O44WR3EBRO5HRPVT", + "GD6WVYRVID442Y4JVWFWKWCZKB45UGHJAABBJRS22TUSTWGJYXIUR7N2", + "GBCG42WTVWPO4Q6OZCYI3D6ZSTFSJIXIS6INCIUF23L6VN3ADE4337AP", + "GDFX463YPLCO2EY7NGFMI7SXWWDQAMASGYZXCG2LATOF3PP5NQIUKBPT", + "GBXEODUMM3SJ3QSX2VYUWFU3NRP7BQRC2ERWS7E2LZXDJXL2N66ZQ5PT", + "GAJHORKJKDDEPYCD6URDFODV7CVLJ5AAOJKR6PG2VQOLWFQOF3X7XLOG", + "GACXQEAXYBEZLBMQ2XETOBRO4P66FZAJENDHOQRYPUIXZIIXLKMZEXBJ", + "GDD3XRXU3G4DXHVRUDH7LJM4CD4PDZTVP4QHOO4Q6DELKXUATR657OZV", + "GDTYVCTAUQVPKEDZIBWEJGKBQHB4UGGXI2SXXUEW7LXMD4B7MK37CWLJ" ]; for (var i in keys) { @@ -171,19 +171,19 @@ describe('StrKey', function () { } }); - it('returns false for invalid public key', function () { + it("returns false for invalid public key", function () { var keys = [ - 'GBPXX0A5N4JYPESHAADMQKBPWZWQDQ64ZV6ZL2S3LAGW4SY7NTCMWIVL', - 'GCFZB6L25D26RQFDWSSBDEYQ32JHLRMTT44ZYE3DZQUTYOL7WY43PLBG++', - 'GADE5QJ2TY7S5ZB65Q43DFGWYWCPHIYDJ2326KZGAGBN7AE5UY6JVDRRA', - 'GB6OWYST45X57HCJY5XWOHDEBULB6XUROWPIKW77L5DSNANBEQGUPADT2', - 'GB6OWYST45X57HCJY5XWOHDEBULB6XUROWPIKW77L5DSNANBEQGUPADT2T', - 'GDXIIZTKTLVYCBHURXL2UPMTYXOVNI7BRAEFQCP6EZCY4JLKY4VKFNLT', - 'SAB5556L5AN5KSR5WF7UOEFDCIODEWEO7H2UR4S5R62DFTQOGLKOVZDY', - 'gWRYUerEKuz53tstxEuR3NCkiQDcV4wzFHmvLnZmj7PUqxW2wt', - 'test', + "GBPXX0A5N4JYPESHAADMQKBPWZWQDQ64ZV6ZL2S3LAGW4SY7NTCMWIVL", + "GCFZB6L25D26RQFDWSSBDEYQ32JHLRMTT44ZYE3DZQUTYOL7WY43PLBG++", + "GADE5QJ2TY7S5ZB65Q43DFGWYWCPHIYDJ2326KZGAGBN7AE5UY6JVDRRA", + "GB6OWYST45X57HCJY5XWOHDEBULB6XUROWPIKW77L5DSNANBEQGUPADT2", + "GB6OWYST45X57HCJY5XWOHDEBULB6XUROWPIKW77L5DSNANBEQGUPADT2T", + "GDXIIZTKTLVYCBHURXL2UPMTYXOVNI7BRAEFQCP6EZCY4JLKY4VKFNLT", + "SAB5556L5AN5KSR5WF7UOEFDCIODEWEO7H2UR4S5R62DFTQOGLKOVZDY", + "gWRYUerEKuz53tstxEuR3NCkiQDcV4wzFHmvLnZmj7PUqxW2wt", + "test", null, - 'g4VPBPrHZkfE8CsjuG2S4yBQNd455UWmk' // Old network key + "g4VPBPrHZkfE8CsjuG2S4yBQNd455UWmk" // Old network key ]; for (var i in keys) { @@ -192,15 +192,15 @@ describe('StrKey', function () { }); }); - describe('#isValidSecretKey', function () { - it('returns true for valid secret key', function () { + describe("#isValidSecretKey", function () { + it("returns true for valid secret key", function () { var keys = [ - 'SAB5556L5AN5KSR5WF7UOEFDCIODEWEO7H2UR4S5R62DFTQOGLKOVZDY', - 'SCZTUEKSEH2VYZQC6VLOTOM4ZDLMAGV4LUMH4AASZ4ORF27V2X64F2S2', - 'SCGNLQKTZ4XCDUGVIADRVOD4DEVNYZ5A7PGLIIZQGH7QEHK6DYODTFEH', - 'SDH6R7PMU4WIUEXSM66LFE4JCUHGYRTLTOXVUV5GUEPITQEO3INRLHER', - 'SC2RDTRNSHXJNCWEUVO7VGUSPNRAWFCQDPP6BGN4JFMWDSEZBRAPANYW', - 'SCEMFYOSFZ5MUXDKTLZ2GC5RTOJO6FGTAJCF3CCPZXSLXA2GX6QUYOA7' + "SAB5556L5AN5KSR5WF7UOEFDCIODEWEO7H2UR4S5R62DFTQOGLKOVZDY", + "SCZTUEKSEH2VYZQC6VLOTOM4ZDLMAGV4LUMH4AASZ4ORF27V2X64F2S2", + "SCGNLQKTZ4XCDUGVIADRVOD4DEVNYZ5A7PGLIIZQGH7QEHK6DYODTFEH", + "SDH6R7PMU4WIUEXSM66LFE4JCUHGYRTLTOXVUV5GUEPITQEO3INRLHER", + "SC2RDTRNSHXJNCWEUVO7VGUSPNRAWFCQDPP6BGN4JFMWDSEZBRAPANYW", + "SCEMFYOSFZ5MUXDKTLZ2GC5RTOJO6FGTAJCF3CCPZXSLXA2GX6QUYOA7" ]; for (var i in keys) { @@ -208,13 +208,13 @@ describe('StrKey', function () { } }); - it('returns false for invalid secret key', function () { + it("returns false for invalid secret key", function () { var keys = [ - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB', - 'SAB5556L5AN5KSR5WF7UOEFDCIODEWEO7H2UR4S5R62DFTQOGLKOVZDYT', // Too long - 'SAFGAMN5Z6IHVI3IVEPIILS7ITZDYSCEPLN4FN5Z3IY63DRH4CIYEV', // To short - 'SAFGAMN5Z6IHVI3IVEPIILS7ITZDYSCEPLN4FN5Z3IY63DRH4CIYEVIT', // Checksum - 'test', + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB", + "SAB5556L5AN5KSR5WF7UOEFDCIODEWEO7H2UR4S5R62DFTQOGLKOVZDYT", // Too long + "SAFGAMN5Z6IHVI3IVEPIILS7ITZDYSCEPLN4FN5Z3IY63DRH4CIYEV", // To short + "SAFGAMN5Z6IHVI3IVEPIILS7ITZDYSCEPLN4FN5Z3IY63DRH4CIYEVIT", // Checksum + "test", null ]; @@ -225,16 +225,16 @@ describe('StrKey', function () { }); }); - const PUBKEY = 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ'; + const PUBKEY = "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ"; const MPUBKEY = - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK'; + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK"; const RAW_MPUBKEY = Buffer.from( - '3f0c34bf93ad0d9971d04ccc90f705511c838aad9734a4a2fb0d7a03fc7fe89a8000000000000000', - 'hex' + "3f0c34bf93ad0d9971d04ccc90f705511c838aad9734a4a2fb0d7a03fc7fe89a8000000000000000", + "hex" ); - describe('#muxedAccounts', function () { - it('encodes & decodes M... addresses correctly', function () { + describe("#muxedAccounts", function () { + it("encodes & decodes M... addresses correctly", function () { expect(StellarBase.StrKey.encodeMed25519PublicKey(RAW_MPUBKEY)).to.equal( MPUBKEY ); @@ -243,7 +243,7 @@ describe('StrKey', function () { ).to.be.true; }); - it('lets G... accounts pass through (unmuxed)', function () { + it("lets G... accounts pass through (unmuxed)", function () { const unmuxed = StellarBase.decodeAddressToMuxedAccount(PUBKEY); expect(StellarBase.xdr.MuxedAccount.isValid(unmuxed)).to.be.true; @@ -258,7 +258,7 @@ describe('StrKey', function () { expect(StellarBase.encodeMuxedAccountToAddress(unmuxed)).to.equal(PUBKEY); }); - it('decodes underlying G... address correctly', function () { + it("decodes underlying G... address correctly", function () { expect(StellarBase.extractBaseAddress(MPUBKEY)).to.equal(PUBKEY); expect(StellarBase.extractBaseAddress(PUBKEY)).to.equal(PUBKEY); }); @@ -266,7 +266,7 @@ describe('StrKey', function () { const RAW_PUBKEY = StellarBase.StrKey.decodeEd25519PublicKey(PUBKEY); const unmuxed = StellarBase.xdr.MuxedAccount.keyTypeEd25519(RAW_PUBKEY); - it('encodes & decodes unmuxed keys', function () { + it("encodes & decodes unmuxed keys", function () { expect(StellarBase.xdr.MuxedAccount.isValid(unmuxed)).to.be.true; expect(unmuxed.switch()).to.equal( StellarBase.xdr.CryptoKeyType.keyTypeEd25519() @@ -280,23 +280,23 @@ describe('StrKey', function () { const CASES = [ { strkey: - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK', - id: '9223372036854775808' // 0x8000... + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK", + id: "9223372036854775808" // 0x8000... }, { strkey: - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAFB4CJJBRKA', - id: '1357924680' + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAFB4CJJBRKA", + id: "1357924680" }, { strkey: - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAE2JUG6', - id: '1234' + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAE2JUG6", + id: "1234" }, { strkey: - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUQ', - id: '0' + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUQ", + id: "0" } ]; @@ -319,22 +319,22 @@ describe('StrKey', function () { }); }); - describe('#signedPayloads', function () { + describe("#signedPayloads", function () { const HAPPY_PATHS = [ { - desc: 'valid w/ 32-byte payload', + desc: "valid w/ 32-byte payload", strkey: - 'PA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAQACAQDAQCQMBYIBEFAWDANBYHRAEISCMKBKFQXDAMRUGY4DUPB6IBZGM', - ed25519: 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ', + "PA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAQACAQDAQCQMBYIBEFAWDANBYHRAEISCMKBKFQXDAMRUGY4DUPB6IBZGM", + ed25519: "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ", payload: - '0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20' + "0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20" }, { - desc: 'valid w/ 29-byte payload', + desc: "valid w/ 29-byte payload", strkey: - 'PA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAOQCAQDAQCQMBYIBEFAWDANBYHRAEISCMKBKFQXDAMRUGY4DUAAAAFGBU', - ed25519: 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ', - payload: '0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d' + "PA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAOQCAQDAQCQMBYIBEFAWDANBYHRAEISCMKBKFQXDAMRUGY4DUAAAAFGBU", + ed25519: "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ", + payload: "0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d" } ]; @@ -343,129 +343,129 @@ describe('StrKey', function () { const spBuf = StellarBase.StrKey.decodeSignedPayload(testCase.strkey); const sp = StellarBase.xdr.SignerKeyEd25519SignedPayload.fromXDR( spBuf, - 'raw' + "raw" ); const signer = StellarBase.StrKey.encodeEd25519PublicKey(sp.ed25519()); expect(signer).to.equal(testCase.ed25519); - const payload = sp.payload().toString('hex'); + const payload = sp.payload().toString("hex"); expect(payload).to.equal(testCase.payload); - const str = StellarBase.StrKey.encodeSignedPayload(sp.toXDR('raw')); + const str = StellarBase.StrKey.encodeSignedPayload(sp.toXDR("raw")); expect(str).to.equal(testCase.strkey); }); }); - describe('payload bounds', function () { + describe("payload bounds", function () { let sp = new StellarBase.xdr.SignerKeyEd25519SignedPayload({ ed25519: StellarBase.StrKey.decodeEd25519PublicKey( - 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ' + "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ" ), payload: Buffer.alloc(0) }); const isValid = (sp) => { return StellarBase.StrKey.isValidSignedPayload( - StellarBase.StrKey.encodeSignedPayload(sp.toXDR('raw')) + StellarBase.StrKey.encodeSignedPayload(sp.toXDR("raw")) ); }; - it('invalid with no payload', function () { + it("invalid with no payload", function () { sp.payload(Buffer.alloc(0)); expect(isValid(sp)).to.be.false; }); - it('valid with 1-byte payload', function () { + it("valid with 1-byte payload", function () { sp.payload(Buffer.alloc(1)); expect(isValid(sp)).to.be.true; }); - it('throws with 65-byte payload', function () { + it("throws with 65-byte payload", function () { sp.payload(Buffer.alloc(65)); expect(() => isValid(sp)).to.throw(/XDR Write Error/); }); - it('valid with 64-byte payload (max)', function () { + it("valid with 64-byte payload (max)", function () { sp.payload(Buffer.alloc(64)); expect(isValid(sp)).to.be.true; }); }); }); - describe('#contracts', function () { - it('valid w/ 32-byte payload', function () { - const strkey = 'CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE'; + describe("#contracts", function () { + it("valid w/ 32-byte payload", function () { + const strkey = "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE"; const buf = StellarBase.StrKey.decodeContract(strkey); - expect(buf.toString('hex')).to.equal( - '363eaa3867841fbad0f4ed88c779e4fe66e56a2470dc98c0ec9c073d05c7b103' + expect(buf.toString("hex")).to.equal( + "363eaa3867841fbad0f4ed88c779e4fe66e56a2470dc98c0ec9c073d05c7b103" ); expect(StellarBase.StrKey.encodeContract(buf)).to.equal(strkey); }); - it('isValid', function () { - const valid = 'CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE'; + it("isValid", function () { + const valid = "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE"; expect(StellarBase.StrKey.isValidContract(valid)).to.be.true; const invalid = - 'GA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE'; + "GA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE"; expect(StellarBase.StrKey.isValidContract(invalid)).to.be.false; }); }); - describe('#liquidityPools', function () { - it('valid w/ 32-byte hash', function () { - const strkey = 'LA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUPJN'; + describe("#liquidityPools", function () { + it("valid w/ 32-byte hash", function () { + const strkey = "LA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUPJN"; const asHex = - '3f0c34bf93ad0d9971d04ccc90f705511c838aad9734a4a2fb0d7a03fc7fe89a'; + "3f0c34bf93ad0d9971d04ccc90f705511c838aad9734a4a2fb0d7a03fc7fe89a"; expect(StellarBase.StrKey.isValidLiquidityPool(strkey)).to.be.true; expect( - StellarBase.StrKey.decodeLiquidityPool(strkey).toString('hex') + StellarBase.StrKey.decodeLiquidityPool(strkey).toString("hex") ).to.equal(asHex); expect( - StellarBase.StrKey.encodeLiquidityPool(Buffer.from(asHex, 'hex')) + StellarBase.StrKey.encodeLiquidityPool(Buffer.from(asHex, "hex")) ).to.equal(strkey); }); }); - describe('#claimableBalances', function () { - it('valid w/ 33-byte strkey', function () { + describe("#claimableBalances", function () { + it("valid w/ 33-byte strkey", function () { const strkey = - 'BAAD6DBUX6J22DMZOHIEZTEQ64CVCHEDRKWZONFEUL5Q26QD7R76RGR4TU'; + "BAAD6DBUX6J22DMZOHIEZTEQ64CVCHEDRKWZONFEUL5Q26QD7R76RGR4TU"; const asHex = - '003f0c34bf93ad0d9971d04ccc90f705511c838aad9734a4a2fb0d7a03fc7fe89a'; + "003f0c34bf93ad0d9971d04ccc90f705511c838aad9734a4a2fb0d7a03fc7fe89a"; expect(StellarBase.StrKey.isValidClaimableBalance(strkey)).to.be.true; expect( - StellarBase.StrKey.decodeClaimableBalance(strkey).toString('hex') + StellarBase.StrKey.decodeClaimableBalance(strkey).toString("hex") ).to.equal(asHex); expect( - StellarBase.StrKey.encodeClaimableBalance(Buffer.from(asHex, 'hex')) + StellarBase.StrKey.encodeClaimableBalance(Buffer.from(asHex, "hex")) ).to.equal(strkey); }); }); - describe('#invalidStrKeys', function () { + describe("#invalidStrKeys", function () { // From https://stellar.org/protocol/sep-23#invalid-test-cases const BAD_STRKEYS = [ // The unused trailing bit must be zero in the encoding of the last three // bytes (24 bits) as five base-32 symbols (25 bits) - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUR', + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUR", // Invalid length (congruent to 1 mod 8) - 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZA', + "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZA", // Invalid algorithm (low 3 bits of version byte are 7) - 'G47QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVP2I', + "G47QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVP2I", // Invalid length (congruent to 6 mod 8) - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLKA', + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLKA", // Invalid algorithm (low 3 bits of version byte are 7) - 'M47QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUQ', + "M47QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUQ", // Padding bytes are not allowed - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUK===', + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUK===", // Invalid checksum - 'MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUO', + "MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUAAAAAAAAAAAACJUO", // Trailing bits should be zeroes - 'BAAD6DBUX6J22DMZOHIEZTEQ64CVCHEDRKWZONFEUL5Q26QD7R76RGR4TV', + "BAAD6DBUX6J22DMZOHIEZTEQ64CVCHEDRKWZONFEUL5Q26QD7R76RGR4TV", // Invalid claimable balance type - 'BAAT6DBUX6J22DMZOHIEZTEQ64CVCHEDRKWZONFEUL5Q26QD7R76RGXACA' + "BAAT6DBUX6J22DMZOHIEZTEQ64CVCHEDRKWZONFEUL5Q26QD7R76RGXACA" // // FIXME: The following test cases don't pass (i.e. don't throw). diff --git a/test/unit/transaction_builder_test.js b/test/unit/transaction_builder_test.js index f6a47ee79..0725b7b1a 100644 --- a/test/unit/transaction_builder_test.js +++ b/test/unit/transaction_builder_test.js @@ -1,9 +1,9 @@ -import { SorobanDataBuilder } from '../../src/sorobandata_builder.js'; -import { isValidDate } from '../../src/transaction_builder.js'; +import { SorobanDataBuilder } from "../../src/sorobandata_builder.js"; +import { isValidDate } from "../../src/transaction_builder.js"; const { encodeMuxedAccountToAddress } = StellarBase; -describe('TransactionBuilder', function () { - describe('constructs a native payment transaction with one operation', function () { +describe("TransactionBuilder", function () { + describe("constructs a native payment transaction with one operation", function () { var source; var destination; var amount; @@ -12,13 +12,13 @@ describe('TransactionBuilder', function () { var memo; beforeEach(function () { source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); - destination = 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2'; - amount = '1000'; + destination = "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2"; + amount = "1000"; asset = StellarBase.Asset.native(); - memo = StellarBase.Memo.id('100'); + memo = StellarBase.Memo.id("100"); transaction = new StellarBase.TransactionBuilder(source, { fee: 100, @@ -36,41 +36,41 @@ describe('TransactionBuilder', function () { .build(); }); - it('should have the same source account', function (done) { + it("should have the same source account", function (done) { expect(transaction.source).to.be.equal(source.accountId()); done(); }); - it('should have the incremented sequence number', function (done) { - expect(transaction.sequence).to.be.equal('1'); + it("should have the incremented sequence number", function (done) { + expect(transaction.sequence).to.be.equal("1"); done(); }); it("should increment the account's sequence number", function (done) { - expect(source.sequenceNumber()).to.be.equal('1'); + expect(source.sequenceNumber()).to.be.equal("1"); done(); }); - it('should have one payment operation', function (done) { + it("should have one payment operation", function (done) { expect(transaction.operations.length).to.be.equal(1); - expect(transaction.operations[0].type).to.be.equal('payment'); + expect(transaction.operations[0].type).to.be.equal("payment"); done(); }); - it('should have 100 stroops fee', function (done) { - expect(transaction.fee).to.be.equal('100'); + it("should have 100 stroops fee", function (done) { + expect(transaction.fee).to.be.equal("100"); done(); }); }); - describe('constructs a transaction with soroban data', function () { + describe("constructs a transaction with soroban data", function () { var ext; var source; var sorobanTransactionData; beforeEach(function () { source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); sorobanTransactionData = new StellarBase.SorobanDataBuilder() .setResources(0, 5, 0) @@ -79,10 +79,10 @@ describe('TransactionBuilder', function () { }); const contractId = - 'CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE'; + "CA3D5KRYM6CB7OWQ6TWYRR3Z4T7GNZLKERYNZGGA5SOAOPIFY6YQGAXE"; const c = new StellarBase.Contract(contractId); - it('should set the soroban data from object', function (done) { + it("should set the soroban data from object", function (done) { let transaction = new StellarBase.TransactionBuilder(source, { fee: 100 }) .setNetworkPassphrase(StellarBase.Networks.TESTNET) .addOperation( @@ -90,8 +90,8 @@ describe('TransactionBuilder', function () { func: StellarBase.xdr.HostFunction.hostFunctionTypeInvokeContract( new StellarBase.xdr.InvokeContractArgs({ contractAddress: c.address().toScAddress(), - functionName: 'hello', - args: [StellarBase.nativeToScVal('world')] + functionName: "hello", + args: [StellarBase.nativeToScVal("world")] }) ), auth: [] @@ -106,7 +106,7 @@ describe('TransactionBuilder', function () { ).to.deep.equal(sorobanTransactionData); done(); }); - it('should set the soroban data from xdr string', function (done) { + it("should set the soroban data from xdr string", function (done) { let transaction = new StellarBase.TransactionBuilder(source, { fee: 100 }) .setNetworkPassphrase(StellarBase.Networks.TESTNET) .addOperation( @@ -114,14 +114,14 @@ describe('TransactionBuilder', function () { func: StellarBase.xdr.HostFunction.hostFunctionTypeInvokeContract( new StellarBase.xdr.InvokeContractArgs({ contractAddress: c.address().toScAddress(), - functionName: 'hello', - args: [StellarBase.nativeToScVal('world')] + functionName: "hello", + args: [StellarBase.nativeToScVal("world")] }) ), auth: [] }) ) - .setSorobanData(sorobanTransactionData.toXDR('base64')) + .setSorobanData(sorobanTransactionData.toXDR("base64")) .setTimeout(StellarBase.TimeoutInfinite) .build(); @@ -131,7 +131,7 @@ describe('TransactionBuilder', function () { done(); }); - it('should set the transaction Ext to default when soroban data present', function (done) { + it("should set the transaction Ext to default when soroban data present", function (done) { let transaction = new StellarBase.TransactionBuilder(source, { fee: 100 }) .setNetworkPassphrase(StellarBase.Networks.TESTNET) .addOperation( @@ -139,8 +139,8 @@ describe('TransactionBuilder', function () { func: StellarBase.xdr.HostFunction.hostFunctionTypeInvokeContract( new StellarBase.xdr.InvokeContractArgs({ contractAddress: c.address().toScAddress(), - functionName: 'hello', - args: [StellarBase.nativeToScVal('world')] + functionName: "hello", + args: [StellarBase.nativeToScVal("world")] }) ), auth: [] @@ -153,7 +153,7 @@ describe('TransactionBuilder', function () { done(); }); - it('should calculate fee bumps correctly with soroban data', function () { + it("should calculate fee bumps correctly with soroban data", function () { sorobanTransactionData = new SorobanDataBuilder() .setResourceFee(420) .build(); @@ -167,7 +167,7 @@ describe('TransactionBuilder', function () { func: StellarBase.xdr.HostFunction.hostFunctionTypeInvokeContract( new StellarBase.xdr.InvokeContractArgs({ contractAddress: c.address().toScAddress(), - functionName: 'test', + functionName: "test", args: [] }) ), @@ -179,17 +179,17 @@ describe('TransactionBuilder', function () { .build(); expect( - transaction.toEnvelope().v1().tx().ext().sorobanData().toXDR('base64') - ).to.deep.equal(sorobanTransactionData.toXDR('base64')); + transaction.toEnvelope().v1().tx().ext().sorobanData().toXDR("base64") + ).to.deep.equal(sorobanTransactionData.toXDR("base64")); let feeBump = StellarBase.TransactionBuilder.buildFeeBumpTransaction( StellarBase.Keypair.random(), - '200', // omit resource fee + "200", // omit resource fee transaction, StellarBase.Networks.TESTNET ); - expect(feeBump.fee).to.equal('820'); // fee bump is an "op" so double the base + expect(feeBump.fee).to.equal("820"); // fee bump is an "op" so double the base sorobanTransactionData = new SorobanDataBuilder() .setResourceFee(1000) @@ -203,7 +203,7 @@ describe('TransactionBuilder', function () { func: StellarBase.xdr.HostFunction.hostFunctionTypeInvokeContract( new StellarBase.xdr.InvokeContractArgs({ contractAddress: c.address().toScAddress(), - functionName: 'test', + functionName: "test", args: [] }) ), @@ -216,17 +216,17 @@ describe('TransactionBuilder', function () { feeBump = StellarBase.TransactionBuilder.buildFeeBumpTransaction( StellarBase.Keypair.random(), - '100', // omit resource fee + "100", // omit resource fee transaction, StellarBase.Networks.TESTNET ); - expect(feeBump.fee).to.equal('1200'); // fee bump is an "op" so double the base + expect(feeBump.fee).to.equal("1200"); // fee bump is an "op" so double the base sorobanTransactionData = null; }); }); - describe('constructs a native payment transaction with two operations', function () { + describe("constructs a native payment transaction with two operations", function () { var source; var destination1; var amount1; @@ -237,14 +237,14 @@ describe('TransactionBuilder', function () { beforeEach(function () { asset = StellarBase.Asset.native(); source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); - destination1 = 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2'; - amount1 = '1000'; - destination2 = 'GC6ACGSA2NJGD6YWUNX2BYBL3VM4MZRSEU2RLIUZZL35NLV5IAHAX2E2'; - amount2 = '2000'; + destination1 = "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2"; + amount1 = "1000"; + destination2 = "GC6ACGSA2NJGD6YWUNX2BYBL3VM4MZRSEU2RLIUZZL35NLV5IAHAX2E2"; + amount2 = "2000"; transaction = new StellarBase.TransactionBuilder(source, { fee: 100, @@ -268,35 +268,35 @@ describe('TransactionBuilder', function () { .build(); }); - it('should have the same source account', function (done) { + it("should have the same source account", function (done) { expect(transaction.source).to.be.equal(source.accountId()); done(); }); - it('should have the incremented sequence number', function (done) { - expect(transaction.sequence).to.be.equal('1'); + it("should have the incremented sequence number", function (done) { + expect(transaction.sequence).to.be.equal("1"); done(); }); it("should increment the account's sequence number", function (done) { - expect(source.sequenceNumber()).to.be.equal('1'); + expect(source.sequenceNumber()).to.be.equal("1"); done(); }); - it('should have two payment operation', function (done) { + it("should have two payment operation", function (done) { expect(transaction.operations.length).to.be.equal(2); - expect(transaction.operations[0].type).to.be.equal('payment'); - expect(transaction.operations[1].type).to.be.equal('payment'); + expect(transaction.operations[0].type).to.be.equal("payment"); + expect(transaction.operations[1].type).to.be.equal("payment"); done(); }); - it('should have 200 stroops fee', function (done) { - expect(transaction.fee).to.be.equal('200'); + it("should have 200 stroops fee", function (done) { + expect(transaction.fee).to.be.equal("200"); done(); }); }); - describe('constructs a native payment transaction with custom base fee', function () { + describe("constructs a native payment transaction with custom base fee", function () { var source; var destination1; var amount1; @@ -307,14 +307,14 @@ describe('TransactionBuilder', function () { beforeEach(function () { asset = StellarBase.Asset.native(); source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); - destination1 = 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2'; - amount1 = '1000'; - destination2 = 'GC6ACGSA2NJGD6YWUNX2BYBL3VM4MZRSEU2RLIUZZL35NLV5IAHAX2E2'; - amount2 = '2000'; + destination1 = "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2"; + amount1 = "1000"; + destination2 = "GC6ACGSA2NJGD6YWUNX2BYBL3VM4MZRSEU2RLIUZZL35NLV5IAHAX2E2"; + amount2 = "2000"; transaction = new StellarBase.TransactionBuilder(source, { fee: 1000, @@ -338,21 +338,21 @@ describe('TransactionBuilder', function () { .build(); }); - it('should have 2000 stroops fee', function (done) { - expect(transaction.fee).to.be.equal('2000'); + it("should have 2000 stroops fee", function (done) { + expect(transaction.fee).to.be.equal("2000"); done(); }); }); - describe('constructs a native payment transaction with integer timebounds', function () { - it('should have have timebounds', function (done) { + describe("constructs a native payment transaction with integer timebounds", function () { + it("should have have timebounds", function (done) { let source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); let timebounds = { - minTime: '1455287522', - maxTime: '1455297545' + minTime: "1455287522", + maxTime: "1455297545" }; let transaction = new StellarBase.TransactionBuilder(source, { timebounds, @@ -362,9 +362,9 @@ describe('TransactionBuilder', function () { .addOperation( StellarBase.Operation.payment({ destination: - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2', + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2", asset: StellarBase.Asset.native(), - amount: '1000' + amount: "1000" }) ) .build(); @@ -375,34 +375,34 @@ describe('TransactionBuilder', function () { }); }); - describe('distinguishes whether a provided Date is valid or invalid', function () { - it('should accept empty Date objects', function (done) { + describe("distinguishes whether a provided Date is valid or invalid", function () { + it("should accept empty Date objects", function (done) { let d = new Date(); expect(isValidDate(d)).to.be.true; done(); }); - it('should accept configured Date objects', function (done) { + it("should accept configured Date objects", function (done) { let d = new Date(1455287522000); expect(isValidDate(d)).to.be.true; done(); }); - it('should reject mis-configured Date objects', function (done) { - let d = new Date('bad string here'); + it("should reject mis-configured Date objects", function (done) { + let d = new Date("bad string here"); expect(isValidDate(d)).to.be.false; done(); }); - it('should reject objects that are not Dates', function (done) { + it("should reject objects that are not Dates", function (done) { let d = [1455287522000]; expect(isValidDate(d)).to.be.false; done(); }); }); - describe('constructs a native payment transaction with date timebounds', function () { - it('should have expected timebounds', function (done) { + describe("constructs a native payment transaction with date timebounds", function () { + it("should have expected timebounds", function (done) { let source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); let timebounds = { minTime: new Date(1528145519000), @@ -417,9 +417,9 @@ describe('TransactionBuilder', function () { .addOperation( StellarBase.Operation.payment({ destination: - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2', + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2", asset: StellarBase.Asset.native(), - amount: '1000' + amount: "1000" }) ) .build(); @@ -437,59 +437,59 @@ describe('TransactionBuilder', function () { }); }); - describe('timebounds', function () { - it('requires maxTime', function () { + describe("timebounds", function () { + it("requires maxTime", function () { let source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); expect(() => { new StellarBase.TransactionBuilder(source, { timebounds: { - minTime: '0' + minTime: "0" }, fee: 100 }).build(); }).to.throw( - 'TimeBounds has to be set or you must call setTimeout(TimeoutInfinite).' + "TimeBounds has to be set or you must call setTimeout(TimeoutInfinite)." ); }); - it('requires minTime', function () { + it("requires minTime", function () { let source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); expect(() => { new StellarBase.TransactionBuilder(source, { timebounds: { - maxTime: '10' + maxTime: "10" }, fee: 100 }).build(); }).to.throw( - 'TimeBounds has to be set or you must call setTimeout(TimeoutInfinite).' + "TimeBounds has to be set or you must call setTimeout(TimeoutInfinite)." ); }); - it('works with timebounds defined', function () { + it("works with timebounds defined", function () { let source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); expect(() => { new StellarBase.TransactionBuilder(source, { timebounds: { - minTime: '1', - maxTime: '10' + minTime: "1", + maxTime: "10" }, fee: 100, networkPassphrase: StellarBase.Networks.TESTNET }).build(); }).to.not.throw(); }); - it('fails with empty timebounds', function () { + it("fails with empty timebounds", function () { let source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); expect(() => { new StellarBase.TransactionBuilder(source, { @@ -497,60 +497,60 @@ describe('TransactionBuilder', function () { fee: 100 }).build(); }).to.throw( - 'TimeBounds has to be set or you must call setTimeout(TimeoutInfinite).' + "TimeBounds has to be set or you must call setTimeout(TimeoutInfinite)." ); }); }); - describe('setTimeout', function () { - it('not called', function () { + describe("setTimeout", function () { + it("not called", function () { let source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); let transactionBuilder = new StellarBase.TransactionBuilder(source, { fee: 100 }).addOperation( StellarBase.Operation.payment({ destination: - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2', + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2", asset: StellarBase.Asset.native(), - amount: '1000' + amount: "1000" }) ); expect(() => transactionBuilder.build()).to.throw( /TimeBounds has to be set/ ); - expect(source.sequenceNumber()).to.be.equal('0'); + expect(source.sequenceNumber()).to.be.equal("0"); }); - it('timeout negative', function () { + it("timeout negative", function () { let source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); let transactionBuilder = new StellarBase.TransactionBuilder(source, { fee: 100 }).addOperation( StellarBase.Operation.payment({ destination: - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2', + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2", asset: StellarBase.Asset.native(), - amount: '1000' + amount: "1000" }) ); expect(() => transactionBuilder.setTimeout(-1)).to.throw( /timeout cannot be negative/ ); - expect(source.sequenceNumber()).to.be.equal('0'); + expect(source.sequenceNumber()).to.be.equal("0"); }); - it('sets timebounds', function () { + it("sets timebounds", function () { let source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); let transaction = new StellarBase.TransactionBuilder(source, { fee: 100, @@ -559,9 +559,9 @@ describe('TransactionBuilder', function () { .addOperation( StellarBase.Operation.payment({ destination: - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2', + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2", asset: StellarBase.Asset.native(), - amount: '1000' + amount: "1000" }) ) .setTimeout(10) @@ -573,14 +573,14 @@ describe('TransactionBuilder', function () { ); }); - it('fails when maxTime already set', function () { + it("fails when maxTime already set", function () { let timebounds = { - minTime: '1455287522', - maxTime: '1455297545' + minTime: "1455287522", + maxTime: "1455297545" }; let source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); let transactionBuilder = new StellarBase.TransactionBuilder(source, { timebounds, @@ -588,9 +588,9 @@ describe('TransactionBuilder', function () { }).addOperation( StellarBase.Operation.payment({ destination: - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2', + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2", asset: StellarBase.Asset.native(), - amount: '1000' + amount: "1000" }) ); @@ -599,14 +599,14 @@ describe('TransactionBuilder', function () { ); }); - it('sets timebounds.maxTime when minTime already set', function () { + it("sets timebounds.maxTime when minTime already set", function () { let timebounds = { - minTime: '1455287522', - maxTime: '0' + minTime: "1455287522", + maxTime: "0" }; let source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); let transaction = new StellarBase.TransactionBuilder(source, { timebounds, @@ -616,9 +616,9 @@ describe('TransactionBuilder', function () { .addOperation( StellarBase.Operation.payment({ destination: - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2', + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2", asset: StellarBase.Asset.native(), - amount: '1000' + amount: "1000" }) ) .setTimeout(10) @@ -629,10 +629,10 @@ describe('TransactionBuilder', function () { timeoutTimestamp.toString() ); }); - it('works with TimeoutInfinite', function () { + it("works with TimeoutInfinite", function () { let source = new StellarBase.Account( - 'GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ', - '0' + "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ", + "0" ); expect(() => { new StellarBase.TransactionBuilder(source, { @@ -645,21 +645,21 @@ describe('TransactionBuilder', function () { }); }); - describe('.buildFeeBumpTransaction', function () { - it('builds a fee bump transaction', function (done) { - const networkPassphrase = 'Standalone Network ; February 2017'; + describe(".buildFeeBumpTransaction", function () { + it("builds a fee bump transaction", function (done) { + const networkPassphrase = "Standalone Network ; February 2017"; const innerSource = StellarBase.Keypair.master(networkPassphrase); const innerAccount = new StellarBase.Account( innerSource.publicKey(), - '7' + "7" ); const destination = - 'GDQERENWDDSQZS7R7WKHZI3BSOYMV3FSWR7TFUYFTKQ447PIX6NREOJM'; - const amount = '2000.0000000'; + "GDQERENWDDSQZS7R7WKHZI3BSOYMV3FSWR7TFUYFTKQ447PIX6NREOJM"; + const amount = "2000.0000000"; const asset = StellarBase.Asset.native(); let innerTx = new StellarBase.TransactionBuilder(innerAccount, { - fee: '200', + fee: "200", networkPassphrase: networkPassphrase, timebounds: { minTime: 0, @@ -676,11 +676,11 @@ describe('TransactionBuilder', function () { .build(); let feeSource = StellarBase.Keypair.fromSecret( - 'SB7ZMPZB3YMMK5CUWENXVLZWBK4KYX4YU5JBXQNZSK2DP2Q7V3LVTO5V' + "SB7ZMPZB3YMMK5CUWENXVLZWBK4KYX4YU5JBXQNZSK2DP2Q7V3LVTO5V" ); let transaction = StellarBase.TransactionBuilder.buildFeeBumpTransaction( feeSource, - '200', + "200", innerTx, networkPassphrase ); @@ -691,14 +691,14 @@ describe('TransactionBuilder', function () { expect(() => { StellarBase.TransactionBuilder.buildFeeBumpTransaction( feeSource, - '100', + "100", innerTx, networkPassphrase ); }).to.throw(/Invalid baseFee, it should be at least 200 stroops./); innerTx = new StellarBase.TransactionBuilder(innerAccount, { - fee: '80', + fee: "80", networkPassphrase: networkPassphrase, timebounds: { minTime: 0, @@ -712,21 +712,21 @@ describe('TransactionBuilder', function () { amount }) ) - .addMemo(StellarBase.Memo.text('Happy birthday!')) + .addMemo(StellarBase.Memo.text("Happy birthday!")) .build(); // The fee rate for fee bump is at least the minimum fee expect(() => { StellarBase.TransactionBuilder.buildFeeBumpTransaction( feeSource, - '90', + "90", innerTx, networkPassphrase ); }).to.throw(/Invalid baseFee, it should be at least 100 stroops./); innerTx = new StellarBase.TransactionBuilder(innerAccount, { - fee: '100', + fee: "100", networkPassphrase: networkPassphrase, timebounds: { minTime: 0, @@ -747,13 +747,13 @@ describe('TransactionBuilder', function () { const feeBumpTx = StellarBase.TransactionBuilder.buildFeeBumpTransaction( feeSource, - '200', + "200", innerTx, networkPassphrase ); const innerTxEnvelope = innerTx.toEnvelope(); - expect(innerTxEnvelope.arm()).to.equal('v1'); + expect(innerTxEnvelope.arm()).to.equal("v1"); expect(innerTxEnvelope.v1().signatures()).to.have.length(1); const v1Tx = innerTxEnvelope.v1().tx(); @@ -785,7 +785,7 @@ describe('TransactionBuilder', function () { const feeBumpV0Tx = StellarBase.TransactionBuilder.buildFeeBumpTransaction( feeSource, - '200', + "200", new StellarBase.Transaction(innerV0TxEnvelope, networkPassphrase), networkPassphrase ); @@ -796,10 +796,10 @@ describe('TransactionBuilder', function () { }); }); - describe('.fromXDR', function () { - it('builds a fee bump transaction', function () { + describe(".fromXDR", function () { + it("builds a fee bump transaction", function () { const xdr = - 'AAAABQAAAADgSJG2GOUMy/H9lHyjYZOwyuyytH8y0wWaoc596L+bEgAAAAAAAADIAAAAAgAAAABzdv3ojkzWHMD7KUoXhrPx0GH18vHKV0ZfqpMiEblG1gAAAGQAAAAAAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA9IYXBweSBiaXJ0aGRheSEAAAAAAQAAAAAAAAABAAAAAOBIkbYY5QzL8f2UfKNhk7DK7LK0fzLTBZqhzn3ov5sSAAAAAAAAAASoF8gAAAAAAAAAAAERuUbWAAAAQK933Dnt1pxXlsf1B5CYn81PLxeYsx+MiV9EGbMdUfEcdDWUySyIkdzJefjpR5ejdXVp/KXosGmNUQ+DrIBlzg0AAAAAAAAAAei/mxIAAABAijIIQpL6KlFefiL4FP8UWQktWEz4wFgGNSaXe7mZdVMuiREntehi1b7MRqZ1h+W+Y0y+Z2HtMunsilT2yS5mAA=='; + "AAAABQAAAADgSJG2GOUMy/H9lHyjYZOwyuyytH8y0wWaoc596L+bEgAAAAAAAADIAAAAAgAAAABzdv3ojkzWHMD7KUoXhrPx0GH18vHKV0ZfqpMiEblG1gAAAGQAAAAAAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA9IYXBweSBiaXJ0aGRheSEAAAAAAQAAAAAAAAABAAAAAOBIkbYY5QzL8f2UfKNhk7DK7LK0fzLTBZqhzn3ov5sSAAAAAAAAAASoF8gAAAAAAAAAAAERuUbWAAAAQK933Dnt1pxXlsf1B5CYn81PLxeYsx+MiV9EGbMdUfEcdDWUySyIkdzJefjpR5ejdXVp/KXosGmNUQ+DrIBlzg0AAAAAAAAAAei/mxIAAABAijIIQpL6KlFefiL4FP8UWQktWEz4wFgGNSaXe7mZdVMuiREntehi1b7MRqZ1h+W+Y0y+Z2HtMunsilT2yS5mAA=="; let tx = StellarBase.TransactionBuilder.fromXDR( xdr, StellarBase.Networks.TESTNET @@ -814,9 +814,9 @@ describe('TransactionBuilder', function () { expect(tx).to.be.an.instanceof(StellarBase.FeeBumpTransaction); expect(tx.toXDR()).to.equal(xdr); }); - it('builds a transaction', function () { + it("builds a transaction", function () { const xdr = - 'AAAAAAW8Dk9idFR5Le+xi0/h/tU47bgC1YWjtPH1vIVO3BklAAAAZACoKlYAAAABAAAAAAAAAAEAAAALdmlhIGtleWJhc2UAAAAAAQAAAAAAAAAIAAAAAN7aGcXNPO36J1I8MR8S4QFhO79T5JGG2ZeS5Ka1m4mJAAAAAAAAAAFO3BklAAAAQP0ccCoeHdm3S7bOhMjXRMn3EbmETJ9glxpKUZjPSPIxpqZ7EkyTgl3FruieqpZd9LYOzdJrNik1GNBLhgTh/AU='; + "AAAAAAW8Dk9idFR5Le+xi0/h/tU47bgC1YWjtPH1vIVO3BklAAAAZACoKlYAAAABAAAAAAAAAAEAAAALdmlhIGtleWJhc2UAAAAAAQAAAAAAAAAIAAAAAN7aGcXNPO36J1I8MR8S4QFhO79T5JGG2ZeS5Ka1m4mJAAAAAAAAAAFO3BklAAAAQP0ccCoeHdm3S7bOhMjXRMn3EbmETJ9glxpKUZjPSPIxpqZ7EkyTgl3FruieqpZd9LYOzdJrNik1GNBLhgTh/AU="; let tx = StellarBase.TransactionBuilder.fromXDR( xdr, StellarBase.Networks.TESTNET @@ -833,27 +833,27 @@ describe('TransactionBuilder', function () { }); }); - describe('muxed account support', function () { + describe("muxed account support", function () { // Simultaneously, let's test some of the operations that should support // muxed accounts. const asset = StellarBase.Asset.native(); - const amount = '1000.0000000'; + const amount = "1000.0000000"; const base = new StellarBase.Account( - 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ', - '1234' + "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ", + "1234" ); - const source = new StellarBase.MuxedAccount(base, '2'); - const destination = new StellarBase.MuxedAccount(base, '3').accountId(); + const source = new StellarBase.MuxedAccount(base, "2"); + const destination = new StellarBase.MuxedAccount(base, "3").accountId(); const PUBKEY_SRC = StellarBase.StrKey.decodeEd25519PublicKey( source.baseAccount().accountId() ); const MUXED_SRC_ID = StellarBase.xdr.Uint64.fromString(source.id()); - const networkPassphrase = 'Standalone Network ; February 2017'; + const networkPassphrase = "Standalone Network ; February 2017"; const signer = StellarBase.Keypair.master(StellarBase.Networks.TESTNET); - it('works with muxed accounts by default', function () { + it("works with muxed accounts by default", function () { const operations = [ StellarBase.Operation.payment({ source: source.accountId(), @@ -870,11 +870,11 @@ describe('TransactionBuilder', function () { ]; let builder = new StellarBase.TransactionBuilder(source, { - fee: '100', + fee: "100", timebounds: { minTime: 0, maxTime: 0 }, memo: new StellarBase.Memo( StellarBase.MemoText, - 'Testing muxed accounts' + "Testing muxed accounts" ), networkPassphrase: networkPassphrase }); @@ -900,12 +900,12 @@ describe('TransactionBuilder', function () { ); expect(innerMux.id()).to.eql(MUXED_SRC_ID); - expect(source.sequenceNumber()).to.equal('1235'); - expect(source.baseAccount().sequenceNumber()).to.equal('1235'); + expect(source.sequenceNumber()).to.equal("1235"); + expect(source.baseAccount().sequenceNumber()).to.equal("1235"); // it should decode muxed properties by default let decodedTx = StellarBase.TransactionBuilder.fromXDR( - tx.toXDR('base64'), + tx.toXDR("base64"), networkPassphrase ); expect(decodedTx.source).to.equal(source.accountId()); @@ -920,24 +920,24 @@ describe('TransactionBuilder', function () { expect(clawbackOp.from).to.equal(destination); }); - it('does not regress js-stellar-sdk#646', function () { + it("does not regress js-stellar-sdk#646", function () { expect(() => { StellarBase.TransactionBuilder.fromXDR( - 'AAAAAgAAAABg/GhKJU5ut52ih6Klx0ymGvsac1FPJig1CHYqyesIHQAAJxACBmMCAAAADgAAAAAAAAABAAAAATMAAAAAAAABAAAAAQAAAABg/GhKJU5ut52ih6Klx0ymGvsac1FPJig1CHYqyesIHQAAAAAAAAAAqdkSiA5dzNXstOtkPkHd6dAMPMA+MSXwK8OlrAGCKasAAAAAAcnDgAAAAAAAAAAByesIHQAAAEAuLrTfW6D+HYlUD9y+JolF1qrb40hIRATzsQaQjchKJuhOZJjLO0d7oaTD3JZ4UL4vVKtV7TvV17rQgCQnuz8F', - 'Public Global Stellar Network ; September 2015' + "AAAAAgAAAABg/GhKJU5ut52ih6Klx0ymGvsac1FPJig1CHYqyesIHQAAJxACBmMCAAAADgAAAAAAAAABAAAAATMAAAAAAAABAAAAAQAAAABg/GhKJU5ut52ih6Klx0ymGvsac1FPJig1CHYqyesIHQAAAAAAAAAAqdkSiA5dzNXstOtkPkHd6dAMPMA+MSXwK8OlrAGCKasAAAAAAcnDgAAAAAAAAAAByesIHQAAAEAuLrTfW6D+HYlUD9y+JolF1qrb40hIRATzsQaQjchKJuhOZJjLO0d7oaTD3JZ4UL4vVKtV7TvV17rQgCQnuz8F", + "Public Global Stellar Network ; September 2015" ); }).to.not.throw(); }); - it('works with fee-bump transactions', function () { + it("works with fee-bump transactions", function () { // We create a non-muxed transaction, then fee-bump with a muxed source. let builder = new StellarBase.TransactionBuilder(source.baseAccount(), { - fee: '100', + fee: "100", timebounds: { minTime: 0, maxTime: 0 }, networkPassphrase: networkPassphrase }); - const muxed = new StellarBase.MuxedAccount.fromAddress(destination, '0'); + const muxed = new StellarBase.MuxedAccount.fromAddress(destination, "0"); const gAddress = muxed.baseAccount().accountId(); builder.addOperation( StellarBase.Operation.payment({ @@ -953,7 +953,7 @@ describe('TransactionBuilder', function () { const feeTx = StellarBase.TransactionBuilder.buildFeeBumpTransaction( source.accountId(), - '1000', + "1000", tx, networkPassphrase ); @@ -976,7 +976,7 @@ describe('TransactionBuilder', function () { expect(innerMux.id()).to.eql(MUXED_SRC_ID); const decodedTx = StellarBase.TransactionBuilder.fromXDR( - feeTx.toXDR('base64'), + feeTx.toXDR("base64"), networkPassphrase ); expect(decodedTx.feeSource).to.equal(source.accountId()); @@ -985,7 +985,7 @@ describe('TransactionBuilder', function () { ); }); - it('clones existing transactions', function () { + it("clones existing transactions", function () { const operations = [ StellarBase.Operation.payment({ source: source.accountId(), @@ -1002,9 +1002,9 @@ describe('TransactionBuilder', function () { ]; let builder = new StellarBase.TransactionBuilder(source, { - fee: '100', + fee: "100", timebounds: { minTime: 0, maxTime: 0 }, - memo: new StellarBase.Memo(StellarBase.MemoText, 'Testing cloning'), + memo: new StellarBase.Memo(StellarBase.MemoText, "Testing cloning"), networkPassphrase }) .addOperation(operations[0]) @@ -1021,9 +1021,9 @@ describe('TransactionBuilder', function () { ); cloneTx = StellarBase.TransactionBuilder.cloneFrom(tx, { - fee: '10000' + fee: "10000" }).build(); - expect(cloneTx.fee).to.equal('20000'); // double because two ops + expect(cloneTx.fee).to.equal("20000"); // double because two ops cloneTx = StellarBase.TransactionBuilder.cloneFrom(tx) .clearOperations() @@ -1031,13 +1031,13 @@ describe('TransactionBuilder', function () { expect(cloneTx.operations).to.be.empty; }); - it('adds operations at a specific index', function () { + it("adds operations at a specific index", function () { const builder = new StellarBase.TransactionBuilder(source, { - fee: '100', + fee: "100", timebounds: { minTime: 0, maxTime: 0 }, memo: new StellarBase.Memo( StellarBase.MemoText, - 'Testing adding op at index' + "Testing adding op at index" ), networkPassphrase }); @@ -1046,7 +1046,7 @@ describe('TransactionBuilder', function () { StellarBase.Operation.payment({ source: source.accountId(), destination: destination, - amount: '1', + amount: "1", asset: asset }), 0 @@ -1056,7 +1056,7 @@ describe('TransactionBuilder', function () { StellarBase.Operation.payment({ source: source.accountId(), destination: destination, - amount: '2', + amount: "2", asset: asset }), 1 @@ -1075,7 +1075,7 @@ describe('TransactionBuilder', function () { const newOperation = StellarBase.Operation.payment({ source: source.accountId(), destination: destination, - amount: '3', + amount: "3", asset: asset }); clonedTx.addOperationAt(newOperation, 0); diff --git a/test/unit/transaction_envelope_test.js b/test/unit/transaction_envelope_test.js index a81050395..1f467c565 100644 --- a/test/unit/transaction_envelope_test.js +++ b/test/unit/transaction_envelope_test.js @@ -1,12 +1,12 @@ -describe('TransactionEnvelope', function () { - it('can successfully decode an envelope', function (done) { +describe("TransactionEnvelope", function () { + it("can successfully decode an envelope", function (done) { // from https://github.com/stellar/js-stellar-sdk/issues/73 let xdr = - 'AAAAAPQQv+uPYrlCDnjgPyPRgIjB6T8Zb8ANmL8YGAXC2IAgAAAAZAAIteYAAAAHAAAAAAAAAAAAAAABAAAAAAAAAAMAAAAAAAAAAUVVUgAAAAAAUtYuFczBLlsXyEp3q8BbTBpEGINWahqkFbnTPd93YUUAAAAXSHboAAAAABEAACcQAAAAAAAAAKIAAAAAAAAAAcLYgCAAAABAo2tU6n0Bb7bbbpaXacVeaTVbxNMBtnrrXVk2QAOje2Flllk/ORlmQdFU/9c8z43eWh1RNMpI3PscY+yDCnJPBQ=='; + "AAAAAPQQv+uPYrlCDnjgPyPRgIjB6T8Zb8ANmL8YGAXC2IAgAAAAZAAIteYAAAAHAAAAAAAAAAAAAAABAAAAAAAAAAMAAAAAAAAAAUVVUgAAAAAAUtYuFczBLlsXyEp3q8BbTBpEGINWahqkFbnTPd93YUUAAAAXSHboAAAAABEAACcQAAAAAAAAAKIAAAAAAAAAAcLYgCAAAABAo2tU6n0Bb7bbbpaXacVeaTVbxNMBtnrrXVk2QAOje2Flllk/ORlmQdFU/9c8z43eWh1RNMpI3PscY+yDCnJPBQ=="; let txe = StellarBase.xdr.TransactionEnvelope.fromXDR( xdr, - 'base64' + "base64" ).value(); let sourceAccount = txe.tx().sourceAccountEd25519(); @@ -14,13 +14,13 @@ describe('TransactionEnvelope', function () { done(); }); - it('calculates correct hash with non-utf8 strings', function (done) { + it("calculates correct hash with non-utf8 strings", function (done) { // a84d534b3742ad89413bdbf259e02fa4c5d039123769e9bcc63616f723a2bcd5 let xdr = - 'AAAAAAtjwtJadppTmm0NtAU99BFxXXfzPO1N/SqR43Z8aXqXAAAAZAAIj6YAAAACAAAAAAAAAAEAAAAB0QAAAAAAAAEAAAAAAAAAAQAAAADLa6390PDAqg3qDLpshQxS+uVw3ytSgKRirQcInPWt1QAAAAAAAAAAA1Z+AAAAAAAAAAABfGl6lwAAAEBC655+8Izq54MIZrXTVF/E1ycHgQWpVcBD+LFkuOjjJd995u/7wM8sFqQqambL0/ME2FTOtxMO65B9i3eAIu4P'; + "AAAAAAtjwtJadppTmm0NtAU99BFxXXfzPO1N/SqR43Z8aXqXAAAAZAAIj6YAAAACAAAAAAAAAAEAAAAB0QAAAAAAAAEAAAAAAAAAAQAAAADLa6390PDAqg3qDLpshQxS+uVw3ytSgKRirQcInPWt1QAAAAAAAAAAA1Z+AAAAAAAAAAABfGl6lwAAAEBC655+8Izq54MIZrXTVF/E1ycHgQWpVcBD+LFkuOjjJd995u/7wM8sFqQqambL0/ME2FTOtxMO65B9i3eAIu4P"; var tx = new StellarBase.Transaction(xdr, StellarBase.Networks.PUBLIC); - expect(tx.hash().toString('hex')).to.be.equal( - 'a84d534b3742ad89413bdbf259e02fa4c5d039123769e9bcc63616f723a2bcd5' + expect(tx.hash().toString("hex")).to.be.equal( + "a84d534b3742ad89413bdbf259e02fa4c5d039123769e9bcc63616f723a2bcd5" ); done(); }); diff --git a/test/unit/transaction_test.js b/test/unit/transaction_test.js index 5f1c351fa..99e098b56 100644 --- a/test/unit/transaction_test.js +++ b/test/unit/transaction_test.js @@ -1,16 +1,16 @@ -import { UnsignedHyper } from '@stellar/js-xdr'; -import randomBytes from 'randombytes'; +import { UnsignedHyper } from "@stellar/js-xdr"; +import randomBytes from "randombytes"; -describe('Transaction', function () { - it('constructs Transaction object from a TransactionEnvelope', function (done) { +describe("Transaction", function () { + it("constructs Transaction object from a TransactionEnvelope", function (done) { let source = new StellarBase.Account( - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB', - '0' + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB", + "0" ); let destination = - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2'; + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2"; let asset = StellarBase.Asset.native(); - let amount = '2000.0000000'; + let amount = "2000.0000000"; let input = new StellarBase.TransactionBuilder(source, { fee: 100, @@ -19,11 +19,11 @@ describe('Transaction', function () { .addOperation( StellarBase.Operation.payment({ destination, asset, amount }) ) - .addMemo(StellarBase.Memo.text('Happy birthday!')) + .addMemo(StellarBase.Memo.text("Happy birthday!")) .setTimeout(StellarBase.TimeoutInfinite) .build() .toEnvelope() - .toXDR('base64'); + .toXDR("base64"); var transaction = new StellarBase.Transaction( input, @@ -32,28 +32,28 @@ describe('Transaction', function () { var operation = transaction.operations[0]; expect(transaction.source).to.be.equal(source.accountId()); - expect(transaction.fee).to.be.equal('100'); + expect(transaction.fee).to.be.equal("100"); expect(transaction.memo.type).to.be.equal(StellarBase.MemoText); - expect(transaction.memo.value.toString('ascii')).to.be.equal( - 'Happy birthday!' + expect(transaction.memo.value.toString("ascii")).to.be.equal( + "Happy birthday!" ); - expect(operation.type).to.be.equal('payment'); + expect(operation.type).to.be.equal("payment"); expect(operation.destination).to.be.equal(destination); expect(operation.amount).to.be.equal(amount); done(); }); - describe('toEnvelope', function () { + describe("toEnvelope", function () { beforeEach(function () { let source = new StellarBase.Account( - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB', - '0' + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB", + "0" ); let destination = - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2'; + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2"; let asset = StellarBase.Asset.native(); - let amount = '2000.0000000'; + let amount = "2000.0000000"; this.transaction = new StellarBase.TransactionBuilder(source, { fee: 100, @@ -62,36 +62,36 @@ describe('Transaction', function () { .addOperation( StellarBase.Operation.payment({ destination, asset, amount }) ) - .addMemo(StellarBase.Memo.text('Happy birthday!')) + .addMemo(StellarBase.Memo.text("Happy birthday!")) .setTimeout(StellarBase.TimeoutInfinite) .build(); }); - it('does not return a reference to source signatures', function () { + it("does not return a reference to source signatures", function () { const transaction = this.transaction; const envelope = transaction.toEnvelope().value(); envelope.signatures().push({}); expect(transaction.signatures.length).to.equal(0); }); - it('does not return a reference to the source transaction', function () { + it("does not return a reference to the source transaction", function () { const transaction = this.transaction; const envelope = transaction.toEnvelope().value(); - envelope.tx().fee(StellarBase.xdr.Int64.fromString('300')); + envelope.tx().fee(StellarBase.xdr.Int64.fromString("300")); - expect(transaction.tx.fee().toString()).to.equal('100'); + expect(transaction.tx.fee().toString()).to.equal("100"); }); }); - it('throws when a garbage Network is selected', () => { + it("throws when a garbage Network is selected", () => { let source = new StellarBase.Account( - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB', - '0' + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB", + "0" ); let destination = - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2'; + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2"; let asset = StellarBase.Asset.native(); - let amount = '2000.0000000'; + let amount = "2000.0000000"; let input = new StellarBase.TransactionBuilder(source, { fee: 100, @@ -100,14 +100,14 @@ describe('Transaction', function () { .addOperation( StellarBase.Operation.payment({ destination, asset, amount }) ) - .addMemo(StellarBase.Memo.text('Happy birthday!')) + .addMemo(StellarBase.Memo.text("Happy birthday!")) .setTimeout(StellarBase.TimeoutInfinite) .build() .toEnvelope() - .toXDR('base64'); + .toXDR("base64"); expect(() => { - new StellarBase.Transaction(input, { garbage: 'yes' }); + new StellarBase.Transaction(input, { garbage: "yes" }); }).to.throw(/expected a string/); expect(() => { @@ -115,15 +115,15 @@ describe('Transaction', function () { }).to.throw(/expected a string/); }); - it('throws when a Network is not passed', () => { + it("throws when a Network is not passed", () => { let source = new StellarBase.Account( - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB', - '0' + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB", + "0" ); let destination = - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2'; + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2"; let asset = StellarBase.Asset.native(); - let amount = '2000.0000000'; + let amount = "2000.0000000"; let input = new StellarBase.TransactionBuilder(source, { fee: 100, @@ -132,26 +132,26 @@ describe('Transaction', function () { .addOperation( StellarBase.Operation.payment({ destination, asset, amount }) ) - .addMemo(StellarBase.Memo.text('Happy birthday!')) + .addMemo(StellarBase.Memo.text("Happy birthday!")) .setTimeout(StellarBase.TimeoutInfinite) .build() .toEnvelope() - .toXDR('base64'); + .toXDR("base64"); expect(() => { new StellarBase.Transaction(input); }).to.throw(/expected a string/); }); - it('throws when no fee is provided', function () { + it("throws when no fee is provided", function () { let source = new StellarBase.Account( - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB', - '0' + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB", + "0" ); let destination = - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2'; + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2"; let asset = StellarBase.Asset.native(); - let amount = '2000'; + let amount = "2000"; expect(() => new StellarBase.TransactionBuilder(source, { @@ -165,15 +165,15 @@ describe('Transaction', function () { ).to.throw(/must specify fee/); }); - it('signs correctly', function () { + it("signs correctly", function () { let source = new StellarBase.Account( - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB', - '0' + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB", + "0" ); let destination = - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2'; + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2"; let asset = StellarBase.Asset.native(); - let amount = '2000'; + let amount = "2000"; let signer = StellarBase.Keypair.master(StellarBase.Networks.TESTNET); let tx = new StellarBase.TransactionBuilder(source, { @@ -194,15 +194,15 @@ describe('Transaction', function () { expect(verified).to.equal(true); }); - it('signs using hash preimage', function () { + it("signs using hash preimage", function () { let source = new StellarBase.Account( - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB', - '0' + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB", + "0" ); let destination = - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2'; + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2"; let asset = StellarBase.Asset.native(); - let amount = '2000'; + let amount = "2000"; let preimage = randomBytes(64); let hash = StellarBase.hash(preimage); @@ -226,15 +226,15 @@ describe('Transaction', function () { ); }); - it('returns error when signing using hash preimage that is too long', function () { + it("returns error when signing using hash preimage that is too long", function () { let source = new StellarBase.Account( - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB', - '0' + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB", + "0" ); let destination = - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2'; + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2"; let asset = StellarBase.Asset.native(); - let amount = '2000'; + let amount = "2000"; let preimage = randomBytes(2 * 64); @@ -253,16 +253,16 @@ describe('Transaction', function () { ); }); - it('adds signature correctly', function () { + it("adds signature correctly", function () { const sourceKey = - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB'; + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB"; // make two sources so they have the same seq number - const signedSource = new StellarBase.Account(sourceKey, '20'); - const addedSignatureSource = new StellarBase.Account(sourceKey, '20'); + const signedSource = new StellarBase.Account(sourceKey, "20"); + const addedSignatureSource = new StellarBase.Account(sourceKey, "20"); const destination = - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2'; + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2"; const asset = StellarBase.Asset.native(); - const amount = '2000'; + const amount = "2000"; const signer = StellarBase.Keypair.master(StellarBase.Networks.TESTNET); const signedTx = new StellarBase.TransactionBuilder(signedSource, { @@ -299,7 +299,7 @@ describe('Transaction', function () { ) .build(); - const signature = signer.sign(presignHash).toString('base64'); + const signature = signer.sign(presignHash).toString("base64"); addedSignatureTx.addSignature(signer.publicKey(), signature); @@ -325,16 +325,16 @@ describe('Transaction', function () { expectBuffersToBeEqual(addedSignatureTx.hash(), signedTx.hash()); }); - it('adds signature generated by getKeypairSignature', function () { + it("adds signature generated by getKeypairSignature", function () { const sourceKey = - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB'; + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB"; // make two sources so they have the same seq number - const signedSource = new StellarBase.Account(sourceKey, '20'); - const addedSignatureSource = new StellarBase.Account(sourceKey, '20'); + const signedSource = new StellarBase.Account(sourceKey, "20"); + const addedSignatureSource = new StellarBase.Account(sourceKey, "20"); const destination = - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2'; + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2"; const asset = StellarBase.Asset.native(); - const amount = '2000'; + const amount = "2000"; const signer = StellarBase.Keypair.master(StellarBase.Networks.TESTNET); const signedTx = new StellarBase.TransactionBuilder(signedSource, { @@ -360,7 +360,7 @@ describe('Transaction', function () { StellarBase.Networks.TESTNET ).getKeypairSignature(signer); - expect(signer.sign(presignHash).toString('base64')).to.equal(signature); + expect(signer.sign(presignHash).toString("base64")).to.equal(signature); const addedSignatureTx = new StellarBase.TransactionBuilder( addedSignatureSource, @@ -402,17 +402,17 @@ describe('Transaction', function () { expectBuffersToBeEqual(addedSignatureTx.hash(), signedTx.hash()); }); - it('does not add invalid signature', function () { + it("does not add invalid signature", function () { const sourceKey = - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB'; + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB"; // make two sources so they have the same seq number - const source = new StellarBase.Account(sourceKey, '20'); - const sourceCopy = new StellarBase.Account(sourceKey, '20'); + const source = new StellarBase.Account(sourceKey, "20"); + const sourceCopy = new StellarBase.Account(sourceKey, "20"); const destination = - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2'; + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2"; const asset = StellarBase.Asset.native(); - const originalAmount = '2000'; - const alteredAmount = '1000'; + const originalAmount = "2000"; + const alteredAmount = "1000"; const signer = StellarBase.Keypair.master(StellarBase.Networks.TESTNET); const originalTx = new StellarBase.TransactionBuilder(source, { @@ -457,18 +457,18 @@ describe('Transaction', function () { function addSignature() { alteredTx.addSignature(signer.publicKey(), signature); } - expect(addSignature).to.throw('Invalid signature'); + expect(addSignature).to.throw("Invalid signature"); }); - it('accepts 0 as a valid transaction fee', function (done) { + it("accepts 0 as a valid transaction fee", function (done) { let source = new StellarBase.Account( - 'GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB', - '0' + "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB", + "0" ); let destination = - 'GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2'; + "GDJJRRMBK4IWLEPJGIE6SXD2LP7REGZODU7WDC3I2D6MR37F4XSHBKX2"; let asset = StellarBase.Asset.native(); - let amount = '2000'; + let amount = "2000"; let input = new StellarBase.TransactionBuilder(source, { fee: 0, @@ -477,11 +477,11 @@ describe('Transaction', function () { .addOperation( StellarBase.Operation.payment({ destination, asset, amount }) ) - .addMemo(StellarBase.Memo.text('Happy birthday!')) + .addMemo(StellarBase.Memo.text("Happy birthday!")) .setTimeout(StellarBase.TimeoutInfinite) .build() .toEnvelope() - .toXDR('base64'); + .toXDR("base64"); var transaction = new StellarBase.Transaction( input, @@ -489,32 +489,32 @@ describe('Transaction', function () { ); var operation = transaction.operations[0]; - expect(transaction.fee).to.be.equal('0'); + expect(transaction.fee).to.be.equal("0"); done(); }); - it('outputs xdr as a string', () => { + it("outputs xdr as a string", () => { const xdrString = - 'AAAAAAW8Dk9idFR5Le+xi0/h/tU47bgC1YWjtPH1vIVO3BklAAAAZACoKlYAAAABAAAAAAAAAAEAAAALdmlhIGtleWJhc2UAAAAAAQAAAAAAAAAIAAAAAN7aGcXNPO36J1I8MR8S4QFhO79T5JGG2ZeS5Ka1m4mJAAAAAAAAAAFO3BklAAAAQP0ccCoeHdm3S7bOhMjXRMn3EbmETJ9glxpKUZjPSPIxpqZ7EkyTgl3FruieqpZd9LYOzdJrNik1GNBLhgTh/AU='; + "AAAAAAW8Dk9idFR5Le+xi0/h/tU47bgC1YWjtPH1vIVO3BklAAAAZACoKlYAAAABAAAAAAAAAAEAAAALdmlhIGtleWJhc2UAAAAAAQAAAAAAAAAIAAAAAN7aGcXNPO36J1I8MR8S4QFhO79T5JGG2ZeS5Ka1m4mJAAAAAAAAAAFO3BklAAAAQP0ccCoeHdm3S7bOhMjXRMn3EbmETJ9glxpKUZjPSPIxpqZ7EkyTgl3FruieqpZd9LYOzdJrNik1GNBLhgTh/AU="; const transaction = new StellarBase.Transaction( xdrString, StellarBase.Networks.TESTNET ); - expect(typeof transaction).to.be.equal('object'); - expect(typeof transaction.toXDR).to.be.equal('function'); + expect(typeof transaction).to.be.equal("object"); + expect(typeof transaction.toXDR).to.be.equal("function"); expect(transaction.toXDR()).to.be.equal(xdrString); }); - describe('TransactionEnvelope with MuxedAccount', function () { - it('handles muxed accounts', function () { - let baseFee = '100'; - const networkPassphrase = 'Standalone Network ; February 2017'; + describe("TransactionEnvelope with MuxedAccount", function () { + it("handles muxed accounts", function () { + let baseFee = "100"; + const networkPassphrase = "Standalone Network ; February 2017"; const source = StellarBase.Keypair.master(networkPassphrase); - const account = new StellarBase.Account(source.publicKey(), '7'); + const account = new StellarBase.Account(source.publicKey(), "7"); const destination = - 'GDQERENWDDSQZS7R7WKHZI3BSOYMV3FSWR7TFUYFTKQ447PIX6NREOJM'; - const amount = '2000.0000000'; + "GDQERENWDDSQZS7R7WKHZI3BSOYMV3FSWR7TFUYFTKQ447PIX6NREOJM"; + const amount = "2000.0000000"; const asset = StellarBase.Asset.native(); let tx = new StellarBase.TransactionBuilder(account, { fee: baseFee, @@ -531,18 +531,18 @@ describe('Transaction', function () { amount }) ) - .addMemo(StellarBase.Memo.text('Happy birthday!')) + .addMemo(StellarBase.Memo.text("Happy birthday!")) .build(); // force the source to be muxed in the envelope - const muxedSource = new StellarBase.MuxedAccount(account, '0'); + const muxedSource = new StellarBase.MuxedAccount(account, "0"); const envelope = tx.toEnvelope(); envelope.v1().tx().sourceAccount(muxedSource.toXDRObject()); // force the payment destination to be muxed in the envelope const destinationMuxed = new StellarBase.MuxedAccount( - new StellarBase.Account(destination, '1'), - '0' + new StellarBase.Account(destination, "1"), + "0" ); envelope .v1() @@ -562,8 +562,8 @@ describe('Transaction', function () { }); }); - describe('knows how to calculate claimable balance IDs', function () { - const address = 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ'; + describe("knows how to calculate claimable balance IDs", function () { + const address = "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ"; const makeBuilder = function (source) { return new StellarBase.TransactionBuilder(source, { @@ -576,7 +576,7 @@ describe('Transaction', function () { const makeClaimableBalance = function () { return StellarBase.Operation.createClaimableBalance({ asset: StellarBase.Asset.native(), - amount: '100', + amount: "100", claimants: [ new StellarBase.Claimant( address, @@ -589,49 +589,49 @@ describe('Transaction', function () { const paymentOp = StellarBase.Operation.payment({ destination: address, asset: StellarBase.Asset.native(), - amount: '100' + amount: "100" }); - it('calculates from transaction src', function () { - let gSource = new StellarBase.Account(address, '1234'); + it("calculates from transaction src", function () { + let gSource = new StellarBase.Account(address, "1234"); let tx = makeBuilder(gSource) .addOperation(makeClaimableBalance()) .build(); const balanceId = tx.getClaimableBalanceId(0); expect(balanceId).to.be.equal( - '00000000536af35c666a28d26775008321655e9eda2039154270484e3f81d72c66d5c26f' + "00000000536af35c666a28d26775008321655e9eda2039154270484e3f81d72c66d5c26f" ); }); // See https://github.com/stellar/js-stellar-base/issues/529 - it('calculates from transaction src (big number sequence)', function () { - let gSource = new StellarBase.Account(address, '114272277834498050'); + it("calculates from transaction src (big number sequence)", function () { + let gSource = new StellarBase.Account(address, "114272277834498050"); let tx = makeBuilder(gSource) .addOperation(makeClaimableBalance()) .build(); const balanceId = tx.getClaimableBalanceId(0); expect(balanceId).to.be.equal( - '000000001cd1e39f422a864b4efca661e11ffaa1c54e69b23aaf096e0cfd361bb4a275bf' + "000000001cd1e39f422a864b4efca661e11ffaa1c54e69b23aaf096e0cfd361bb4a275bf" ); }); - it('calculates from muxed transaction src as if unmuxed', function () { - let gSource = new StellarBase.Account(address, '1234'); - let mSource = new StellarBase.MuxedAccount(gSource, '5678'); + it("calculates from muxed transaction src as if unmuxed", function () { + let gSource = new StellarBase.Account(address, "1234"); + let mSource = new StellarBase.MuxedAccount(gSource, "5678"); let tx = makeBuilder(mSource) .addOperation(makeClaimableBalance()) .build(); const balanceId = tx.getClaimableBalanceId(0); expect(balanceId).to.be.equal( - '00000000536af35c666a28d26775008321655e9eda2039154270484e3f81d72c66d5c26f' + "00000000536af35c666a28d26775008321655e9eda2039154270484e3f81d72c66d5c26f" ); }); - it('throws on invalid operations', function () { - let gSource = new StellarBase.Account(address, '1234'); + it("throws on invalid operations", function () { + let gSource = new StellarBase.Account(address, "1234"); let tx = makeBuilder(gSource) .addOperation(paymentOp) .addOperation(makeClaimableBalance()) @@ -646,10 +646,10 @@ describe('Transaction', function () { }); }); - describe('preconditions', function () { - const address = 'GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ'; + describe("preconditions", function () { + const address = "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ"; - const source = new StellarBase.Account(address, '1234'); + const source = new StellarBase.Account(address, "1234"); const makeBuilder = function () { return new StellarBase.TransactionBuilder(source, { fee: StellarBase.BASE_FEE, @@ -658,8 +658,8 @@ describe('Transaction', function () { }); }; - describe('timebounds', function () { - it('Date', function () { + describe("timebounds", function () { + it("Date", function () { let now = new Date(); let tx = makeBuilder().setTimebounds(now, now).build(); const expMin = `${Math.floor(now.valueOf() / 1000)}`; @@ -673,18 +673,18 @@ describe('Transaction', function () { expect(tb.maxTime().toString()).to.equal(expMax); }); - it('number', function () { + it("number", function () { let tx = makeBuilder().setTimebounds(5, 10).build(); - expect(tx.timeBounds.minTime).to.eql('5'); - expect(tx.timeBounds.maxTime).to.eql('10'); + expect(tx.timeBounds.minTime).to.eql("5"); + expect(tx.timeBounds.maxTime).to.eql("10"); const tb = tx.toEnvelope().v1().tx().cond().timeBounds(); - expect(tb.minTime().toString()).to.equal('5'); - expect(tb.maxTime().toString()).to.equal('10'); + expect(tb.minTime().toString()).to.equal("5"); + expect(tb.maxTime().toString()).to.equal("10"); }); }); - it('ledgerbounds', function () { + it("ledgerbounds", function () { let tx = makeBuilder().setTimeout(5).setLedgerbounds(5, 10).build(); expect(tx.ledgerBounds.minLedger).to.equal(5); @@ -695,34 +695,34 @@ describe('Transaction', function () { expect(lb.maxLedger()).to.equal(10); }); - it('minAccountSequence', function () { - let tx = makeBuilder().setTimeout(5).setMinAccountSequence('5').build(); - expect(tx.minAccountSequence).to.eql('5'); + it("minAccountSequence", function () { + let tx = makeBuilder().setTimeout(5).setMinAccountSequence("5").build(); + expect(tx.minAccountSequence).to.eql("5"); const val = tx.toEnvelope().v1().tx().cond().v2().minSeqNum(); - expect(val.toString()).to.equal('5'); + expect(val.toString()).to.equal("5"); }); - it('minAccountSequence (big number)', function () { + it("minAccountSequence (big number)", function () { let tx = makeBuilder() .setTimeout(5) - .setMinAccountSequence('103420918407103888') + .setMinAccountSequence("103420918407103888") .build(); - expect(tx.minAccountSequence).to.eql('103420918407103888'); + expect(tx.minAccountSequence).to.eql("103420918407103888"); const val = tx.toEnvelope().v1().tx().cond().v2().minSeqNum(); - expect(val.toString()).to.equal('103420918407103888'); + expect(val.toString()).to.equal("103420918407103888"); }); - it('minAccountSequenceAge', function () { + it("minAccountSequenceAge", function () { let tx = makeBuilder().setTimeout(5).setMinAccountSequenceAge(5).build(); - expect(tx.minAccountSequenceAge.toString()).to.equal('5'); + expect(tx.minAccountSequenceAge.toString()).to.equal("5"); const val = tx.toEnvelope().v1().tx().cond().v2().minSeqAge(); - expect(val.toString()).to.equal('5'); + expect(val.toString()).to.equal("5"); }); - it('minAccountSequenceLedgerGap', function () { + it("minAccountSequenceLedgerGap", function () { let tx = makeBuilder() .setTimeout(5) .setMinAccountSequenceLedgerGap(5) @@ -730,10 +730,10 @@ describe('Transaction', function () { expect(tx.minAccountSequenceLedgerGap).to.equal(5); const val = tx.toEnvelope().v1().tx().cond().v2().minSeqLedgerGap(); - expect(val.toString()).to.equal('5'); + expect(val.toString()).to.equal("5"); }); - it('extraSigners', function () { + it("extraSigners", function () { let tx = makeBuilder().setTimeout(5).setExtraSigners([address]).build(); expect(tx.extraSigners).to.have.lengthOf(1); expect(tx.extraSigners.map(StellarBase.SignerKey.encodeSignerKey)).to.eql( @@ -748,7 +748,7 @@ describe('Transaction', function () { }); function expectBuffersToBeEqual(left, right) { - let leftHex = left.toString('hex'); - let rightHex = right.toString('hex'); + let leftHex = left.toString("hex"); + let rightHex = right.toString("hex"); expect(leftHex).to.eql(rightHex); } diff --git a/test/unit/util/bignumber_test.js b/test/unit/util/bignumber_test.js index df11b1c90..6ca881023 100644 --- a/test/unit/util/bignumber_test.js +++ b/test/unit/util/bignumber_test.js @@ -1,12 +1,12 @@ -import BigNumber from 'bignumber.js'; -import SDKBigNumber from '../../../src/util/bignumber'; +import BigNumber from "bignumber.js"; +import SDKBigNumber from "../../../src/util/bignumber"; -describe('bignumber', function () { - it('Debug mode has been enabled in the cloned bignumber.', function () { +describe("bignumber", function () { + it("Debug mode has been enabled in the cloned bignumber.", function () { expect(SDKBigNumber.DEBUG).to.be.true; }); - it('Debug mode has been disabled (default setting) in the original bignumber.', function () { + it("Debug mode has been disabled (default setting) in the original bignumber.", function () { expect(BigNumber.DEBUG).to.be.undefined; }); }); diff --git a/test/unit/util/checksum.test.ts b/test/unit/util/checksum.test.ts new file mode 100644 index 000000000..392e8b984 --- /dev/null +++ b/test/unit/util/checksum.test.ts @@ -0,0 +1,44 @@ +import { describe, it, expect } from "vitest"; +import { verifyChecksum } from "../../../src/util/checksum"; + +describe("verifyChecksum", () => { + it("returns true for identical arrays", () => { + const a = new Uint8Array([1, 2, 3]); + const b = new Uint8Array([1, 2, 3]); + expect(verifyChecksum(a, b)).toBe(true); + }); + + it("returns false for different contents", () => { + const a = new Uint8Array([1, 2, 3]); + const b = new Uint8Array([1, 2, 4]); + expect(verifyChecksum(a, b)).toBe(false); + }); + + it("returns false for different lengths", () => { + const a = new Uint8Array([1, 2, 3]); + const b = new Uint8Array([1, 2]); + expect(verifyChecksum(a, b)).toBe(false); + }); + + it("returns true for two empty arrays", () => { + expect(verifyChecksum(new Uint8Array([]), new Uint8Array([]))).toBe(true); + }); + + it("returns true for single matching byte", () => { + expect(verifyChecksum(new Uint8Array([0xff]), new Uint8Array([0xff]))).toBe( + true + ); + }); + + it("returns false when first byte differs", () => { + const a = new Uint8Array([0, 2, 3]); + const b = new Uint8Array([1, 2, 3]); + expect(verifyChecksum(a, b)).toBe(false); + }); + + it("returns false when last byte differs", () => { + const a = new Uint8Array([1, 2, 3]); + const b = new Uint8Array([1, 2, 0]); + expect(verifyChecksum(a, b)).toBe(false); + }); +}); diff --git a/test/unit/util/continued_fraction_test.js b/test/unit/util/continued_fraction_test.js index e6b964ee5..c3d9bd2d1 100644 --- a/test/unit/util/continued_fraction_test.js +++ b/test/unit/util/continued_fraction_test.js @@ -1,29 +1,29 @@ -import { best_r } from '../../../src/util/continued_fraction.js'; -import BigNumber from 'bignumber.js'; +import { best_r } from "../../../src/util/continued_fraction.js"; +import BigNumber from "bignumber.js"; -describe('best_r', function () { - it('correctly calculates the best rational approximation', function () { +describe("best_r", function () { + it("correctly calculates the best rational approximation", function () { var tests = [ - ['1,10', '0.1'], - ['1,100', '0.01'], - ['1,1000', '0.001'], - ['54301793,100000', '543.017930'], - ['31969983,100000', '319.69983'], - ['93,100', '0.93'], - ['1,2', '0.5'], - ['173,100', '1.730'], - ['5333399,6250000', '0.85334384'], - ['11,2', '5.5'], - ['272783,100000', '2.72783'], - ['638082,1', '638082.0'], - ['36731261,12500000', '2.93850088'], - ['1451,25', '58.04'], - ['8253,200', '41.265'], - ['12869,2500', '5.1476'], - ['4757,50', '95.14'], - ['3729,5000', '0.74580'], - ['4119,1', '4119.0'], - ['118,37', new BigNumber(118).div(37)] + ["1,10", "0.1"], + ["1,100", "0.01"], + ["1,1000", "0.001"], + ["54301793,100000", "543.017930"], + ["31969983,100000", "319.69983"], + ["93,100", "0.93"], + ["1,2", "0.5"], + ["173,100", "1.730"], + ["5333399,6250000", "0.85334384"], + ["11,2", "5.5"], + ["272783,100000", "2.72783"], + ["638082,1", "638082.0"], + ["36731261,12500000", "2.93850088"], + ["1451,25", "58.04"], + ["8253,200", "41.265"], + ["12869,2500", "5.1476"], + ["4757,50", "95.14"], + ["3729,5000", "0.74580"], + ["4119,1", "4119.0"], + ["118,37", new BigNumber(118).div(37)] ]; for (var i in tests) { @@ -31,10 +31,10 @@ describe('best_r', function () { } }); - it('throws an error when best rational approximation cannot be found', function () { - expect(() => best_r('0.0000000003')).to.throw( + it("throws an error when best rational approximation cannot be found", function () { + expect(() => best_r("0.0000000003")).to.throw( /Couldn't find approximation/ ); - expect(() => best_r('2147483648')).to.throw(/Couldn't find approximation/); + expect(() => best_r("2147483648")).to.throw(/Couldn't find approximation/); }); }); diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 000000000..3a57d47d7 --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,39 @@ +{ + // This tsconfig file contains the shared config for the build (tsconfig.build.json) and type checking (tsconfig.json) config. + "include": [], + "compilerOptions": { + // Incremental builds + // NOTE: Enabling incremental builds speeds up `tsc`. Keep in mind though that it does not reliably bust the cache when the `tsconfig.json` file changes. + "incremental": true, + + // Type checking + "strict": true, + "useDefineForClassFields": true, // Not enabled by default in `strict` mode unless we bump `target` to ES2022. + "noFallthroughCasesInSwitch": true, // Not enabled by default in `strict` mode. + "noImplicitReturns": true, // Not enabled by default in `strict` mode. + "useUnknownInCatchVariables": true, // Enabled to align with `strict` mode. + "noImplicitOverride": true, // Not enabled by default in `strict` mode. + "noUnusedLocals": true, // Not enabled by default in `strict` mode. + "noUnusedParameters": true, // Not enabled by default in `strict` mode. + "exactOptionalPropertyTypes": true, + "noUncheckedIndexedAccess": true, + + // JavaScript support + "allowJs": false, + "checkJs": false, + + // Interop constraints + "esModuleInterop": false, + "allowSyntheticDefaultImports": false, + "forceConsistentCasingInFileNames": true, + "verbatimModuleSyntax": false, + + // Language and environment + "moduleResolution": "nodenext", + "module": "nodenext", + "target": "ES2022", + "lib": ["ES2022"], + // Skip type checking for node modules + "skipLibCheck": true + } +} diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json new file mode 100644 index 000000000..77eb6657b --- /dev/null +++ b/tsconfig.cjs.json @@ -0,0 +1,17 @@ +{ + // This file is used to compile for cjs It should exclude all test files. + "extends": "./tsconfig.base.json", + "include": ["src"], + "exclude": ["test"], + + "compilerOptions": { + "outDir": "./lib/cjs", + "sourceMap": true, + "rootDir": "./src", + "module": "commonjs", + "moduleResolution": "node10", + "esModuleInterop": true, + "declaration": true, + "declarationDir": "./type_validation" + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 000000000..200030926 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,9 @@ +{ + // This is the root config for IDE support and type-checking. For builds, use tsconfig.cjs.json. + "extends": "./tsconfig.base.json", + "include": ["src", "test"], + "exclude": ["node_modules", "lib", "dist"], + "compilerOptions": { + "noEmit": true + } +} diff --git a/type_validation/util/checksum.d.ts b/type_validation/util/checksum.d.ts new file mode 100644 index 000000000..935cb048d --- /dev/null +++ b/type_validation/util/checksum.d.ts @@ -0,0 +1 @@ +export declare function verifyChecksum(expected: Uint8Array, actual: Uint8Array): boolean; diff --git a/types/.eslintrc.js b/types/.eslintrc.js index 616584470..dd97c3c4c 100644 --- a/types/.eslintrc.js +++ b/types/.eslintrc.js @@ -1,3 +1,3 @@ module.exports = { - parser: '@typescript-eslint/parser' + parser: "@typescript-eslint/parser" }; diff --git a/types/test.ts b/types/test.ts index 1d9a1dfe6..d55094a11 100644 --- a/types/test.ts +++ b/types/test.ts @@ -160,8 +160,8 @@ StellarSdk.TransactionBuilder.fromXDR(transaction.toXDR(), StellarSdk.Networks.T StellarSdk.TransactionBuilder.fromXDR(transaction.toEnvelope(), StellarSdk.Networks.TESTNET); // $ExpectType FeeBumpTransaction | Transaction, Operation[]> const sig = StellarSdk.xdr.DecoratedSignature.fromXDR(Buffer.of(1, 2)); // $ExpectType DecoratedSignature -sig.hint(); // $ExpectType Buffer -sig.signature(); // $ExpectType Buffer +sig.hint(); // $ExpectType Buffer +sig.signature(); // $ExpectType Buffer StellarSdk.Memo.none(); // $ExpectType Memo<"none"> StellarSdk.Memo.text('asdf'); // $ExpectType Memo<"text"> @@ -170,9 +170,9 @@ StellarSdk.Memo.return('asdf'); // $ExpectType Memo<"return"> StellarSdk.Memo.hash('asdf'); // $ExpectType Memo<"hash"> StellarSdk.Memo.none().value; // $ExpectType null StellarSdk.Memo.id('asdf').value; // $ExpectType string -StellarSdk.Memo.text('asdf').value; // $ExpectType string | Buffer -StellarSdk.Memo.return('asdf').value; // $ExpectType Buffer -StellarSdk.Memo.hash('asdf').value; // $ExpectType Buffer +StellarSdk.Memo.text('asdf').value; // $ExpectType string | Buffer +StellarSdk.Memo.return('asdf').value; // $ExpectType Buffer +StellarSdk.Memo.hash('asdf').value; // $ExpectType Buffer const feeBumptransaction = StellarSdk.TransactionBuilder.buildFeeBumpTransaction(masterKey, "120", transaction, StellarSdk.Networks.TESTNET); // $ExpectType FeeBumpTransaction @@ -181,7 +181,7 @@ feeBumptransaction.innerTransaction; // $ExpectType Transaction, feeBumptransaction.fee; // $ExpectType string feeBumptransaction.toXDR(); // $ExpectType string feeBumptransaction.toEnvelope(); // $ExpectType TransactionEnvelope -feeBumptransaction.hash(); // $ExpectType Buffer +feeBumptransaction.hash(); // $ExpectType Buffer StellarSdk.TransactionBuilder.fromXDR(feeBumptransaction.toXDR(), StellarSdk.Networks.TESTNET); // $ExpectType FeeBumpTransaction | Transaction, Operation[]> StellarSdk.TransactionBuilder.fromXDR(feeBumptransaction.toEnvelope(), StellarSdk.Networks.TESTNET); // $ExpectType FeeBumpTransaction | Transaction, Operation[]> @@ -235,7 +235,7 @@ const op = StellarSdk.xdr.AllowTrustOp.fromXDR( ); op; // $ExpectType AllowTrustOp op.authorize(); // $ExpectType number -op.trustor().ed25519(); // $ExpectType Buffer +op.trustor().ed25519(); // $ExpectType Buffer op.trustor(); // $ExpectedType AccountId const e = StellarSdk.xdr.LedgerEntry.fromXDR( "AAAAAAAAAAC2LgFRDBZ3J52nLm30kq2iMgrO7dYzYAN3hvjtf1IHWg==", @@ -248,7 +248,7 @@ const a = StellarSdk.xdr.AccountEntry.fromXDR( 'base64' ); a; // $ExpectType AccountEntry -a.homeDomain(); // $ExpectType string | Buffer +a.homeDomain(); // $ExpectType string | Buffer const t = StellarSdk.xdr.TransactionV0.fromXDR( // tslint:disable:max-line-length '1bzMAeuKubyXUug/Xnyj1KYkv+cSUtCSvAczI2b459kAAABkAS/5cwAAABMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAsBL/lzAAAAFAAAAAA=', @@ -258,11 +258,11 @@ t; // $ExpectType TransactionV0 t.timeBounds(); // $ExpectType TimeBounds | null StellarSdk.xdr.Uint64.fromString("12"); // $ExpectType UnsignedHyper -StellarSdk.xdr.Int32.toXDR(-1); // $ExpectType Buffer -StellarSdk.xdr.Uint32.toXDR(1); // $ExpectType Buffer -StellarSdk.xdr.String32.toXDR("hellow world"); // $ExpectedType Buffer -StellarSdk.xdr.Hash.toXDR(Buffer.alloc(32)); // $ExpectedType Buffer -StellarSdk.xdr.Signature.toXDR(Buffer.alloc(9, 'a')); // $ExpectedType Buffer +StellarSdk.xdr.Int32.toXDR(-1); // $ExpectType Buffer +StellarSdk.xdr.Uint32.toXDR(1); // $ExpectType Buffer +StellarSdk.xdr.String32.toXDR("hellow world"); // $ExpectedType Buffer +StellarSdk.xdr.Hash.toXDR(Buffer.alloc(32)); // $ExpectedType Buffer +StellarSdk.xdr.Signature.toXDR(Buffer.alloc(9, 'a')); // $ExpectedType Buffer const change = StellarSdk.xdr.LedgerEntryChange.fromXDR( // tslint:disable:max-line-length @@ -270,7 +270,7 @@ const change = StellarSdk.xdr.LedgerEntryChange.fromXDR( 'base64' ); change; // $ExpectType LedgerEntryChange -const raw = StellarSdk.xdr.LedgerEntryChanges.toXDR([change]); // $ExpectType Buffer +const raw = StellarSdk.xdr.LedgerEntryChanges.toXDR([change]); // $ExpectType Buffer StellarSdk.xdr.LedgerEntryChanges.fromXDR(raw); // $ExpectType LedgerEntryChange[] StellarSdk.xdr.Asset.assetTypeNative(); // $ExpectType Asset @@ -318,25 +318,25 @@ const lpWithdraw = StellarSdk.xdr.LiquidityPoolWithdrawOp.fromXDR( ); lpWithdraw; // $ExpectType LiquidityPoolWithdrawOp -const pubkey = masterKey.rawPublicKey(); // $ExpectType Buffer -const seckey = masterKey.rawSecretKey(); // $ExpectType Buffer +const pubkey = masterKey.rawPublicKey(); // $ExpectType Buffer +const seckey = masterKey.rawSecretKey(); // $ExpectType Buffer const muxed = StellarSdk.encodeMuxedAccount(masterKey.publicKey(), '1'); // $ExpectType MuxedAccount -const muxkey = muxed.toXDR("raw"); // $ExpectType Buffer +const muxkey = muxed.toXDR("raw"); // $ExpectType Buffer let result = StellarSdk.StrKey.encodeEd25519PublicKey(pubkey); // $ExpectType string -StellarSdk.StrKey.decodeEd25519PublicKey(result); // $ExpectType Buffer +StellarSdk.StrKey.decodeEd25519PublicKey(result); // $ExpectType Buffer StellarSdk.StrKey.isValidEd25519PublicKey(result); // $ExpectType boolean result = StellarSdk.StrKey.encodeEd25519SecretSeed(seckey); // $ExpectType string -StellarSdk.StrKey.decodeEd25519SecretSeed(result); // $ExpectType Buffer +StellarSdk.StrKey.decodeEd25519SecretSeed(result); // $ExpectType Buffer StellarSdk.StrKey.isValidEd25519SecretSeed(result); // $ExpectType boolean result = StellarSdk.StrKey.encodeMed25519PublicKey(muxkey); // $ExpectType string -StellarSdk.StrKey.decodeMed25519PublicKey(result); // $ExpectType Buffer +StellarSdk.StrKey.decodeMed25519PublicKey(result); // $ExpectType Buffer StellarSdk.StrKey.isValidMed25519PublicKey(result); // $ExpectType boolean result = StellarSdk.StrKey.encodeSignedPayload(pubkey); // $ExpectType string -StellarSdk.StrKey.decodeSignedPayload(result); // $ExpectType Buffer +StellarSdk.StrKey.decodeSignedPayload(result); // $ExpectType Buffer StellarSdk.StrKey.isValidSignedPayload(result); // $ExpectType boolean const muxedAddr = StellarSdk.encodeMuxedAccountToAddress(muxed, true); // $ExpectType string diff --git a/vitest.config.mts b/vitest.config.mts new file mode 100644 index 000000000..e369a632a --- /dev/null +++ b/vitest.config.mts @@ -0,0 +1,8 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + include: ["test/**/*.test.ts"], + exclude: ["node_modules", "dist", "lib"], + }, +}); diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 3a6687934..000000000 --- a/yarn.lock +++ /dev/null @@ -1,7496 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/cli@^7.28.3": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.28.3.tgz#f33693753bc103ab0084a5776ccf8ab8a140038b" - integrity sha512-n1RU5vuCX0CsaqaXm9I0KUCNKNQMy5epmzl/xdSSm70bSqhg9GWhgeosypyQLc0bK24+Xpk1WGzZlI9pJtkZdg== - dependencies: - "@jridgewell/trace-mapping" "^0.3.28" - commander "^6.2.0" - convert-source-map "^2.0.0" - fs-readdir-recursive "^1.1.0" - glob "^7.2.0" - make-dir "^2.1.0" - slash "^2.0.0" - optionalDependencies: - "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" - chokidar "^3.6.0" - -"@babel/code-frame@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" - integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== - dependencies: - "@babel/helper-validator-identifier" "^7.27.1" - js-tokens "^4.0.0" - picocolors "^1.1.1" - -"@babel/compat-data@^7.27.2", "@babel/compat-data@^7.27.7", "@babel/compat-data@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.5.tgz#a8a4962e1567121ac0b3b487f52107443b455c7f" - integrity sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA== - -"@babel/core@^7.12.3", "@babel/core@^7.28.5", "@babel/core@^7.7.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.5.tgz#4c81b35e51e1b734f510c99b07dfbc7bbbb48f7e" - integrity sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.5" - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-module-transforms" "^7.28.3" - "@babel/helpers" "^7.28.4" - "@babel/parser" "^7.28.5" - "@babel/template" "^7.27.2" - "@babel/traverse" "^7.28.5" - "@babel/types" "^7.28.5" - "@jridgewell/remapping" "^2.3.5" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/eslint-parser@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.28.5.tgz#0b8883a4a1c2cbed7b3cd9d7765d80e8f480b9ae" - integrity sha512-fcdRcWahONYo+JRnJg1/AekOacGvKx12Gu0qXJXFi2WBqQA1i7+O5PaxRB7kxE/Op94dExnCiiar6T09pvdHpA== - dependencies: - "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.1" - -"@babel/eslint-plugin@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/eslint-plugin/-/eslint-plugin-7.27.1.tgz#5e7cfeaa7a7b506d0ee74c62244e4e6b7a7043f6" - integrity sha512-vOG/EipZbIAcREK6XI4JRO3B3uZr70/KIhsrNLO9RXcgLMaW0sTsBpNeTpQUyelB0HsbWd45NIsuTgD3mqr/Og== - dependencies: - eslint-rule-composer "^0.3.0" - -"@babel/generator@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.5.tgz#712722d5e50f44d07bc7ac9fe84438742dd61298" - integrity sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ== - dependencies: - "@babel/parser" "^7.28.5" - "@babel/types" "^7.28.5" - "@jridgewell/gen-mapping" "^0.3.12" - "@jridgewell/trace-mapping" "^0.3.28" - jsesc "^3.0.2" - -"@babel/helper-annotate-as-pure@^7.27.1", "@babel/helper-annotate-as-pure@^7.27.3": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz#f31fd86b915fc4daf1f3ac6976c59be7084ed9c5" - integrity sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== - dependencies: - "@babel/types" "^7.27.3" - -"@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": - version "7.27.2" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" - integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== - dependencies: - "@babel/compat-data" "^7.27.2" - "@babel/helper-validator-option" "^7.27.1" - browserslist "^4.24.0" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.27.1", "@babel/helper-create-class-features-plugin@^7.28.3": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz#472d0c28028850968979ad89f173594a6995da46" - integrity sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.3" - "@babel/helper-member-expression-to-functions" "^7.28.5" - "@babel/helper-optimise-call-expression" "^7.27.1" - "@babel/helper-replace-supers" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - "@babel/traverse" "^7.28.5" - semver "^6.3.1" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.27.1": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz#7c1ddd64b2065c7f78034b25b43346a7e19ed997" - integrity sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.3" - regexpu-core "^6.3.1" - semver "^6.3.1" - -"@babel/helper-define-polyfill-provider@^0.6.5": - version "0.6.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz#742ccf1cb003c07b48859fc9fa2c1bbe40e5f753" - integrity sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg== - dependencies: - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-plugin-utils" "^7.27.1" - debug "^4.4.1" - lodash.debounce "^4.0.8" - resolve "^1.22.10" - -"@babel/helper-globals@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" - integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== - -"@babel/helper-member-expression-to-functions@^7.27.1", "@babel/helper-member-expression-to-functions@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz#f3e07a10be37ed7a63461c63e6929575945a6150" - integrity sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg== - dependencies: - "@babel/traverse" "^7.28.5" - "@babel/types" "^7.28.5" - -"@babel/helper-module-imports@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" - integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== - dependencies: - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.28.3": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz#a2b37d3da3b2344fe085dab234426f2b9a2fa5f6" - integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw== - dependencies: - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" - "@babel/traverse" "^7.28.3" - -"@babel/helper-optimise-call-expression@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz#c65221b61a643f3e62705e5dd2b5f115e35f9200" - integrity sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== - dependencies: - "@babel/types" "^7.27.1" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" - integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== - -"@babel/helper-remap-async-to-generator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz#4601d5c7ce2eb2aea58328d43725523fcd362ce6" - integrity sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-wrap-function" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/helper-replace-supers@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz#b1ed2d634ce3bdb730e4b52de30f8cccfd692bc0" - integrity sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.27.1" - "@babel/helper-optimise-call-expression" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/helper-skip-transparent-expression-wrappers@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz#62bb91b3abba8c7f1fec0252d9dbea11b3ee7a56" - integrity sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== - dependencies: - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/helper-string-parser@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" - integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== - -"@babel/helper-validator-identifier@^7.27.1", "@babel/helper-validator-identifier@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" - integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== - -"@babel/helper-validator-option@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" - integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== - -"@babel/helper-wrap-function@^7.27.1": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz#fe4872092bc1438ffd0ce579e6f699609f9d0a7a" - integrity sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g== - dependencies: - "@babel/template" "^7.27.2" - "@babel/traverse" "^7.28.3" - "@babel/types" "^7.28.2" - -"@babel/helpers@^7.28.4": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.4.tgz#fe07274742e95bdf7cf1443593eeb8926ab63827" - integrity sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w== - dependencies: - "@babel/template" "^7.27.2" - "@babel/types" "^7.28.4" - -"@babel/parser@^7.14.7", "@babel/parser@^7.20.15", "@babel/parser@^7.27.2", "@babel/parser@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.5.tgz#0b0225ee90362f030efd644e8034c99468893b08" - integrity sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ== - dependencies: - "@babel/types" "^7.28.5" - -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz#fbde57974707bbfa0376d34d425ff4fa6c732421" - integrity sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.28.5" - -"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz#43f70a6d7efd52370eefbdf55ae03d91b293856d" - integrity sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz#beb623bd573b8b6f3047bd04c32506adc3e58a72" - integrity sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz#e134a5479eb2ba9c02714e8c1ebf1ec9076124fd" - integrity sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - "@babel/plugin-transform-optional-chaining" "^7.27.1" - -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.28.3": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz#373f6e2de0016f73caf8f27004f61d167743742a" - integrity sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.28.3" - -"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": - version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" - integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== - -"@babel/plugin-syntax-import-assertions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz#88894aefd2b03b5ee6ad1562a7c8e1587496aecd" - integrity sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-syntax-import-attributes@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz#34c017d54496f9b11b61474e7ea3dfd5563ffe07" - integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" - integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-arrow-functions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz#6e2061067ba3ab0266d834a9f94811196f2aba9a" - integrity sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-async-generator-functions@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz#1276e6c7285ab2cd1eccb0bc7356b7a69ff842c2" - integrity sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-remap-async-to-generator" "^7.27.1" - "@babel/traverse" "^7.28.0" - -"@babel/plugin-transform-async-to-generator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz#9a93893b9379b39466c74474f55af03de78c66e7" - integrity sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA== - dependencies: - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-remap-async-to-generator" "^7.27.1" - -"@babel/plugin-transform-block-scoped-functions@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz#558a9d6e24cf72802dd3b62a4b51e0d62c0f57f9" - integrity sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-block-scoping@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz#e0d3af63bd8c80de2e567e690a54e84d85eb16f6" - integrity sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-class-properties@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz#dd40a6a370dfd49d32362ae206ddaf2bb082a925" - integrity sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-class-static-block@^7.28.3": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz#d1b8e69b54c9993bc558203e1f49bfc979bfd852" - integrity sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.28.3" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-classes@^7.28.4": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz#75d66175486788c56728a73424d67cbc7473495c" - integrity sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.3" - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-globals" "^7.28.0" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-replace-supers" "^7.27.1" - "@babel/traverse" "^7.28.4" - -"@babel/plugin-transform-computed-properties@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz#81662e78bf5e734a97982c2b7f0a793288ef3caa" - integrity sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/template" "^7.27.1" - -"@babel/plugin-transform-destructuring@^7.28.0", "@babel/plugin-transform-destructuring@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz#b8402764df96179a2070bb7b501a1586cf8ad7a7" - integrity sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.28.5" - -"@babel/plugin-transform-dotall-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz#aa6821de864c528b1fecf286f0a174e38e826f4d" - integrity sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-duplicate-keys@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz#f1fbf628ece18e12e7b32b175940e68358f546d1" - integrity sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz#5043854ca620a94149372e69030ff8cb6a9eb0ec" - integrity sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-dynamic-import@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz#4c78f35552ac0e06aa1f6e3c573d67695e8af5a4" - integrity sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-explicit-resource-management@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz#45be6211b778dbf4b9d54c4e8a2b42fa72e09a1a" - integrity sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/plugin-transform-destructuring" "^7.28.0" - -"@babel/plugin-transform-exponentiation-operator@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz#7cc90a8170e83532676cfa505278e147056e94fe" - integrity sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-export-namespace-from@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz#71ca69d3471edd6daa711cf4dfc3400415df9c23" - integrity sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-for-of@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz#bc24f7080e9ff721b63a70ac7b2564ca15b6c40a" - integrity sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - -"@babel/plugin-transform-function-name@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz#4d0bf307720e4dce6d7c30fcb1fd6ca77bdeb3a7" - integrity sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ== - dependencies: - "@babel/helper-compilation-targets" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/plugin-transform-json-strings@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz#a2e0ce6ef256376bd527f290da023983527a4f4c" - integrity sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-literals@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz#baaefa4d10a1d4206f9dcdda50d7d5827bb70b24" - integrity sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-logical-assignment-operators@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz#d028fd6db8c081dee4abebc812c2325e24a85b0e" - integrity sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-member-expression-literals@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz#37b88ba594d852418e99536f5612f795f23aeaf9" - integrity sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-modules-amd@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz#a4145f9d87c2291fe2d05f994b65dba4e3e7196f" - integrity sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA== - dependencies: - "@babel/helper-module-transforms" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-modules-commonjs@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz#8e44ed37c2787ecc23bdc367f49977476614e832" - integrity sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw== - dependencies: - "@babel/helper-module-transforms" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-modules-systemjs@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz#7439e592a92d7670dfcb95d0cbc04bd3e64801d2" - integrity sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew== - dependencies: - "@babel/helper-module-transforms" "^7.28.3" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-validator-identifier" "^7.28.5" - "@babel/traverse" "^7.28.5" - -"@babel/plugin-transform-modules-umd@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz#63f2cf4f6dc15debc12f694e44714863d34cd334" - integrity sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w== - dependencies: - "@babel/helper-module-transforms" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz#f32b8f7818d8fc0cc46ee20a8ef75f071af976e1" - integrity sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-new-target@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz#259c43939728cad1706ac17351b7e6a7bea1abeb" - integrity sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-nullish-coalescing-operator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz#4f9d3153bf6782d73dd42785a9d22d03197bc91d" - integrity sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-numeric-separator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz#614e0b15cc800e5997dadd9bd6ea524ed6c819c6" - integrity sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-object-rest-spread@^7.28.4": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz#9ee1ceca80b3e6c4bac9247b2149e36958f7f98d" - integrity sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew== - dependencies: - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/plugin-transform-destructuring" "^7.28.0" - "@babel/plugin-transform-parameters" "^7.27.7" - "@babel/traverse" "^7.28.4" - -"@babel/plugin-transform-object-super@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz#1c932cd27bf3874c43a5cac4f43ebf970c9871b5" - integrity sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-replace-supers" "^7.27.1" - -"@babel/plugin-transform-optional-catch-binding@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz#84c7341ebde35ccd36b137e9e45866825072a30c" - integrity sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-optional-chaining@^7.27.1", "@babel/plugin-transform-optional-chaining@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz#8238c785f9d5c1c515a90bf196efb50d075a4b26" - integrity sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - -"@babel/plugin-transform-parameters@^7.27.7": - version "7.27.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz#1fd2febb7c74e7d21cf3b05f7aebc907940af53a" - integrity sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-private-methods@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz#fdacbab1c5ed81ec70dfdbb8b213d65da148b6af" - integrity sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-private-property-in-object@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz#4dbbef283b5b2f01a21e81e299f76e35f900fb11" - integrity sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-property-literals@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz#07eafd618800591e88073a0af1b940d9a42c6424" - integrity sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-regenerator@^7.28.4": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz#9d3fa3bebb48ddd0091ce5729139cd99c67cea51" - integrity sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-regexp-modifiers@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz#df9ba5577c974e3f1449888b70b76169998a6d09" - integrity sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-reserved-words@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz#40fba4878ccbd1c56605a4479a3a891ac0274bb4" - integrity sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-shorthand-properties@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz#532abdacdec87bfee1e0ef8e2fcdee543fe32b90" - integrity sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-spread@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz#1a264d5fc12750918f50e3fe3e24e437178abb08" - integrity sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - -"@babel/plugin-transform-sticky-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz#18984935d9d2296843a491d78a014939f7dcd280" - integrity sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-template-literals@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz#1a0eb35d8bb3e6efc06c9fd40eb0bcef548328b8" - integrity sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-typeof-symbol@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz#70e966bb492e03509cf37eafa6dcc3051f844369" - integrity sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-unicode-escapes@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz#3e3143f8438aef842de28816ece58780190cf806" - integrity sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-unicode-property-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz#bdfe2d3170c78c5691a3c3be934c8c0087525956" - integrity sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-unicode-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz#25948f5c395db15f609028e370667ed8bae9af97" - integrity sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-unicode-sets-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz#6ab706d10f801b5c72da8bb2548561fa04193cd1" - integrity sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/preset-env@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.28.5.tgz#82dd159d1563f219a1ce94324b3071eb89e280b0" - integrity sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg== - dependencies: - "@babel/compat-data" "^7.28.5" - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-validator-option" "^7.27.1" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.28.5" - "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.28.3" - "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions" "^7.27.1" - "@babel/plugin-syntax-import-attributes" "^7.27.1" - "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.27.1" - "@babel/plugin-transform-async-generator-functions" "^7.28.0" - "@babel/plugin-transform-async-to-generator" "^7.27.1" - "@babel/plugin-transform-block-scoped-functions" "^7.27.1" - "@babel/plugin-transform-block-scoping" "^7.28.5" - "@babel/plugin-transform-class-properties" "^7.27.1" - "@babel/plugin-transform-class-static-block" "^7.28.3" - "@babel/plugin-transform-classes" "^7.28.4" - "@babel/plugin-transform-computed-properties" "^7.27.1" - "@babel/plugin-transform-destructuring" "^7.28.5" - "@babel/plugin-transform-dotall-regex" "^7.27.1" - "@babel/plugin-transform-duplicate-keys" "^7.27.1" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.27.1" - "@babel/plugin-transform-dynamic-import" "^7.27.1" - "@babel/plugin-transform-explicit-resource-management" "^7.28.0" - "@babel/plugin-transform-exponentiation-operator" "^7.28.5" - "@babel/plugin-transform-export-namespace-from" "^7.27.1" - "@babel/plugin-transform-for-of" "^7.27.1" - "@babel/plugin-transform-function-name" "^7.27.1" - "@babel/plugin-transform-json-strings" "^7.27.1" - "@babel/plugin-transform-literals" "^7.27.1" - "@babel/plugin-transform-logical-assignment-operators" "^7.28.5" - "@babel/plugin-transform-member-expression-literals" "^7.27.1" - "@babel/plugin-transform-modules-amd" "^7.27.1" - "@babel/plugin-transform-modules-commonjs" "^7.27.1" - "@babel/plugin-transform-modules-systemjs" "^7.28.5" - "@babel/plugin-transform-modules-umd" "^7.27.1" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.27.1" - "@babel/plugin-transform-new-target" "^7.27.1" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.27.1" - "@babel/plugin-transform-numeric-separator" "^7.27.1" - "@babel/plugin-transform-object-rest-spread" "^7.28.4" - "@babel/plugin-transform-object-super" "^7.27.1" - "@babel/plugin-transform-optional-catch-binding" "^7.27.1" - "@babel/plugin-transform-optional-chaining" "^7.28.5" - "@babel/plugin-transform-parameters" "^7.27.7" - "@babel/plugin-transform-private-methods" "^7.27.1" - "@babel/plugin-transform-private-property-in-object" "^7.27.1" - "@babel/plugin-transform-property-literals" "^7.27.1" - "@babel/plugin-transform-regenerator" "^7.28.4" - "@babel/plugin-transform-regexp-modifiers" "^7.27.1" - "@babel/plugin-transform-reserved-words" "^7.27.1" - "@babel/plugin-transform-shorthand-properties" "^7.27.1" - "@babel/plugin-transform-spread" "^7.27.1" - "@babel/plugin-transform-sticky-regex" "^7.27.1" - "@babel/plugin-transform-template-literals" "^7.27.1" - "@babel/plugin-transform-typeof-symbol" "^7.27.1" - "@babel/plugin-transform-unicode-escapes" "^7.27.1" - "@babel/plugin-transform-unicode-property-regex" "^7.27.1" - "@babel/plugin-transform-unicode-regex" "^7.27.1" - "@babel/plugin-transform-unicode-sets-regex" "^7.27.1" - "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.14" - babel-plugin-polyfill-corejs3 "^0.13.0" - babel-plugin-polyfill-regenerator "^0.6.5" - core-js-compat "^3.43.0" - semver "^6.3.1" - -"@babel/preset-modules@0.1.6-no-external-plugins": - version "0.1.6-no-external-plugins" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" - integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/register@^7.28.3": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.28.3.tgz#abd8a3753480c799bdaf9c9092d6745d16e052c2" - integrity sha512-CieDOtd8u208eI49bYl4z1J22ySFw87IGwE+IswFEExH7e3rLgKb0WNQeumnacQ1+VoDJLYI5QFA3AJZuyZQfA== - dependencies: - clone-deep "^4.0.1" - find-cache-dir "^2.0.0" - make-dir "^2.1.0" - pirates "^4.0.6" - source-map-support "^0.5.16" - -"@babel/template@^7.27.1", "@babel/template@^7.27.2": - version "7.27.2" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" - integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/parser" "^7.27.2" - "@babel/types" "^7.27.1" - -"@babel/traverse@^7.27.1", "@babel/traverse@^7.28.0", "@babel/traverse@^7.28.3", "@babel/traverse@^7.28.4", "@babel/traverse@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.5.tgz#450cab9135d21a7a2ca9d2d35aa05c20e68c360b" - integrity sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.5" - "@babel/helper-globals" "^7.28.0" - "@babel/parser" "^7.28.5" - "@babel/template" "^7.27.2" - "@babel/types" "^7.28.5" - debug "^4.3.1" - -"@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.28.5", "@babel/types@^7.4.4": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.5.tgz#10fc405f60897c35f07e85493c932c7b5ca0592b" - integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== - dependencies: - "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.28.5" - -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@definitelytyped/dts-critic@0.0.178": - version "0.0.178" - resolved "https://registry.yarnpkg.com/@definitelytyped/dts-critic/-/dts-critic-0.0.178.tgz#79e82ef35615b1534da979eb925a6130e1977d94" - integrity sha512-1JiY6giD2qLYxDPSWPbZiICzmTX+cHBNMXf09SeY6CJX0kZPcAkX+Uhc64HSqlhutECRWy7SdQCp/NP3xVOt4Q== - dependencies: - "@definitelytyped/header-parser" "^0.0.178" - command-exists "^1.2.8" - rimraf "^3.0.2" - semver "^7.5.2" - tmp "^0.2.1" - yargs "^15.3.1" - -"@definitelytyped/dtslint@^0.0.182": - version "0.0.182" - resolved "https://registry.yarnpkg.com/@definitelytyped/dtslint/-/dtslint-0.0.182.tgz#7b8cffcccbcd8725cdfeac916f757e3cbfd305d2" - integrity sha512-88t3yXrqXQbw+KmAY7D+PHJnC2BTzEZPxy7UvtksqrDL1RWLUxXKuG33/+0w36T3qDsdQTiqNBdLbAI+uzxsEA== - dependencies: - "@definitelytyped/dts-critic" "0.0.178" - "@definitelytyped/header-parser" "0.0.178" - "@definitelytyped/typescript-versions" "0.0.178" - "@definitelytyped/utils" "0.0.178" - "@typescript-eslint/eslint-plugin" "^5.55.0" - "@typescript-eslint/parser" "^5.55.0" - "@typescript-eslint/types" "^5.56.0" - "@typescript-eslint/typescript-estree" "^5.55.0" - "@typescript-eslint/utils" "^5.55.0" - eslint "^8.17.0" - fs-extra "^6.0.1" - json-stable-stringify "^1.0.1" - strip-json-comments "^2.0.1" - tslint "5.14.0" - yargs "^15.1.0" - -"@definitelytyped/header-parser@0.0.178", "@definitelytyped/header-parser@^0.0.178": - version "0.0.178" - resolved "https://registry.yarnpkg.com/@definitelytyped/header-parser/-/header-parser-0.0.178.tgz#2cfd170a33b014d686135673fa7fac837cfe5556" - integrity sha512-16FFuaWW2Hq+a0Abyt+9gvPAT0w/ezy4eph3RbtLSqxH3T/UHDla1jgnp1DMvfNeBWaIqHxcr+Vrr7BPquw7mw== - dependencies: - "@definitelytyped/typescript-versions" "^0.0.178" - "@types/parsimmon" "^1.10.1" - parsimmon "^1.13.0" - -"@definitelytyped/typescript-versions@0.0.178", "@definitelytyped/typescript-versions@^0.0.178": - version "0.0.178" - resolved "https://registry.yarnpkg.com/@definitelytyped/typescript-versions/-/typescript-versions-0.0.178.tgz#98a92f2251f18b32122e808b968ca8e009d3b123" - integrity sha512-pPXy3z5gE4xnVgqIRApFcQ6M6kqtRK1gnqyGx/I0Yo1CH8RAsRvumCDB/KiZmQDpCHiy//E9dOIUFdquvC5t7g== - -"@definitelytyped/utils@0.0.178": - version "0.0.178" - resolved "https://registry.yarnpkg.com/@definitelytyped/utils/-/utils-0.0.178.tgz#f403be41816690246a4e0244d125a0084b16462a" - integrity sha512-nYg3E51XpTodS0/5w5r1wM/DhPYhyqa9BP8ili4XgB5s9j4v4mDPX9Jwjns2q24derBvyhdUpzshKDh43aqwZw== - dependencies: - "@definitelytyped/typescript-versions" "^0.0.178" - "@qiwi/npm-registry-client" "^8.9.1" - "@types/node" "^14.14.35" - charm "^1.0.2" - fs-extra "^8.1.0" - fstream "^1.0.12" - tar "^6.1.11" - tar-stream "^2.1.4" - -"@discoveryjs/json-ext@^0.5.0": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" - integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== - -"@eslint-community/eslint-utils@^4.2.0": - version "4.9.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz#7308df158e064f0dd8b8fdb58aa14fa2a7f913b3" - integrity sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g== - dependencies: - eslint-visitor-keys "^3.4.3" - -"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b" - integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew== - -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.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" - -"@eslint/js@8.57.1": - version "8.57.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" - integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== - -"@humanwhocodes/config-array@^0.13.0": - version "0.13.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" - integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== - dependencies: - "@humanwhocodes/object-schema" "^2.0.3" - debug "^4.3.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" - integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/nyc-config-babel@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/nyc-config-babel/-/nyc-config-babel-3.0.0.tgz#56d0a5250d92b9455c7507775fcb5cb7215fee29" - integrity sha512-mPnSPXfTRWCzYsT64PnuPlce6/hGMCdVVMgU2FenXipbUd+FDwUlqlTihXxpxWzcNVOp8M+L1t/kIcgoC8A7hg== - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== - dependencies: - "@sinclair/typebox" "^0.27.8" - -"@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== - dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": - version "0.3.13" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" - integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.0" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/remapping@^2.3.5": - version "2.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" - integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/source-map@^0.3.3": - version "0.3.11" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba" - integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28": - version "0.3.31" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" - integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@jsdoc/salty@^0.2.1": - version "0.2.9" - resolved "https://registry.yarnpkg.com/@jsdoc/salty/-/salty-0.2.9.tgz#4d8c147f7ca011532681ce86352a77a0178f1dec" - integrity sha512-yYxMVH7Dqw6nO0d5NIV8OQWnitU8k6vXH8NtgqAfIa/IUqRMxRv/NUJJ08VEKbAakwxlgBl5PJdrU0dMPStsnw== - dependencies: - lodash "^4.17.21" - -"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": - version "2.1.8-no-fsevents.3" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" - integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== - -"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": - version "5.1.1-v1" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" - integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== - dependencies: - eslint-scope "5.1.1" - -"@noble/curves@^1.9.6": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.7.tgz#79d04b4758a43e4bca2cbdc62e7771352fa6b951" - integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== - dependencies: - "@noble/hashes" "1.8.0" - -"@noble/hashes@1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" - integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@pkgr/core@^0.2.9": - version "0.2.9" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.9.tgz#d229a7b7f9dac167a156992ef23c7f023653f53b" - integrity sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA== - -"@qiwi/npm-registry-client@^8.9.1": - version "8.9.1" - resolved "https://registry.yarnpkg.com/@qiwi/npm-registry-client/-/npm-registry-client-8.9.1.tgz#1769f6501a436ec39c496ca0a9a2fab9db7718df" - integrity sha512-rZF+mG+NfijR0SHphhTLHRr4aM4gtfdwoAMY6we2VGQam8vkN1cxGG1Lg/Llrj8Dd0Mu6VjdFQRyMMRZxtZR2A== - dependencies: - concat-stream "^2.0.0" - graceful-fs "^4.2.4" - normalize-package-data "~1.0.1 || ^2.0.0 || ^3.0.0" - npm-package-arg "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^8.0.0" - once "^1.4.0" - request "^2.88.2" - retry "^0.12.0" - safe-buffer "^5.2.1" - semver "2 >=2.2.1 || 3.x || 4 || 5 || 7" - slide "^1.1.6" - ssri "^8.0.0" - optionalDependencies: - npmlog "2 || ^3.1.0 || ^4.0.0" - -"@rtsao/scc@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" - integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== - -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - -"@sinonjs/commons@^3.0.0", "@sinonjs/commons@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" - integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^10.3.0": - version "10.3.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" - integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== - dependencies: - "@sinonjs/commons" "^3.0.0" - -"@sinonjs/fake-timers@^11.2.2": - version "11.3.1" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-11.3.1.tgz#51d6e8d83ca261ff02c0ab0e68e9db23d5cd5999" - integrity sha512-EVJO7nW5M/F5Tur0Rf2z/QoMo+1Ia963RiMtapiQrEWvY0iBUvADo8Beegwjpnle5BHkyHuoxSTW3jF43H1XRA== - dependencies: - "@sinonjs/commons" "^3.0.1" - -"@sinonjs/samsam@^8.0.0": - version "8.0.3" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-8.0.3.tgz#eb6ffaef421e1e27783cc9b52567de20cb28072d" - integrity sha512-hw6HbX+GyVZzmaYNh82Ecj1vdGZrqVIn/keDTg63IgAwiQPO+xCz99uG6Woqgb4tM0mUiFENKZ4cqd7IX94AXQ== - dependencies: - "@sinonjs/commons" "^3.0.1" - type-detect "^4.1.0" - -"@sinonjs/text-encoding@^0.7.2": - version "0.7.3" - resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz#282046f03e886e352b2d5f5da5eb755e01457f3f" - integrity sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA== - -"@socket.io/component-emitter@~3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2" - integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== - -"@stellar/js-xdr@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@stellar/js-xdr/-/js-xdr-3.1.2.tgz#db7611135cf21e989602fd72f513c3bed621bc74" - integrity sha512-VVolPL5goVEIsvuGqDc5uiKxV03lzfWdvYg1KikvwheDmTBO68CKDji3bAZ/kppZrx5iTA8z3Ld5yuytcvhvOQ== - -"@tsconfig/node10@^1.0.7": - version "1.0.12" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" - integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@types/cors@^2.8.12": - version "2.8.19" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.19.tgz#d93ea2673fd8c9f697367f5eeefc2bbfa94f0342" - integrity sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg== - dependencies: - "@types/node" "*" - -"@types/eslint-scope@^3.7.7": - version "3.7.7" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" - integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "9.6.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" - integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/eslint@^8.56.10": - version "8.56.12" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.12.tgz#1657c814ffeba4d2f84c0d4ba0f44ca7ea1ca53a" - integrity sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@^1.0.8": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" - integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== - -"@types/istanbul-lib-report@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" - integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" - integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.9": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@types/linkify-it@^5": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-5.0.0.tgz#21413001973106cda1c3a9b91eedd4ccd5469d76" - integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== - -"@types/markdown-it@^14.1.1": - version "14.1.2" - resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-14.1.2.tgz#57f2532a0800067d9b934f3521429a2e8bfb4c61" - integrity sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog== - dependencies: - "@types/linkify-it" "^5" - "@types/mdurl" "^2" - -"@types/mdurl@^2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" - integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== - -"@types/node@*", "@types/node@>=10.0.0": - version "24.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.1.tgz#91e92182c93db8bd6224fca031e2370cef9a8f01" - integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== - dependencies: - undici-types "~7.16.0" - -"@types/node@^14.14.35": - version "14.18.63" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.63.tgz#1788fa8da838dbb5f9ea994b834278205db6ca2b" - integrity sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ== - -"@types/node@^20.14.11": - version "20.19.25" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.25.tgz#467da94a2fd966b57cc39c357247d68047611190" - integrity sha512-ZsJzA5thDQMSQO788d7IocwwQbI8B5OPzmqNvpf3NY/+MHDAS759Wo0gd2WQeXYt5AAAQjzcrTVC6SKCuYgoCQ== - dependencies: - undici-types "~6.21.0" - -"@types/parsimmon@^1.10.1": - version "1.10.9" - resolved "https://registry.yarnpkg.com/@types/parsimmon/-/parsimmon-1.10.9.tgz#14e60db223c1d213fea0e15985d480b5cfe1789a" - integrity sha512-O2M2x1w+m7gWLen8i5DOy6tWRnbRcsW6Pke3j3HAsJUrPb4g0MgjksIUm2aqUtCYxy7Qjr3CzjjwQBzhiGn46A== - -"@types/semver@^7.3.12": - version "7.7.1" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.7.1.tgz#3ce3af1a5524ef327d2da9e4fd8b6d95c8d70528" - integrity sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA== - -"@types/yargs-parser@*": - version "21.0.3" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" - integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== - -"@types/yargs@^17.0.8": - version "17.0.35" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.35.tgz#07013e46aa4d7d7d50a49e15604c1c5340d4eb24" - integrity sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg== - dependencies: - "@types/yargs-parser" "*" - -"@typescript-eslint/eslint-plugin@^5.55.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" - integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== - dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/type-utils" "5.62.0" - "@typescript-eslint/utils" "5.62.0" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^5.55.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" - integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== - dependencies: - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - debug "^4.3.4" - -"@typescript-eslint/parser@^6.20.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" - integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== - dependencies: - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" - integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - -"@typescript-eslint/scope-manager@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" - integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== - dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - -"@typescript-eslint/type-utils@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" - integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== - dependencies: - "@typescript-eslint/typescript-estree" "5.62.0" - "@typescript-eslint/utils" "5.62.0" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.62.0", "@typescript-eslint/types@^5.56.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" - integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== - -"@typescript-eslint/types@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" - integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== - -"@typescript-eslint/typescript-estree@5.62.0", "@typescript-eslint/typescript-estree@^5.55.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" - integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/typescript-estree@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" - integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== - dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/utils@5.62.0", "@typescript-eslint/utils@^5.55.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" - integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" - integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== - dependencies: - "@typescript-eslint/types" "5.62.0" - eslint-visitor-keys "^3.3.0" - -"@typescript-eslint/visitor-keys@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" - integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== - dependencies: - "@typescript-eslint/types" "6.21.0" - eslint-visitor-keys "^3.4.1" - -"@ungap/structured-clone@^1.2.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" - integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== - -"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" - integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== - dependencies: - "@webassemblyjs/helper-numbers" "1.13.2" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - -"@webassemblyjs/floating-point-hex-parser@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" - integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== - -"@webassemblyjs/helper-api-error@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" - integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== - -"@webassemblyjs/helper-buffer@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" - integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== - -"@webassemblyjs/helper-numbers@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" - integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.13.2" - "@webassemblyjs/helper-api-error" "1.13.2" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" - integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== - -"@webassemblyjs/helper-wasm-section@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" - integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/wasm-gen" "1.14.1" - -"@webassemblyjs/ieee754@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" - integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" - integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" - integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== - -"@webassemblyjs/wasm-edit@^1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" - integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/helper-wasm-section" "1.14.1" - "@webassemblyjs/wasm-gen" "1.14.1" - "@webassemblyjs/wasm-opt" "1.14.1" - "@webassemblyjs/wasm-parser" "1.14.1" - "@webassemblyjs/wast-printer" "1.14.1" - -"@webassemblyjs/wasm-gen@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" - integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/ieee754" "1.13.2" - "@webassemblyjs/leb128" "1.13.2" - "@webassemblyjs/utf8" "1.13.2" - -"@webassemblyjs/wasm-opt@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" - integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/wasm-gen" "1.14.1" - "@webassemblyjs/wasm-parser" "1.14.1" - -"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" - integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-api-error" "1.13.2" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/ieee754" "1.13.2" - "@webassemblyjs/leb128" "1.13.2" - "@webassemblyjs/utf8" "1.13.2" - -"@webassemblyjs/wast-printer@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" - integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@xtuc/long" "4.2.2" - -"@webpack-cli/configtest@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" - integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== - -"@webpack-cli/info@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" - integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== - -"@webpack-cli/serve@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" - integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -accepts@~1.3.4: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-import-phases@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz#16eb850ba99a056cb7cbfe872ffb8972e18c8bd7" - integrity sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ== - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^8.1.1: - version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.15.0, acorn@^8.4.1, acorn@^8.9.0: - version "8.15.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv-keywords@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" - integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== - dependencies: - fast-deep-equal "^3.1.3" - -ajv@^6.12.3, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - 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" - -ajv@^8.0.0, ajv@^8.9.0: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" - integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== - dependencies: - fast-deep-equal "^3.1.3" - fast-uri "^3.0.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - -ansi-colors@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -ansi-escapes@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-7.2.0.tgz#31b25afa3edd3efc09d98c2fee831d460ff06b49" - integrity sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw== - dependencies: - environment "^1.0.0" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" - integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.0.0, ansi-styles@^6.2.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" - integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -append-transform@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-2.0.0.tgz#99d9d29c7b38391e6f428d28ce136551f0b77e12" - integrity sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg== - dependencies: - default-require-extensions "^3.0.0" - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -archy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== - -are-we-there-yet@~1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" - integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz#384d12a37295aec3769ab022ad323a18a51ccf8b" - integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== - dependencies: - call-bound "^1.0.3" - is-array-buffer "^3.0.5" - -array-includes@^3.1.9: - version "3.1.9" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.9.tgz#1f0ccaa08e90cdbc3eb433210f903ad0f17c3f3a" - integrity sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.4" - define-properties "^1.2.1" - es-abstract "^1.24.0" - es-object-atoms "^1.1.1" - get-intrinsic "^1.3.0" - is-string "^1.1.1" - math-intrinsics "^1.1.0" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.findlastindex@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz#cfa1065c81dcb64e34557c9b81d012f6a421c564" - integrity sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.4" - define-properties "^1.2.1" - es-abstract "^1.23.9" - es-errors "^1.3.0" - es-object-atoms "^1.1.1" - es-shim-unscopables "^1.1.0" - -array.prototype.flat@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz#534aaf9e6e8dd79fb6b9a9917f839ef1ec63afe5" - integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== - dependencies: - call-bind "^1.0.8" - define-properties "^1.2.1" - es-abstract "^1.23.5" - es-shim-unscopables "^1.0.2" - -array.prototype.flatmap@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz#712cc792ae70370ae40586264629e33aab5dd38b" - integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== - dependencies: - call-bind "^1.0.8" - define-properties "^1.2.1" - es-abstract "^1.23.5" - es-shim-unscopables "^1.0.2" - -arraybuffer.prototype.slice@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz#9d760d84dbdd06d0cbf92c8849615a1a7ab3183c" - integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== - dependencies: - array-buffer-byte-length "^1.0.1" - call-bind "^1.0.8" - define-properties "^1.2.1" - es-abstract "^1.23.5" - es-errors "^1.3.0" - get-intrinsic "^1.2.6" - is-array-buffer "^3.0.4" - -asn1.js@^4.10.1: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -assert@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd" - integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== - dependencies: - call-bind "^1.0.2" - is-nan "^1.3.2" - object-is "^1.1.5" - object.assign "^4.1.4" - util "^0.12.5" - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -async-function@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b" - integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -available-typed-arrays@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" - integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== - dependencies: - possible-typed-array-names "^1.0.0" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.13.2" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.2.tgz#0aa167216965ac9474ccfa83892cfb6b3e1e52ef" - integrity sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw== - -babel-code-frame@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g== - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-loader@^9.2.1: - version "9.2.1" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.2.1.tgz#04c7835db16c246dd19ba0914418f3937797587b" - integrity sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA== - dependencies: - find-cache-dir "^4.0.0" - schema-utils "^4.0.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-polyfill-corejs2@^0.4.14: - version "0.4.14" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz#8101b82b769c568835611542488d463395c2ef8f" - integrity sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg== - dependencies: - "@babel/compat-data" "^7.27.7" - "@babel/helper-define-polyfill-provider" "^0.6.5" - semver "^6.3.1" - -babel-plugin-polyfill-corejs3@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz#bb7f6aeef7addff17f7602a08a6d19a128c30164" - integrity sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.5" - core-js-compat "^3.43.0" - -babel-plugin-polyfill-regenerator@^0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz#32752e38ab6f6767b92650347bf26a31b16ae8c5" - integrity sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.5" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base32.js@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/base32.js/-/base32.js-0.1.0.tgz#b582dec693c2f11e893cf064ee6ac5b6131a2202" - integrity sha512-n3TkB02ixgBOhTvANakDb4xaMXnYUVkNoRFJjQflcqMQhyEKxEHdj3E6N8t8sUQ0mjH/3/JxzlXuz3ul/J90pQ== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base64id@2.0.0, base64id@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" - integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== - -baseline-browser-mapping@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.0.tgz#b4b91c7ec4deac14527bc5495b914fb9db1a251a" - integrity sha512-Mh++g+2LPfzZToywfE1BUzvZbfOY52Nil0rn9H1CPC5DJ7fX+Vir7nToBeoiSbB1zTNeGYbELEvJESujgGrzXw== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - -bignumber.js@^9.3.1: - version "9.3.1" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.3.1.tgz#759c5aaddf2ffdc4f154f7b493e1c8770f88c4d7" - integrity sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ== - -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -bl@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.2.tgz#3d8fed6796c24e177737f7cc5172ee04ef39ec99" - integrity sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw== - -bn.js@^5.2.1, bn.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.2.tgz#82c09f9ebbb17107cd72cb7fd39bd1f9d0aaa566" - integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== - -body-parser@^1.19.0: - version "1.20.4" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.4.tgz#f8e20f4d06ca8a50a71ed329c15dccad1cdc547f" - integrity sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA== - dependencies: - bytes "~3.1.2" - content-type "~1.0.5" - debug "2.6.9" - depd "2.0.0" - destroy "~1.2.0" - http-errors "~2.0.1" - iconv-lite "~0.4.24" - on-finished "~2.4.1" - qs "~6.14.0" - raw-body "~2.5.3" - type-is "~1.6.18" - unpipe "~1.0.0" - -brace-expansion@^1.1.7: - version "1.1.12" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" - integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" - integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2, braces@^3.0.3, braces@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browser-stdout@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -browserify-aes@^1.0.4, browserify-aes@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.1.tgz#06e530907fe2949dc21fc3c2e2302e10b1437238" - integrity sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ== - dependencies: - bn.js "^5.2.1" - randombytes "^2.1.0" - safe-buffer "^5.2.1" - -browserify-sign@^4.2.3: - version "4.2.5" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.5.tgz#3979269fa8af55ba18aac35deef11b45515cd27d" - integrity sha512-C2AUdAJg6rlM2W5QMp2Q4KGQMVBwR1lIimTsUnutJ8bMpW5B52pGpR2gEnNBNwijumDo5FojQ0L9JrXA8m4YEw== - dependencies: - bn.js "^5.2.2" - browserify-rsa "^4.1.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.6.1" - inherits "^2.0.4" - parse-asn1 "^5.1.9" - readable-stream "^2.3.8" - safe-buffer "^5.2.1" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.24.0, browserslist@^4.28.0, browserslist@^4.28.1: - version "4.28.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.1.tgz#7f534594628c53c63101079e27e40de490456a95" - integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA== - dependencies: - baseline-browser-mapping "^2.9.0" - caniuse-lite "^1.0.30001759" - electron-to-chromium "^1.5.263" - node-releases "^2.0.27" - update-browserslist-db "^1.2.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== - -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ== - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== - -builtins@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== - -bytes@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -caching-transform@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f" - integrity sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA== - dependencies: - hasha "^5.0.0" - make-dir "^3.0.0" - package-hash "^4.0.0" - write-file-atomic "^3.0.0" - -call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" - integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.7, call-bind@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" - integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== - dependencies: - call-bind-apply-helpers "^1.0.0" - es-define-property "^1.0.0" - get-intrinsic "^1.2.4" - set-function-length "^1.2.2" - -call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" - integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== - dependencies: - call-bind-apply-helpers "^1.0.2" - get-intrinsic "^1.3.0" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001759: - version "1.0.30001759" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001759.tgz#d569e7b010372c6b0ca3946e30dada0a2e9d5006" - integrity sha512-Pzfx9fOKoKvevQf8oCXoyNRQ5QyxJj+3O0Rqx2V5oxT61KGx8+n6hV/IUyJeifUci2clnmmKVpvtiqRzgiWjSw== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -catharsis@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.9.0.tgz#40382a168be0e6da308c277d3a2b3eb40c7d2121" - integrity sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A== - dependencies: - lodash "^4.17.15" - -chai-as-promised@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.2.tgz#70cd73b74afd519754161386421fb71832c6d041" - integrity sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw== - dependencies: - check-error "^1.0.2" - -chai@^4.3.10: - version "4.5.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.5.0.tgz#707e49923afdd9b13a8b0b47d33d732d13812fd8" - integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== - 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.1.0" - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - -charm@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/charm/-/charm-1.0.2.tgz#8add367153a6d9a581331052c4090991da995e35" - integrity sha512-wqW3VdPnlSWT4eRiYX+hcs+C6ViBPUWk1qTCd+37qw9kEm/a5n2qcyQDMBWvSYKN/ctqZzeXNQaeBjOetJJUkw== - dependencies: - inherits "^2.0.1" - -check-error@^1.0.2, check-error@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" - integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== - dependencies: - get-func-name "^2.0.2" - -chokidar@^3.5.1, chokidar@^3.5.3, chokidar@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - 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" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chrome-trace-event@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" - integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== - -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.7" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.7.tgz#bd094bfef42634ccfd9e13b9fc73274997111e39" - integrity sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA== - dependencies: - inherits "^2.0.4" - safe-buffer "^5.2.1" - to-buffer "^1.2.2" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-cursor@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38" - integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== - dependencies: - restore-cursor "^5.0.0" - -cli-truncate@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-4.0.0.tgz#6cc28a2924fee9e25ce91e973db56c7066e6172a" - integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== - dependencies: - slice-ansi "^5.0.0" - string-width "^7.0.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colorette@^2.0.14, colorette@^2.0.20: - version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - -colors@~0.6.0-1: - version "0.6.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" - integrity sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw== - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -command-exists@^1.2.8: - version "1.2.9" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" - integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== - -commander@2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - integrity sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A== - dependencies: - graceful-readlink ">= 1.0.0" - -commander@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== - -commander@^13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-13.1.0.tgz#776167db68c78f38dcce1f9b8d7b8b9a488abf46" - integrity sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw== - -commander@^2.12.1, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - -commander@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781" - integrity sha512-J2wnb6TKniXNOtoHS8TSrG9IOQluPrsmyAJ8oCUJOBmv+uLBCyPYAZkD2jFvw2DCzIXNnISIM01NIvr35TkBMQ== - -common-path-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" - integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -concat-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" - integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.0.2" - typedarray "^0.0.6" - -confusing-browser-globals@^1.0.10: - version "1.0.11" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" - integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== - -connect@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" - integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== - dependencies: - debug "2.6.9" - finalhandler "1.1.2" - parseurl "~1.3.3" - utils-merge "1.0.1" - -console-browserify@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== - -content-type@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -cookie@~0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" - integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== - -core-js-compat@^3.43.0: - version "3.47.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.47.0.tgz#698224bbdbb6f2e3f39decdda4147b161e3772a3" - integrity sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ== - dependencies: - browserslist "^4.28.0" - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cors@~2.8.5: - version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - -create-ecdh@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-env@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" - integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== - dependencies: - cross-spawn "^7.0.1" - -cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-browserify@^3.12.0: - version "3.12.1" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.1.tgz#bb8921bec9acc81633379aa8f52d69b0b69e0dac" - integrity sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ== - dependencies: - browserify-cipher "^1.0.1" - browserify-sign "^4.2.3" - create-ecdh "^4.0.4" - create-hash "^1.2.0" - create-hmac "^1.1.7" - diffie-hellman "^5.0.3" - hash-base "~3.0.4" - inherits "^2.0.4" - pbkdf2 "^3.1.2" - public-encrypt "^4.0.3" - randombytes "^2.1.0" - randomfill "^1.0.4" - -custom-event@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - integrity sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg== - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - -data-view-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz#211a03ba95ecaf7798a8c7198d79536211f88570" - integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - is-data-view "^1.0.2" - -data-view-byte-length@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz#9e80f7ca52453ce3e93d25a35318767ea7704735" - integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - is-data-view "^1.0.2" - -data-view-byte-offset@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz#068307f9b71ab76dbbe10291389e020856606191" - integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -date-format@^4.0.14: - version "4.0.14" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.14.tgz#7a8e584434fb169a521c8b7aa481f355810d9400" - integrity sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg== - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0, debug@^4.4.1: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: - version "4.3.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" - integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== - dependencies: - ms "^2.1.3" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^4.1.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" - integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== - dependencies: - type-detect "^4.0.0" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -default-require-extensions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-3.0.1.tgz#bfae00feeaeada68c2ae256c62540f60b80625bd" - integrity sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw== - dependencies: - strip-bom "^4.0.0" - -define-data-property@^1.0.1, define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" - 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" - -define-properties@^1.1.3, define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== - -depd@2.0.0, depd@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -des.js@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" - integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -di@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== - -diff@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diff@^5.1.0, diff@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" - integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== - -diffie-hellman@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-serialize@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - integrity sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ== - dependencies: - custom-event "~1.0.0" - ent "~2.2.0" - extend "^3.0.0" - void-elements "^2.0.0" - -domain-browser@^4.22.0: - version "4.23.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-4.23.0.tgz#427ebb91efcb070f05cffdfb8a4e9a6c25f8c94b" - integrity sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA== - -dunder-proto@^1.0.0, dunder-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" - integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== - dependencies: - call-bind-apply-helpers "^1.0.1" - es-errors "^1.3.0" - gopd "^1.2.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -electron-to-chromium@^1.5.263: - version "1.5.263" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.263.tgz#bec8f2887c30001dfacf415c136eae3b4386846a" - integrity sha512-DrqJ11Knd+lo+dv+lltvfMDLU27g14LMdH2b0O3Pio4uk0x+z7OR+JrmyacTPN2M8w3BrZ7/RTwG3R9B7irPlg== - -elliptic@^6.5.3, elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^10.3.0: - version "10.6.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.6.0.tgz#bf3d6e8f7f8fd22a65d9703475bc0147357a6b0d" - integrity sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -end-of-stream@^1.4.1: - version "1.4.5" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c" - integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg== - dependencies: - once "^1.4.0" - -engine.io-parser@~5.2.1: - version "5.2.3" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz#00dc5b97b1f233a23c9398d0209504cf5f94d92f" - integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q== - -engine.io@~6.6.0: - version "6.6.4" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.6.4.tgz#0a89a3e6b6c1d4b0c2a2a637495e7c149ec8d8ee" - integrity sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g== - dependencies: - "@types/cors" "^2.8.12" - "@types/node" ">=10.0.0" - accepts "~1.3.4" - base64id "2.0.0" - cookie "~0.7.2" - cors "~2.8.5" - debug "~4.3.1" - engine.io-parser "~5.2.1" - ws "~8.17.1" - -enhanced-resolve@^5.17.4: - version "5.18.4" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz#c22d33055f3952035ce6a144ce092447c525f828" - integrity sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -ent@~2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.2.tgz#22a5ed2fd7ce0cbcff1d1474cf4909a44bdb6e85" - integrity sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - punycode "^1.4.1" - safe-regex-test "^1.1.0" - -entities@^4.4.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -envinfo@^7.7.3: - version "7.21.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.21.0.tgz#04a251be79f92548541f37d13c8b6f22940c3bae" - integrity sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow== - -environment@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1" - integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== - -es-abstract@^1.23.2, es-abstract@^1.23.5, es-abstract@^1.23.9, es-abstract@^1.24.0: - version "1.24.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.24.0.tgz#c44732d2beb0acc1ed60df840869e3106e7af328" - integrity sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg== - dependencies: - array-buffer-byte-length "^1.0.2" - arraybuffer.prototype.slice "^1.0.4" - available-typed-arrays "^1.0.7" - call-bind "^1.0.8" - call-bound "^1.0.4" - data-view-buffer "^1.0.2" - data-view-byte-length "^1.0.2" - data-view-byte-offset "^1.0.1" - es-define-property "^1.0.1" - es-errors "^1.3.0" - es-object-atoms "^1.1.1" - es-set-tostringtag "^2.1.0" - es-to-primitive "^1.3.0" - function.prototype.name "^1.1.8" - get-intrinsic "^1.3.0" - get-proto "^1.0.1" - get-symbol-description "^1.1.0" - globalthis "^1.0.4" - gopd "^1.2.0" - has-property-descriptors "^1.0.2" - has-proto "^1.2.0" - has-symbols "^1.1.0" - hasown "^2.0.2" - internal-slot "^1.1.0" - is-array-buffer "^3.0.5" - is-callable "^1.2.7" - is-data-view "^1.0.2" - is-negative-zero "^2.0.3" - is-regex "^1.2.1" - is-set "^2.0.3" - is-shared-array-buffer "^1.0.4" - is-string "^1.1.1" - is-typed-array "^1.1.15" - is-weakref "^1.1.1" - math-intrinsics "^1.1.0" - object-inspect "^1.13.4" - object-keys "^1.1.1" - object.assign "^4.1.7" - own-keys "^1.0.1" - regexp.prototype.flags "^1.5.4" - safe-array-concat "^1.1.3" - safe-push-apply "^1.0.0" - safe-regex-test "^1.1.0" - set-proto "^1.0.0" - stop-iteration-iterator "^1.1.0" - string.prototype.trim "^1.2.10" - string.prototype.trimend "^1.0.9" - string.prototype.trimstart "^1.0.8" - typed-array-buffer "^1.0.3" - typed-array-byte-length "^1.0.3" - typed-array-byte-offset "^1.0.4" - typed-array-length "^1.0.7" - unbox-primitive "^1.1.0" - which-typed-array "^1.1.19" - -es-define-property@^1.0.0, es-define-property@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" - integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-module-lexer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.0.0.tgz#f657cd7a9448dcdda9c070a3cb75e5dc1e85f5b1" - integrity sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw== - -es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" - integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== - dependencies: - es-errors "^1.3.0" - -es-set-tostringtag@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" - integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== - dependencies: - es-errors "^1.3.0" - get-intrinsic "^1.2.6" - has-tostringtag "^1.0.2" - hasown "^2.0.2" - -es-shim-unscopables@^1.0.2, es-shim-unscopables@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz#438df35520dac5d105f3943d927549ea3b00f4b5" - integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw== - dependencies: - hasown "^2.0.2" - -es-to-primitive@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz#96c89c82cc49fd8794a24835ba3e1ff87f214e18" - integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== - dependencies: - is-callable "^1.2.7" - is-date-object "^1.0.5" - is-symbol "^1.0.4" - -es6-error@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== - -escalade@^3.1.1, escalade@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-config-airbnb-base@^15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236" - integrity sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig== - dependencies: - confusing-browser-globals "^1.0.10" - object.assign "^4.1.2" - object.entries "^1.1.5" - semver "^6.3.0" - -eslint-config-prettier@^9.1.0: - version "9.1.2" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.2.tgz#90deb4fa0259592df774b600dbd1d2249a78ce91" - integrity sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ== - -eslint-import-resolver-node@^0.3.9: - version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" - integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== - dependencies: - debug "^3.2.7" - is-core-module "^2.13.0" - resolve "^1.22.4" - -eslint-module-utils@^2.12.1: - version "2.12.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz#f76d3220bfb83c057651359295ab5854eaad75ff" - integrity sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw== - dependencies: - debug "^3.2.7" - -eslint-plugin-es@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" - integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== - dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" - -eslint-plugin-import@^2.31.0: - version "2.32.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz#602b55faa6e4caeaa5e970c198b5c00a37708980" - integrity sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA== - dependencies: - "@rtsao/scc" "^1.1.0" - array-includes "^3.1.9" - array.prototype.findlastindex "^1.2.6" - array.prototype.flat "^1.3.3" - array.prototype.flatmap "^1.3.3" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.12.1" - hasown "^2.0.2" - is-core-module "^2.16.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.fromentries "^2.0.8" - object.groupby "^1.0.3" - object.values "^1.2.1" - semver "^6.3.1" - string.prototype.trimend "^1.0.9" - tsconfig-paths "^3.15.0" - -eslint-plugin-node@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" - integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== - dependencies: - eslint-plugin-es "^3.0.0" - eslint-utils "^2.0.0" - ignore "^5.1.1" - minimatch "^3.0.4" - resolve "^1.10.1" - semver "^6.1.0" - -eslint-plugin-prefer-import@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-import/-/eslint-plugin-prefer-import-0.0.1.tgz#0df4e117da29109ef561d355ec19f41df0ada6f6" - integrity sha512-2OKD3Bjgqkn0BvEGRwpEDhjXPSXvT3CXmWIrIavwafOkQE8FLTvFybEBT9dm7P0kHnjlNGv1AfNsL/i/GNDNHA== - -eslint-plugin-prettier@^5.5.0: - version "5.5.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz#9d61c4ea11de5af704d4edf108c82ccfa7f2e61c" - integrity sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.11.7" - -eslint-rule-composer@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" - integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== - -eslint-scope@5.1.1, eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint-webpack-plugin@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-4.2.0.tgz#41f54b25379908eb9eca8645bc997c90cfdbd34e" - integrity sha512-rsfpFQ01AWQbqtjgPRr2usVRxhWDuG0YDYcG8DJOteD3EFnpeuYuOwk0PQiN7PRBTqS6ElNdtPZPggj8If9WnA== - dependencies: - "@types/eslint" "^8.56.10" - jest-worker "^29.7.0" - micromatch "^4.0.5" - normalize-path "^3.0.0" - schema-utils "^4.2.0" - -eslint@^8.17.0, eslint@^8.57.0: - version "8.57.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" - integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.1" - "@humanwhocodes/config-array" "^0.13.0" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" - ajv "^6.12.4" - 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.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" - 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.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - 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.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" - integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -events@^3.2.0, events@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" - integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^8.0.1" - human-signals "^5.0.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^4.1.0" - strip-final-newline "^3.0.0" - -extend@^3.0.0, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-glob@^3.2.9: - version "3.3.3" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" - integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== - 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.8" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-uri@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa" - integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== - -fastest-levenshtein@^1.0.12: - version "1.0.16" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" - integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== - -fastq@^1.6.0: - version "1.19.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" - integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== - dependencies: - reusify "^1.0.4" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.2.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-cache-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" - integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== - dependencies: - common-path-prefix "^3.0.0" - pkg-dir "^7.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -find-up@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" - integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== - dependencies: - locate-path "^7.1.0" - path-exists "^5.0.0" - -findup@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/findup/-/findup-0.1.5.tgz#8ad929a3393bac627957a7e5de4623b06b0e2ceb" - integrity sha512-Udxo3C9A6alt2GZ2MNsgnIvX7De0V3VGxeP/x98NSVgSlizcDHdmJza61LI7zJy4OEtSiJyE72s0/+tBl5/ZxA== - dependencies: - colors "~0.6.0-1" - commander "~2.1.0" - -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -flatted@^3.2.7, flatted@^3.2.9: - version "3.3.3" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" - integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== - -follow-redirects@^1.0.0: - version "1.15.11" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" - integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== - -for-each@^0.3.3, for-each@^0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47" - integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== - dependencies: - is-callable "^1.2.7" - -foreground-child@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" - integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^3.0.2" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fromentries@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a" - integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" - integrity sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-readdir-recursive@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" - integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz#e68e1df7b259a5c949eeef95cdbde53edffabb78" - integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - define-properties "^1.2.1" - functions-have-names "^1.2.3" - hasown "^2.0.2" - is-callable "^1.2.7" - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -generator-function@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/generator-function/-/generator-function-2.0.1.tgz#0e75dd410d1243687a0ba2e951b94eedb8f737a2" - integrity sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-east-asian-width@^1.0.0, get-east-asian-width@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz#9bc4caa131702b4b61729cb7e42735bc550c9ee6" - integrity sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q== - -get-func-name@^2.0.1, get-func-name@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" - integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== - -get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" - integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== - dependencies: - call-bind-apply-helpers "^1.0.2" - es-define-property "^1.0.1" - es-errors "^1.3.0" - es-object-atoms "^1.1.1" - function-bind "^1.1.2" - get-proto "^1.0.1" - gopd "^1.2.0" - has-symbols "^1.1.0" - hasown "^2.0.2" - math-intrinsics "^1.1.0" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" - integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== - dependencies: - dunder-proto "^1.0.1" - es-object-atoms "^1.0.0" - -get-stream@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" - integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== - -get-symbol-description@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee" - integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - get-intrinsic "^1.2.6" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - -ghooks@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/ghooks/-/ghooks-2.0.4.tgz#fd50e040ff548906ae42cb51793a01bfe24567b9" - integrity sha512-Ey6PSgelTufntLJBUQZsSHHeRg1PjsjM1oOS+0lpExHqXGjrL5uyQVQdOIlf2WR5EBJVdJbJlCdSHAVt+uZmNA== - dependencies: - findup "0.1.5" - lodash.clone "4.5.0" - manage-path "2.0.0" - opt-cli "1.5.1" - path-exists "3.0.0" - spawn-command "0.0.2" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.0: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - 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" - -glob@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -globals@^13.19.0: - version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" - integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== - dependencies: - define-properties "^1.2.1" - gopd "^1.0.1" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - 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" - -gopd@^1.0.1, gopd@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" - integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== - -graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - integrity sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== - dependencies: - ansi-regex "^2.0.0" - -has-bigints@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.1.0.tgz#28607e965ac967e03cd2a2c70a2636a1edad49fe" - integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - dependencies: - es-define-property "^1.0.0" - -has-proto@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.2.0.tgz#5de5a6eabd95fdffd9818b43055e8065e39fe9d5" - integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== - dependencies: - dunder-proto "^1.0.0" - -has-symbols@^1.0.3, has-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" - integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== - -has-tostringtag@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - dependencies: - has-symbols "^1.0.3" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== - -hash-base@^3.0.0, hash-base@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.2.tgz#79d72def7611c3f6e3c3b5730652638001b10a74" - integrity sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg== - dependencies: - inherits "^2.0.4" - readable-stream "^2.3.8" - safe-buffer "^5.2.1" - to-buffer "^1.2.1" - -hash-base@~3.0.4: - version "3.0.5" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.5.tgz#52480e285395cf7fba17dc4c9e47acdc7f248a8a" - integrity sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg== - dependencies: - inherits "^2.0.4" - safe-buffer "^5.2.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hasha@^5.0.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" - integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== - dependencies: - is-stream "^2.0.0" - type-fest "^0.8.0" - -hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-errors@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b" - integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ== - dependencies: - depd "~2.0.0" - inherits "~2.0.4" - setprototypeof "~1.2.0" - statuses "~2.0.2" - toidentifier "~1.0.1" - -http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== - -human-signals@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" - integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== - -husky@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" - integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== - -iconv-lite@~0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.13, ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^5.1.1, ignore@^5.2.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" - integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== - -import-fresh@^3.2.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" - integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.0.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" - integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3, inherits@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -internal-slot@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.1.0.tgz#1eac91762947d2f7056bc838d93e13b2e9604961" - integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== - dependencies: - es-errors "^1.3.0" - hasown "^2.0.2" - side-channel "^1.1.0" - -interpret@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" - integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== - -is-arguments@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.2.0.tgz#ad58c6aecf563b78ef2bf04df540da8f5d7d8e1b" - integrity sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA== - dependencies: - call-bound "^1.0.2" - has-tostringtag "^1.0.2" - -is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz#65742e1e687bd2cc666253068fd8707fe4d44280" - integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - get-intrinsic "^1.2.6" - -is-async-function@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.1.1.tgz#3e69018c8e04e73b738793d020bfe884b9fd3523" - integrity sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ== - dependencies: - async-function "^1.0.0" - call-bound "^1.0.3" - get-proto "^1.0.1" - has-tostringtag "^1.0.2" - safe-regex-test "^1.1.0" - -is-bigint@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.1.0.tgz#dda7a3445df57a42583db4228682eba7c4170672" - integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== - dependencies: - has-bigints "^1.0.2" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz#7067f47709809a393c71ff5bb3e135d8a9215d9e" - integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A== - dependencies: - call-bound "^1.0.3" - has-tostringtag "^1.0.2" - -is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.13.0, is-core-module@^2.16.1, is-core-module@^2.5.0: - version "2.16.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" - integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== - dependencies: - hasown "^2.0.2" - -is-data-view@^1.0.1, is-data-view@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.2.tgz#bae0a41b9688986c2188dda6657e56b8f9e63b8e" - integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== - dependencies: - call-bound "^1.0.2" - get-intrinsic "^1.2.6" - is-typed-array "^1.1.13" - -is-date-object@^1.0.5, is-date-object@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz#ad85541996fc7aa8b2729701d27b7319f95d82f7" - integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== - dependencies: - call-bound "^1.0.2" - has-tostringtag "^1.0.2" - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-finalizationregistry@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz#eefdcdc6c94ddd0674d9c85887bf93f944a97c90" - integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== - dependencies: - call-bound "^1.0.3" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== - -is-fullwidth-code-point@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz#046b2a6d4f6b156b2233d3207d4b5a9783999b98" - integrity sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ== - dependencies: - get-east-asian-width "^1.3.1" - -is-generator-function@^1.0.10, is-generator-function@^1.0.7: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.2.tgz#ae3b61e3d5ea4e4839b90bad22b02335051a17d5" - integrity sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA== - dependencies: - call-bound "^1.0.4" - generator-function "^2.0.0" - get-proto "^1.0.1" - has-tostringtag "^1.0.2" - safe-regex-test "^1.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-map@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" - integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== - -is-nan@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" - integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -is-negative-zero@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" - integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== - -is-number-object@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz#144b21e95a1bc148205dcc2814a9134ec41b2541" - integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== - dependencies: - call-bound "^1.0.3" - has-tostringtag "^1.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22" - integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== - dependencies: - call-bound "^1.0.2" - gopd "^1.2.0" - has-tostringtag "^1.0.2" - hasown "^2.0.2" - -is-set@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" - integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== - -is-shared-array-buffer@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz#9b67844bd9b7f246ba0708c3a93e34269c774f6f" - integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== - dependencies: - call-bound "^1.0.3" - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-string@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9" - integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== - dependencies: - call-bound "^1.0.3" - has-tostringtag "^1.0.2" - -is-symbol@^1.0.4, is-symbol@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.1.tgz#f47761279f532e2b05a7024a7506dbbedacd0634" - integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== - dependencies: - call-bound "^1.0.2" - has-symbols "^1.1.0" - safe-regex-test "^1.1.0" - -is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15, is-typed-array@^1.1.3: - version "1.1.15" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" - integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== - dependencies: - which-typed-array "^1.1.16" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-weakmap@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" - integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== - -is-weakref@^1.0.2, is-weakref@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.1.tgz#eea430182be8d64174bd96bffbc46f21bf3f9293" - integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== - dependencies: - call-bound "^1.0.3" - -is-weakset@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.4.tgz#c9f5deb0bc1906c6d6f1027f284ddf459249daca" - integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== - dependencies: - call-bound "^1.0.3" - get-intrinsic "^1.2.6" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isbinaryfile@^4.0.8: - version "4.0.10" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" - integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" - integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== - -istanbul-lib-hook@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz#8f84c9434888cc6b1d0a9d7092a76d239ebf0cc6" - integrity sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ== - dependencies: - append-transform "^2.0.0" - -istanbul-lib-instrument@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-processinfo@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz#366d454cd0dcb7eb6e0e419378e60072c8626169" - integrity sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg== - dependencies: - archy "^1.0.0" - cross-spawn "^7.0.3" - istanbul-lib-coverage "^3.2.0" - p-map "^3.0.0" - rimraf "^3.0.0" - uuid "^8.3.2" - -istanbul-lib-report@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" - integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^4.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0, istanbul-lib-source-maps@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.2, istanbul-reports@^3.0.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.2.0.tgz#cb4535162b5784aa623cee21a7252cf2c807ac93" - integrity sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest-worker@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== - dependencies: - "@types/node" "*" - jest-util "^29.7.0" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1, js-yaml@^3.7.0: - version "3.14.2" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.2.tgz#77485ce1dd7f33c061fd1b16ecea23b55fcb04b0" - integrity sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" - integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== - dependencies: - argparse "^2.0.1" - -js2xmlparser@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-4.0.2.tgz#2a1fdf01e90585ef2ae872a01bc169c6a8d5e60a" - integrity sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA== - dependencies: - xmlcreate "^2.0.4" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -jsdoc@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-4.0.5.tgz#fbed70e04a3abcf2143dad6b184947682bbc7315" - integrity sha512-P4C6MWP9yIlMiK8nwoZvxN84vb6MsnXcHuy7XzVOvQoCizWX5JFCBsWIIWKXBltpoRZXddUOVQmCTOZt9yDj9g== - dependencies: - "@babel/parser" "^7.20.15" - "@jsdoc/salty" "^0.2.1" - "@types/markdown-it" "^14.1.1" - bluebird "^3.7.2" - catharsis "^0.9.0" - escape-string-regexp "^2.0.0" - js2xmlparser "^4.0.2" - klaw "^3.0.0" - markdown-it "^14.1.0" - markdown-it-anchor "^8.6.7" - marked "^4.0.10" - mkdirp "^1.0.4" - requizzle "^0.2.3" - strip-json-comments "^3.1.0" - underscore "~1.13.2" - -jsesc@^3.0.2, jsesc@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" - integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json-stable-stringify@^1.0.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.3.0.tgz#8903cfac42ea1a0f97f35d63a4ce0518f0cc6a70" - integrity sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.4" - isarray "^2.0.5" - jsonify "^0.0.1" - object-keys "^1.1.1" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" - integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -just-extend@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-6.2.0.tgz#b816abfb3d67ee860482e7401564672558163947" - integrity sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw== - -karma-chrome-launcher@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz#eb9c95024f2d6dfbb3748d3415ac9b381906b9a9" - integrity sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q== - dependencies: - which "^1.2.1" - -karma-coverage@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/karma-coverage/-/karma-coverage-2.2.1.tgz#e1cc074f93ace9dc4fb7e7aeca7135879c2e358c" - integrity sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A== - dependencies: - istanbul-lib-coverage "^3.2.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.1" - istanbul-reports "^3.0.5" - minimatch "^3.0.4" - -karma-firefox-launcher@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-2.1.3.tgz#b278a4cbffa92ab81394b1a398813847b0624a85" - integrity sha512-LMM2bseebLbYjODBOVt7TCPP9OI2vZIXCavIXhkO9m+10Uj5l7u/SKoeRmYx8FYHTVGZSpk6peX+3BMHC1WwNw== - dependencies: - is-wsl "^2.2.0" - which "^3.0.0" - -karma-mocha@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-2.0.1.tgz#4b0254a18dfee71bdbe6188d9a6861bf86b0cd7d" - integrity sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ== - dependencies: - minimist "^1.2.3" - -karma-sinon-chai@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/karma-sinon-chai/-/karma-sinon-chai-2.0.2.tgz#e28c109b989973abafc28a7c9f09ef24a05e07c2" - integrity sha512-SDgh6V0CUd+7ruL1d3yG6lFzmJNGRNQuEuCYXLaorruNP9nwQfA7hpsp4clx4CbOo5Gsajh3qUOT7CrVStUKMw== - -karma-webpack@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-5.0.1.tgz#4eafd31bbe684a747a6e8f3e4ad373e53979ced4" - integrity sha512-oo38O+P3W2mSPCSUrQdySSPv1LvPpXP+f+bBimNomS5sW+1V4SuhCuW8TfJzV+rDv921w2fDSDw0xJbPe6U+kQ== - dependencies: - glob "^7.1.3" - minimatch "^9.0.3" - webpack-merge "^4.1.5" - -karma@^6.4.4: - version "6.4.4" - resolved "https://registry.yarnpkg.com/karma/-/karma-6.4.4.tgz#dfa5a426cf5a8b53b43cd54ef0d0d09742351492" - integrity sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w== - dependencies: - "@colors/colors" "1.5.0" - body-parser "^1.19.0" - braces "^3.0.2" - chokidar "^3.5.1" - connect "^3.7.0" - di "^0.0.1" - dom-serialize "^2.2.1" - glob "^7.1.7" - graceful-fs "^4.2.6" - http-proxy "^1.18.1" - isbinaryfile "^4.0.8" - lodash "^4.17.21" - log4js "^6.4.1" - mime "^2.5.2" - minimatch "^3.0.4" - mkdirp "^0.5.5" - qjobs "^1.2.0" - range-parser "^1.2.1" - rimraf "^3.0.2" - socket.io "^4.7.2" - source-map "^0.6.1" - tmp "^0.2.1" - ua-parser-js "^0.7.30" - yargs "^16.1.1" - -keyv@^4.5.3: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - -kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -klaw@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" - integrity sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g== - dependencies: - graceful-fs "^4.1.9" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -lilconfig@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" - integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== - -linkify-it@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" - integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== - dependencies: - uc.micro "^2.0.0" - -lint-staged@^15.5.0: - version "15.5.2" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.5.2.tgz#beff028fd0681f7db26ffbb67050a21ed4d059a3" - integrity sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w== - dependencies: - chalk "^5.4.1" - commander "^13.1.0" - debug "^4.4.0" - execa "^8.0.1" - lilconfig "^3.1.3" - listr2 "^8.2.5" - micromatch "^4.0.8" - pidtree "^0.6.0" - string-argv "^0.3.2" - yaml "^2.7.0" - -listr2@^8.2.5: - version "8.3.3" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.3.3.tgz#815fc8f738260ff220981bf9e866b3e11e8121bf" - integrity sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ== - dependencies: - cli-truncate "^4.0.0" - colorette "^2.0.20" - eventemitter3 "^5.0.1" - log-update "^6.1.0" - rfdc "^1.4.1" - wrap-ansi "^9.0.0" - -loader-runner@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.1.tgz#6c76ed29b0ccce9af379208299f07f876de737e3" - integrity sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q== - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -locate-path@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" - integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== - dependencies: - p-locate "^6.0.0" - -lodash._baseclone@~4.5.0: - version "4.5.7" - resolved "https://registry.yarnpkg.com/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz#ce42ade08384ef5d62fa77c30f61a46e686f8434" - integrity sha512-nOtLg6tdIdD+TehqBv0WI7jbkLaohHhKSwLmS/UXSFWMWWUxdJc9EVtAfD4L0mV15vV+lZVfF4LEo363VdrMBw== - -lodash.clone@4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.3.2.tgz#e56b176b6823a7dde38f7f2bf58de7d5971200e9" - integrity sha512-Yc/0UmZvWkFsbx7NB4feSX5bSX03SR0ft8CTkI8RCb3w/TzT71HXew2iNDm0aml93P49tIR/NJHOIoE+XEKz9A== - dependencies: - lodash._baseclone "~4.5.0" - -lodash.clone@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" - integrity sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg== - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash@^4.17.15, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -log-update@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.1.0.tgz#1a04ff38166f94647ae1af562f4bd6a15b1b7cd4" - integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== - dependencies: - ansi-escapes "^7.0.0" - cli-cursor "^5.0.0" - slice-ansi "^7.1.0" - strip-ansi "^7.1.0" - wrap-ansi "^9.0.0" - -log4js@^6.4.1: - version "6.9.1" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.9.1.tgz#aba5a3ff4e7872ae34f8b4c533706753709e38b6" - integrity sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g== - dependencies: - date-format "^4.0.14" - debug "^4.3.4" - flatted "^3.2.7" - rfdc "^1.3.0" - streamroller "^3.1.5" - -loupe@^2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" - integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== - dependencies: - get-func-name "^2.0.1" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0, make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" - integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== - dependencies: - semver "^7.5.3" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -manage-path@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/manage-path/-/manage-path-2.0.0.tgz#f4cf8457b926eeee2a83b173501414bc76eb9597" - integrity sha512-NJhyB+PJYTpxhxZJ3lecIGgh4kwIY2RAh44XvAz9UlqthlQwtPBf62uBVR8XaD8CRuSjQ6TnZH2lNJkbLPZM2A== - -markdown-it-anchor@^8.6.7: - version "8.6.7" - resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz#ee6926daf3ad1ed5e4e3968b1740eef1c6399634" - integrity sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA== - -markdown-it@^14.1.0: - version "14.1.0" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" - integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== - dependencies: - argparse "^2.0.1" - entities "^4.4.0" - linkify-it "^5.0.0" - mdurl "^2.0.0" - punycode.js "^2.3.1" - uc.micro "^2.1.0" - -marked@^4.0.10: - version "4.3.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" - integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== - -math-intrinsics@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" - integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdurl@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" - integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.5, micromatch@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@^2.5.2: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -mimic-function@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" - integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== - -minami@^1.1.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/minami/-/minami-1.2.3.tgz#99b6dcdfb2f0a54da1c9c8f7aa3a327787aaf9f8" - integrity sha512-3f2QqqbUC1usVux0FkQMFYB73yd9JIxmHSn1dWQacizL6hOUaNu6mA3KxZ9SfiCc4qgcgq+5XP59+hP7URa1Dw== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^5.0.1, minimatch@^5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^9.0.3: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -minipass@^3.0.0, minipass@^3.1.1: - version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -minipass@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" - integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@^0.5.5: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mocha@^10.8.2: - version "10.8.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.8.2.tgz#8d8342d016ed411b12a429eb731b825f961afb96" - integrity sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg== - dependencies: - ansi-colors "^4.1.3" - browser-stdout "^1.3.1" - chokidar "^3.5.3" - debug "^4.3.5" - diff "^5.2.0" - escape-string-regexp "^4.0.0" - find-up "^5.0.0" - glob "^8.1.0" - he "^1.2.0" - js-yaml "^4.1.0" - log-symbols "^4.1.0" - minimatch "^5.1.6" - ms "^2.1.3" - serialize-javascript "^6.0.2" - strip-json-comments "^3.1.1" - supports-color "^8.1.1" - workerpool "^6.5.1" - yargs "^16.2.0" - yargs-parser "^20.2.9" - yargs-unparser "^2.0.0" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@^2.1.1, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -nise@^5.1.4: - version "5.1.9" - resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.9.tgz#0cb73b5e4499d738231a473cd89bd8afbb618139" - integrity sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww== - dependencies: - "@sinonjs/commons" "^3.0.0" - "@sinonjs/fake-timers" "^11.2.2" - "@sinonjs/text-encoding" "^0.7.2" - just-extend "^6.2.0" - path-to-regexp "^6.2.1" - -node-polyfill-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/node-polyfill-webpack-plugin/-/node-polyfill-webpack-plugin-3.0.0.tgz#296b8235d081af368cd413f4c77e68c98919d99c" - integrity sha512-QpG496dDBiaelQZu9wDcVvpLbtk7h9Ctz693RaUMZBgl8DUoFToO90ZTLKq57gP7rwKqYtGbMBXkcEgLSag2jQ== - dependencies: - assert "^2.1.0" - browserify-zlib "^0.2.0" - buffer "^6.0.3" - console-browserify "^1.2.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.12.0" - domain-browser "^4.22.0" - events "^3.3.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "^1.0.1" - process "^0.11.10" - punycode "^2.3.0" - querystring-es3 "^0.2.1" - readable-stream "^4.4.2" - stream-browserify "^3.0.0" - stream-http "^3.2.0" - string_decoder "^1.3.0" - timers-browserify "^2.0.12" - tty-browserify "^0.0.1" - type-fest "^4.4.0" - url "^0.11.3" - util "^0.12.5" - vm-browserify "^1.1.2" - -node-preload@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301" - integrity sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ== - dependencies: - process-on-spawn "^1.0.0" - -node-releases@^2.0.27: - version "2.0.27" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" - integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== - -"normalize-package-data@~1.0.1 || ^2.0.0 || ^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^8.0.0": - version "8.1.5" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" - integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== - dependencies: - hosted-git-info "^4.0.1" - semver "^7.3.4" - validate-npm-package-name "^3.0.0" - -npm-run-path@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" - integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== - dependencies: - path-key "^4.0.0" - -"npmlog@2 || ^3.1.0 || ^4.0.0": - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== - -nyc@^15.1.0: - version "15.1.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02" - integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A== - dependencies: - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - caching-transform "^4.0.0" - convert-source-map "^1.7.0" - decamelize "^1.2.0" - find-cache-dir "^3.2.0" - find-up "^4.1.0" - foreground-child "^2.0.0" - get-package-type "^0.1.0" - glob "^7.1.6" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-hook "^3.0.0" - istanbul-lib-instrument "^4.0.0" - istanbul-lib-processinfo "^2.0.2" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - make-dir "^3.0.0" - node-preload "^0.2.1" - p-map "^3.0.0" - process-on-spawn "^1.0.0" - resolve-from "^5.0.0" - rimraf "^3.0.0" - signal-exit "^3.0.2" - spawn-wrap "^2.0.0" - test-exclude "^6.0.0" - yargs "^15.0.2" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4, object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.13.3, object-inspect@^1.13.4: - version "1.13.4" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" - integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== - -object-is@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" - integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.2, object.assign@^4.1.4, object.assign@^4.1.7: - version "4.1.7" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d" - integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - has-symbols "^1.1.0" - object-keys "^1.1.1" - -object.entries@^1.1.5: - version "1.1.9" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.9.tgz#e4770a6a1444afb61bd39f984018b5bede25f8b3" - integrity sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.4" - define-properties "^1.2.1" - es-object-atoms "^1.1.1" - -object.fromentries@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" - integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - -object.groupby@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" - integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - -object.values@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216" - integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== - dependencies: - ee-first "1.1.1" - -on-finished@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -onetime@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-7.0.0.tgz#9f16c92d8c9ef5120e3acd9dd9957cceecc1ab60" - integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== - dependencies: - mimic-function "^5.0.0" - -opt-cli@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/opt-cli/-/opt-cli-1.5.1.tgz#04db447b13c96b992eb31685266f4ed0d9736dc2" - integrity sha512-iRFQBiQjXZ+LX/8pis04prUhS6FOYcJiZRouofN3rUJEB282b/e0s3jp9vT7aHgXY6TUpgPwu12f0i+qF40Kjw== - dependencies: - commander "2.9.0" - lodash.clone "4.3.2" - manage-path "2.0.0" - spawn-command "0.0.2-1" - -optionator@^0.9.3: - version "0.9.4" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" - integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.5" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== - -own-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.1.tgz#e4006910a2bf913585289676eebd6f390cf51358" - integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== - dependencies: - get-intrinsic "^1.2.6" - object-keys "^1.1.1" - safe-push-apply "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-limit@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== - dependencies: - yocto-queue "^1.0.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-locate@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" - integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== - dependencies: - p-limit "^4.0.0" - -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== - dependencies: - aggregate-error "^3.0.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-hash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506" - integrity sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ== - dependencies: - graceful-fs "^4.1.15" - hasha "^5.0.0" - lodash.flattendeep "^4.4.0" - release-zalgo "^1.0.0" - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-asn1@^5.0.0, parse-asn1@^5.1.9: - version "5.1.9" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.9.tgz#8dd24c3ea8da77dffbc708d94eaf232fd6156e95" - integrity sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg== - dependencies: - asn1.js "^4.10.1" - browserify-aes "^1.2.0" - evp_bytestokey "^1.0.3" - pbkdf2 "^3.1.5" - safe-buffer "^5.2.1" - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -parsimmon@^1.13.0: - version "1.18.1" - resolved "https://registry.yarnpkg.com/parsimmon/-/parsimmon-1.18.1.tgz#d8dd9c28745647d02fc6566f217690897eed7709" - integrity sha512-u7p959wLfGAhJpSDJVYXoyMCXWYwHia78HhRBWqk7AIbxdmlrfdp5wX0l3xv/iTSH5HvhN9K7o26hwwpgS5Nmw== - -path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-exists@3.0.0, path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-exists@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" - integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@^6.2.1: - version "6.3.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.3.0.tgz#2b6a26a337737a8e1416f9272ed0766b1c0389f4" - integrity sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -pbkdf2@^3.1.2, pbkdf2@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.5.tgz#444a59d7a259a95536c56e80c89de31cc01ed366" - integrity sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ== - dependencies: - create-hash "^1.2.0" - create-hmac "^1.1.7" - ripemd160 "^2.0.3" - safe-buffer "^5.2.1" - sha.js "^2.4.12" - to-buffer "^1.2.1" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pidtree@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" - integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pirates@^4.0.6: - version "4.0.7" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" - integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pkg-dir@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" - integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== - dependencies: - find-up "^6.3.0" - -possible-typed-array-names@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae" - integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^3.7.4: - version "3.7.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f" - integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process-on-spawn@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/process-on-spawn/-/process-on-spawn-1.1.0.tgz#9d5999ba87b3bf0a8acb05322d69f2f5aa4fb763" - integrity sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q== - dependencies: - fromentries "^1.2.0" - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - -psl@^1.1.28: - version "1.15.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.15.0.tgz#bdace31896f1d97cec6a79e8224898ce93d974c6" - integrity sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w== - dependencies: - punycode "^2.3.1" - -public-encrypt@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -punycode.js@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" - integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== - -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== - -punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0, punycode@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -qjobs@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" - integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== - -qs@^6.12.3, qs@~6.14.0: - version "6.14.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" - integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== - dependencies: - side-channel "^1.1.0" - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -querystring-es3@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@~2.5.3: - version "2.5.3" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.3.tgz#11c6650ee770a7de1b494f197927de0c923822e2" - integrity sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA== - dependencies: - bytes "~3.1.2" - http-errors "~2.0.1" - iconv-lite "~0.4.24" - unpipe "~1.0.0" - -readable-stream@^2.0.6, readable-stream@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - 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" - -readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@^4.4.2: - version "4.7.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.7.0.tgz#cedbd8a1146c13dfff8dab14068028d58c15ac91" - integrity sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg== - dependencies: - abort-controller "^3.0.0" - buffer "^6.0.3" - events "^3.3.0" - process "^0.11.10" - string_decoder "^1.3.0" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -rechoir@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" - integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== - dependencies: - resolve "^1.20.0" - -reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz#c629219e78a3316d8b604c765ef68996964e7bf9" - integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw== - dependencies: - call-bind "^1.0.8" - define-properties "^1.2.1" - es-abstract "^1.23.9" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - get-intrinsic "^1.2.7" - get-proto "^1.0.1" - which-builtin-type "^1.2.1" - -regenerate-unicode-properties@^10.2.2: - version "10.2.2" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz#aa113812ba899b630658c7623466be71e1f86f66" - integrity sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regexp.prototype.flags@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" - integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== - dependencies: - call-bind "^1.0.8" - define-properties "^1.2.1" - es-errors "^1.3.0" - get-proto "^1.0.1" - gopd "^1.2.0" - set-function-name "^2.0.2" - -regexpp@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -regexpu-core@^6.3.1: - version "6.4.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.4.0.tgz#3580ce0c4faedef599eccb146612436b62a176e5" - integrity sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.2.2" - regjsgen "^0.8.0" - regjsparser "^0.13.0" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.2.1" - -regjsgen@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" - integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== - -regjsparser@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.13.0.tgz#01f8351335cf7898d43686bc74d2dd71c847ecc0" - integrity sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q== - dependencies: - jsesc "~3.1.0" - -release-zalgo@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" - integrity sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA== - dependencies: - es6-error "^4.0.1" - -request@^2.88.2: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -requizzle@^0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.4.tgz#319eb658b28c370f0c20f968fa8ceab98c13d27c" - integrity sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw== - dependencies: - lodash "^4.17.21" - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve@^1.10.1, resolve@^1.20.0, resolve@^1.22.10, resolve@^1.22.4, resolve@^1.3.2: - version "1.22.11" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" - integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== - dependencies: - is-core-module "^2.16.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -restore-cursor@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" - integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== - dependencies: - onetime "^7.0.0" - signal-exit "^4.1.0" - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - -reusify@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" - integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== - -rfdc@^1.3.0, rfdc@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" - integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== - -rimraf@2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.3.tgz#9be54e4ba5e3559c8eee06a25cd7648bbccdf5a8" - integrity sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA== - dependencies: - hash-base "^3.1.2" - inherits "^2.0.4" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -safe-array-concat@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz#c9e54ec4f603b0bbb8e7e5007a5ee7aecd1538c3" - integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.2" - get-intrinsic "^1.2.6" - has-symbols "^1.1.0" - isarray "^2.0.5" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-push-apply@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz#01850e981c1602d398c85081f360e4e6d03d27f5" - integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA== - dependencies: - es-errors "^1.3.0" - isarray "^2.0.5" - -safe-regex-test@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz#7f87dfb67a3150782eaaf18583ff5d1711ac10c1" - integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - is-regex "^1.2.1" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -schema-utils@^4.0.0, schema-utils@^4.2.0, schema-utils@^4.3.0, schema-utils@^4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46" - integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.9.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.1.0" - -"semver@2 >=2.2.1 || 3.x || 4 || 5 || 7", semver@^7.3.4, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: - version "7.7.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" - integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== - -semver@^5.3.0, semver@^5.6.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^6.0.0, semver@^6.1.0, semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -serialize-javascript@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -set-function-length@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" - 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" - -set-function-name@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" - integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.2" - -set-proto@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/set-proto/-/set-proto-1.0.0.tgz#0760dbcff30b2d7e801fd6e19983e56da337565e" - integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw== - dependencies: - dunder-proto "^1.0.1" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - -setprototypeof@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -sha.js@^2.4.0, sha.js@^2.4.12, sha.js@^2.4.8: - version "2.4.12" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.12.tgz#eb8b568bf383dfd1867a32c3f2b74eb52bdbf23f" - integrity sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w== - dependencies: - inherits "^2.0.4" - safe-buffer "^5.2.1" - to-buffer "^1.2.0" - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel-list@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" - integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== - dependencies: - es-errors "^1.3.0" - object-inspect "^1.13.3" - -side-channel-map@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" - integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - get-intrinsic "^1.2.5" - object-inspect "^1.13.3" - -side-channel-weakmap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" - integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - get-intrinsic "^1.2.5" - object-inspect "^1.13.3" - side-channel-map "^1.0.1" - -side-channel@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" - integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== - dependencies: - es-errors "^1.3.0" - object-inspect "^1.13.3" - side-channel-list "^1.0.0" - side-channel-map "^1.0.1" - side-channel-weakmap "^1.0.2" - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -signal-exit@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -sinon-chai@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-3.7.0.tgz#cfb7dec1c50990ed18c153f1840721cf13139783" - integrity sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g== - -sinon@^16.1.0: - version "16.1.3" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-16.1.3.tgz#b760ddafe785356e2847502657b4a0da5501fba8" - integrity sha512-mjnWWeyxcAf9nC0bXcPmiDut+oE8HYridTNzBbF98AYVLmWwGRp2ISEpyhYflG1ifILT+eNn3BmKUJPxjXUPlA== - dependencies: - "@sinonjs/commons" "^3.0.0" - "@sinonjs/fake-timers" "^10.3.0" - "@sinonjs/samsam" "^8.0.0" - diff "^5.1.0" - nise "^5.1.4" - supports-color "^7.2.0" - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" - integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== - dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" - -slice-ansi@^7.1.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.2.tgz#adf7be70aa6d72162d907cd0e6d5c11f507b5403" - integrity sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w== - dependencies: - ansi-styles "^6.2.1" - is-fullwidth-code-point "^5.0.0" - -slide@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - integrity sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw== - -socket.io-adapter@~2.5.2: - version "2.5.5" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz#c7a1f9c703d7756844751b6ff9abfc1780664082" - integrity sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg== - dependencies: - debug "~4.3.4" - ws "~8.17.1" - -socket.io-parser@~4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" - integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" - -socket.io@^4.7.2: - version "4.8.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.8.1.tgz#fa0eaff965cc97fdf4245e8d4794618459f7558a" - integrity sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg== - dependencies: - accepts "~1.3.4" - base64id "~2.0.0" - cors "~2.8.5" - debug "~4.3.2" - engine.io "~6.6.0" - socket.io-adapter "~2.5.2" - socket.io-parser "~4.2.4" - -source-map-support@^0.5.16, source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spawn-command@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2.tgz#9544e1a43ca045f8531aac1a48cb29bdae62338e" - integrity sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ== - -spawn-command@0.0.2-1: - version "0.0.2-1" - resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" - integrity sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg== - -spawn-wrap@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e" - integrity sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg== - dependencies: - foreground-child "^2.0.0" - is-windows "^1.0.2" - make-dir "^3.0.0" - rimraf "^3.0.0" - signal-exit "^3.0.2" - which "^2.0.1" - -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" - integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.22" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz#abf5a08a6f5d7279559b669f47f0a43e8f3464ef" - integrity sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -sshpk@^1.7.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" - integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" - -statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -statuses@~2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" - integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== - -stop-iteration-iterator@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz#f481ff70a548f6124d0312c3aa14cbfa7aa542ad" - integrity sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ== - dependencies: - es-errors "^1.3.0" - internal-slot "^1.1.0" - -stream-browserify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" - integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== - dependencies: - inherits "~2.0.4" - readable-stream "^3.5.0" - -stream-http@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5" - integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.4" - readable-stream "^3.6.0" - xtend "^4.0.2" - -streamroller@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.1.5.tgz#1263182329a45def1ffaef58d31b15d13d2ee7ff" - integrity sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw== - dependencies: - date-format "^4.0.14" - debug "^4.3.4" - fs-extra "^8.1.0" - -string-argv@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" - integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - 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" - -string-width@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" - integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== - dependencies: - emoji-regex "^10.3.0" - get-east-asian-width "^1.0.0" - strip-ansi "^7.1.0" - -string.prototype.trim@^1.2.10: - version "1.2.10" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz#40b2dd5ee94c959b4dcfb1d65ce72e90da480c81" - integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.2" - define-data-property "^1.1.4" - define-properties "^1.2.1" - es-abstract "^1.23.5" - es-object-atoms "^1.0.0" - has-property-descriptors "^1.0.2" - -string.prototype.trimend@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942" - integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.2" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -string.prototype.trimstart@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" - integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -string_decoder@^1.1.1, string_decoder@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.1.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" - integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== - dependencies: - ansi-regex "^6.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-json-comments@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0, supports-color@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0, supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -synckit@^0.11.7: - version "0.11.11" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.11.tgz#c0b619cf258a97faa209155d9cd1699b5c998cb0" - integrity sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw== - dependencies: - "@pkgr/core" "^0.2.9" - -taffydb@^2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.7.3.tgz#2ad37169629498fca5bc84243096d3cde0ec3a34" - integrity sha512-GQ3gtYFSOAxSMN/apGtDKKkbJf+8izz5YfbGqIsUc7AMiQOapARZ76dhilRY2h39cynYxBFdafQo5HUL5vgkrg== - -tapable@^2.2.0, tapable@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6" - integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg== - -tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - 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" - -tar@^6.1.11: - version "6.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" - integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^5.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -terser-webpack-plugin@^5.3.16: - version "5.3.16" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz#741e448cc3f93d8026ebe4f7ef9e4afacfd56330" - integrity sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q== - dependencies: - "@jridgewell/trace-mapping" "^0.3.25" - jest-worker "^27.4.5" - schema-utils "^4.3.0" - serialize-javascript "^6.0.2" - terser "^5.31.1" - -terser@^5.31.1: - version "5.44.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.44.1.tgz#e391e92175c299b8c284ad6ded609e37303b0a9c" - integrity sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.15.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -timers-browserify@^2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -tmp@^0.2.1: - version "0.2.5" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8" - integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow== - -to-buffer@^1.2.0, to-buffer@^1.2.1, to-buffer@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.2.2.tgz#ffe59ef7522ada0a2d1cb5dfe03bb8abc3cdc133" - integrity sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw== - dependencies: - isarray "^2.0.5" - safe-buffer "^5.2.1" - typed-array-buffer "^1.0.3" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -ts-api-utils@^1.0.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064" - integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw== - -ts-node@^10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - 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" - -tsconfig-paths@^3.15.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" - integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^1.8.0, tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslint@5.14.0: - version "5.14.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.14.0.tgz#be62637135ac244fc9b37ed6ea5252c9eba1616e" - integrity sha512-IUla/ieHVnB8Le7LdQFRGlVJid2T/gaJe5VkjzRVSRR6pA2ODYrnfR1hmxi+5+au9l50jBwpbBL34txgv4NnTQ== - dependencies: - babel-code-frame "^6.22.0" - builtin-modules "^1.1.1" - chalk "^2.3.0" - commander "^2.12.1" - diff "^3.2.0" - glob "^7.1.1" - js-yaml "^3.7.0" - minimatch "^3.0.4" - mkdirp "^0.5.1" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.8.0" - tsutils "^2.29.0" - -tsutils@^2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" - integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== - dependencies: - tslib "^1.8.1" - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -tty-browserify@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" - integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-detect@^4.0.0, type-detect@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c" - integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.8.0: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-fest@^4.4.0: - version "4.41.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58" - integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typed-array-buffer@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" - integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - is-typed-array "^1.1.14" - -typed-array-byte-length@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz#8407a04f7d78684f3d252aa1a143d2b77b4160ce" - integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== - dependencies: - call-bind "^1.0.8" - for-each "^0.3.3" - gopd "^1.2.0" - has-proto "^1.2.0" - is-typed-array "^1.1.14" - -typed-array-byte-offset@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355" - integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.8" - for-each "^0.3.3" - gopd "^1.2.0" - has-proto "^1.2.0" - is-typed-array "^1.1.15" - reflect.getprototypeof "^1.0.9" - -typed-array-length@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.7.tgz#ee4deff984b64be1e118b0de8c9c877d5ce73d3d" - integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== - dependencies: - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - is-typed-array "^1.1.13" - possible-typed-array-names "^1.0.0" - reflect.getprototypeof "^1.0.6" - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - -typescript@5.6.3: - version "5.6.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b" - integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== - -ua-parser-js@^0.7.30: - version "0.7.41" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.41.tgz#9f6dee58c389e8afababa62a4a2dc22edb69a452" - integrity sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg== - -uc.micro@^2.0.0, uc.micro@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" - integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== - -unbox-primitive@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2" - integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== - dependencies: - call-bound "^1.0.3" - has-bigints "^1.0.2" - has-symbols "^1.1.0" - which-boxed-primitive "^1.1.1" - -underscore@~1.13.2: - version "1.13.7" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.7.tgz#970e33963af9a7dda228f17ebe8399e5fbe63a10" - integrity sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g== - -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - -undici-types@~7.16.0: - version "7.16.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" - integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" - integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz#65a7adfad8574c219890e219285ce4c64ed67eaa" - integrity sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz#301d4f8a43d2b75c97adfad87c9dd5350c9475d1" - integrity sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ== - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -update-browserslist-db@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.0.tgz#acc0f67299ff4c37c1079584d9391cd3520dbef1" - integrity sha512-Dn+NlSF/7+0lVSEZ57SYQg6/E44arLzsVOGgrElBn/BlG1B8WKdbLppOocFrXwRNTkNlgdGNaBgH1o0lggDPiw== - dependencies: - escalade "^3.2.0" - picocolors "^1.1.1" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -url@^0.11.3: - version "0.11.4" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.4.tgz#adca77b3562d56b72746e76b330b7f27b6721f3c" - integrity sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg== - dependencies: - punycode "^1.4.1" - qs "^6.12.3" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util@^0.12.5: - version "0.12.5" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" - integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - which-typed-array "^1.1.2" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -validate-npm-package-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== - dependencies: - builtins "^1.0.3" - -vary@^1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vm-browserify@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -void-elements@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== - -watchpack@^2.4.4: - version "2.4.4" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.4.tgz#473bda72f0850453da6425081ea46fc0d7602947" - integrity sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -webpack-cli@^5.1.1: - version "5.1.4" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" - integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== - dependencies: - "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^2.1.1" - "@webpack-cli/info" "^2.0.2" - "@webpack-cli/serve" "^2.0.5" - colorette "^2.0.14" - commander "^10.0.1" - cross-spawn "^7.0.3" - envinfo "^7.7.3" - fastest-levenshtein "^1.0.12" - import-local "^3.0.2" - interpret "^3.1.1" - rechoir "^0.8.0" - webpack-merge "^5.7.3" - -webpack-merge@^4.1.5: - version "4.2.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" - integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== - dependencies: - lodash "^4.17.15" - -webpack-merge@^5.7.3: - version "5.10.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" - integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== - dependencies: - clone-deep "^4.0.1" - flat "^5.0.2" - wildcard "^2.0.0" - -webpack-sources@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" - integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== - -webpack@^5.104.1: - version "5.104.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.104.1.tgz#94bd41eb5dbf06e93be165ba8be41b8260d4fb1a" - integrity sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA== - dependencies: - "@types/eslint-scope" "^3.7.7" - "@types/estree" "^1.0.8" - "@types/json-schema" "^7.0.15" - "@webassemblyjs/ast" "^1.14.1" - "@webassemblyjs/wasm-edit" "^1.14.1" - "@webassemblyjs/wasm-parser" "^1.14.1" - acorn "^8.15.0" - acorn-import-phases "^1.0.3" - browserslist "^4.28.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.4" - es-module-lexer "^2.0.0" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.11" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.3.1" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^4.3.3" - tapable "^2.3.0" - terser-webpack-plugin "^5.3.16" - watchpack "^2.4.4" - webpack-sources "^3.3.3" - -which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz#d76ec27df7fa165f18d5808374a5fe23c29b176e" - integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== - dependencies: - is-bigint "^1.1.0" - is-boolean-object "^1.2.1" - is-number-object "^1.1.1" - is-string "^1.1.1" - is-symbol "^1.1.1" - -which-builtin-type@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz#89183da1b4907ab089a6b02029cc5d8d6574270e" - integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== - dependencies: - call-bound "^1.0.2" - function.prototype.name "^1.1.6" - has-tostringtag "^1.0.2" - is-async-function "^2.0.0" - is-date-object "^1.1.0" - is-finalizationregistry "^1.1.0" - is-generator-function "^1.0.10" - is-regex "^1.2.1" - is-weakref "^1.0.2" - isarray "^2.0.5" - which-boxed-primitive "^1.1.0" - which-collection "^1.0.2" - which-typed-array "^1.1.16" - -which-collection@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" - integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== - dependencies: - is-map "^2.0.3" - is-set "^2.0.3" - is-weakmap "^2.0.2" - is-weakset "^2.0.3" - -which-module@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" - integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== - -which-typed-array@^1.1.16, which-typed-array@^1.1.19, which-typed-array@^1.1.2: - version "1.1.19" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.19.tgz#df03842e870b6b88e117524a4b364b6fc689f956" - integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.8" - call-bound "^1.0.4" - for-each "^0.3.5" - get-proto "^1.0.1" - gopd "^1.2.0" - has-tostringtag "^1.0.2" - -which@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -which@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/which/-/which-3.0.1.tgz#89f1cd0c23f629a8105ffe69b8172791c87b4be1" - integrity sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - -wildcard@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" - integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== - -word-wrap@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - -workerpool@^6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" - integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^9.0.0: - version "9.0.2" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.2.tgz#956832dea9494306e6d209eb871643bb873d7c98" - integrity sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww== - dependencies: - ansi-styles "^6.2.1" - string-width "^7.0.0" - strip-ansi "^7.1.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@~8.17.1: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" - integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== - -xmlcreate@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.4.tgz#0c5ab0f99cdd02a81065fa9cd8f8ae87624889be" - integrity sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg== - -xtend@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^2.7.0: - version "2.8.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.2.tgz#5694f25eca0ce9c3e7a9d9e00ce0ddabbd9e35c5" - integrity sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A== - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^20.2.2, yargs-parser@^20.2.9: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-unparser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@^15.0.2, yargs@^15.1.0, yargs@^15.3.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - 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" - -yargs@^16.1.1, yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - 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" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -yocto-queue@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.2.2.tgz#3e09c95d3f1aa89a58c114c99223edf639152c00" - integrity sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==