From a9493e82ce8dbe1d6d6776a64964a7c7c7b13279 Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Fri, 1 Mar 2024 10:13:13 +0300 Subject: [PATCH 01/17] =?UTF-8?q?=D0=9D=D0=B0=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B9=D0=BA=D0=B0=20=D1=80=D0=B5=D0=BF=D0=BE=D0=B7=D0=B8=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.js | 25 + .github/workflows/sanity-check.yml | 22 + .husky/pre-commit | 4 + README.md | 1 + babel.config.js | 3 + jest.config.js | 198 + package-lock.json | 7976 ++++++++++++++++++++++++++++ package.json | 37 + src/index.html | 0 src/index.js | 5 + src/index.test.js | 7 + 11 files changed, 8278 insertions(+) create mode 100644 .eslintrc.js create mode 100644 .github/workflows/sanity-check.yml create mode 100644 .husky/pre-commit create mode 100644 babel.config.js create mode 100644 jest.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/index.html create mode 100644 src/index.js create mode 100644 src/index.test.js diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..0efdb25 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,25 @@ +module.exports = { + env: { + browser: true, + es2021: true, + "jest/globals": true, + }, + extends: ["airbnb-base", "prettier"], + overrides: [ + { + env: { + node: true, + }, + files: [".eslintrc.{js,cjs}"], + parserOptions: { + sourceType: "script", + }, + }, + ], + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + }, + plugins: ["jest"], + rules: {}, +}; diff --git a/.github/workflows/sanity-check.yml b/.github/workflows/sanity-check.yml new file mode 100644 index 0000000..a9741e5 --- /dev/null +++ b/.github/workflows/sanity-check.yml @@ -0,0 +1,22 @@ +name: PR Sanity Check + +on: pull_request + +jobs: + lint: + runs-on: ubuntu-20.04 + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Install Packages + run: | + npm install + + - name: Lint check + run: | + npm run lint + + - name: Lint check + run: | + npm run test diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..36af219 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx lint-staged diff --git a/README.md b/README.md index 9a0816a..5790f5f 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ # OTUS_homework_lesson07 + Выполнение домашнего задания для лекции "Код как «проект» - артефакты работы разработчика. Зависимости и утилиты в стеке JavaScript" diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..24d5e76 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: [["@babel/preset-env", { targets: { node: "current" } }]], +}; diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..f17d44d --- /dev/null +++ b/jest.config.js @@ -0,0 +1,198 @@ +/** + * For a detailed explanation regarding each configuration property, visit: + * https://jestjs.io/docs/configuration + */ + +/** @type {import('jest').Config} */ +const config = { + // All imported modules in your tests should be mocked automatically + // automock: false, + + // Stop running tests after `n` failures + // bail: 0, + + // The directory where Jest should store its cached dependency information + // cacheDirectory: "C:\\Users\\Сергей\\AppData\\Local\\Temp\\jest", + + // Automatically clear mock calls, instances, contexts and results before every test + clearMocks: true, + + // Indicates whether the coverage information should be collected while executing the test + collectCoverage: true, + + // An array of glob patterns indicating a set of files for which coverage information should be collected + // collectCoverageFrom: undefined, + + // The directory where Jest should output its coverage files + coverageDirectory: "coverage", + + // An array of regexp pattern strings used to skip coverage collection + // coveragePathIgnorePatterns: [ + // "\\\\node_modules\\\\" + // ], + + // Indicates which provider should be used to instrument code for coverage + // coverageProvider: "babel", + + // A list of reporter names that Jest uses when writing coverage reports + // coverageReporters: [ + // "json", + // "text", + // "lcov", + // "clover" + // ], + + // An object that configures minimum threshold enforcement for coverage results + // coverageThreshold: undefined, + + // A path to a custom dependency extractor + // dependencyExtractor: undefined, + + // Make calling deprecated APIs throw helpful error messages + // errorOnDeprecated: false, + + // The default configuration for fake timers + // fakeTimers: { + // "enableGlobally": false + // }, + + // Force coverage collection from ignored files using an array of glob patterns + // forceCoverageMatch: [], + + // A path to a module which exports an async function that is triggered once before all test suites + // globalSetup: undefined, + + // A path to a module which exports an async function that is triggered once after all test suites + // globalTeardown: undefined, + + // A set of global variables that need to be available in all test environments + // globals: {}, + + // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers. + // maxWorkers: "50%", + + // An array of directory names to be searched recursively up from the requiring module's location + // moduleDirectories: [ + // "node_modules" + // ], + + // An array of file extensions your modules use + // moduleFileExtensions: [ + // "js", + // "mjs", + // "cjs", + // "jsx", + // "ts", + // "tsx", + // "json", + // "node" + // ], + + // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module + // moduleNameMapper: {}, + + // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader + // modulePathIgnorePatterns: [], + + // Activates notifications for test results + // notify: false, + + // An enum that specifies notification mode. Requires { notify: true } + // notifyMode: "failure-change", + + // A preset that is used as a base for Jest's configuration + // preset: undefined, + + // Run tests from one or more projects + // projects: undefined, + + // Use this configuration option to add custom reporters to Jest + // reporters: undefined, + + // Automatically reset mock state before every test + // resetMocks: false, + + // Reset the module registry before running each individual test + // resetModules: false, + + // A path to a custom resolver + // resolver: undefined, + + // Automatically restore mock state and implementation before every test + // restoreMocks: false, + + // The root directory that Jest should scan for tests and modules within + // rootDir: undefined, + + // A list of paths to directories that Jest should use to search for files in + // roots: [ + // "" + // ], + + // Allows you to use a custom runner instead of Jest's default test runner + // runner: "jest-runner", + + // The paths to modules that run some code to configure or set up the testing environment before each test + // setupFiles: [], + + // A list of paths to modules that run some code to configure or set up the testing framework before each test + // setupFilesAfterEnv: [], + + // The number of seconds after which a test is considered as slow and reported as such in the results. + // slowTestThreshold: 5, + + // A list of paths to snapshot serializer modules Jest should use for snapshot testing + // snapshotSerializers: [], + + // The test environment that will be used for testing + testEnvironment: "jsdom", + + // Options that will be passed to the testEnvironment + // testEnvironmentOptions: {}, + + // Adds a location field to test results + // testLocationInResults: false, + + // The glob patterns Jest uses to detect test files + // testMatch: [ + // "**/__tests__/**/*.[jt]s?(x)", + // "**/?(*.)+(spec|test).[tj]s?(x)" + // ], + + // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped + // testPathIgnorePatterns: [ + // "\\\\node_modules\\\\" + // ], + + // The regexp pattern or array of patterns that Jest uses to detect test files + // testRegex: [], + + // This option allows the use of a custom results processor + // testResultsProcessor: undefined, + + // This option allows use of a custom test runner + // testRunner: "jest-circus/runner", + + // A map from regular expressions to paths to transformers + // transform: undefined, + + // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation + // transformIgnorePatterns: [ + // "\\\\node_modules\\\\", + // "\\.pnp\\.[^\\\\]+$" + // ], + + // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them + // unmockedModulePathPatterns: undefined, + + // Indicates whether each individual test should be reported during the run + // verbose: undefined, + + // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode + // watchPathIgnorePatterns: [], + + // Whether to use watchman for file crawling + // watchman: true, +}; + +module.exports = config; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..1f39014 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,7976 @@ +{ + "name": "otus_homework_lesson07", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "otus_homework_lesson07", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "@babel/preset-env": "^7.24.0", + "eslint": "^8.57.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jest": "^27.9.0", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", + "prettier": "^3.2.5" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", + "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", + "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz", + "integrity": "sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", + "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.8", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.24.0", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "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" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz", + "integrity": "sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz", + "integrity": "sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jsdom": { + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", + "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.11.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.24.tgz", + "integrity": "sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dev": true, + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.filter": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", + "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", + "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", + "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.5.0", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001591", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz", + "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", + "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.689", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.689.tgz", + "integrity": "sha512-GatzRKnGPS1go29ep25reM94xxd1Wj8ritU0yRhCJ/tr1Bg8gKnm6R9O/yPOhGQBoLMZ9ezfrpghNaTw97C/PQ==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz", + "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.1", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.0", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.5", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@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" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "27.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", + "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^5.10.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", + "eslint": "^7.0.0 || ^8.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/jsdom": "^20.0.0", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", + "jsdom": "^20.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nwsapi": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", + "dev": true + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", + "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", + "dev": true, + "dependencies": { + "array.prototype.filter": "^1.0.3", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.0.0" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", + "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", + "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", + "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.5", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..57fbdcf --- /dev/null +++ b/package.json @@ -0,0 +1,37 @@ +{ + "name": "otus_homework_lesson07", + "version": "1.0.0", + "description": "Выполнение домашнего задания для лекции \"Код как «проект» - артефакты работы разработчика. Зависимости и утилиты в стеке JavaScript\"", + "main": "index.js", + "scripts": { + "test": "jest", + "lint": "prettier --check . && eslint .", + "lint:fix": "prettier --write . && eslint . --fix", + "prepare": "husky install" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/SergeyAkkuratov/OTUS_homework_lesson07.git" + }, + "author": "Sergey Akkuratov", + "license": "ISC", + "bugs": { + "url": "https://github.com/SergeyAkkuratov/OTUS_homework_lesson07/issues" + }, + "homepage": "https://github.com/SergeyAkkuratov/OTUS_homework_lesson07#readme", + "devDependencies": { + "@babel/preset-env": "^7.24.0", + "eslint": "^8.57.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jest": "^27.9.0", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", + "prettier": "^3.2.5" + }, + "lint-staged": { + "*.js": "eslint --fix", + "*.{js,css,md}": "prettier --write" + } +} diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..e69de29 diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..ee23536 --- /dev/null +++ b/src/index.js @@ -0,0 +1,5 @@ +function initFunction(text) { + return text; +} + +export default initFunction; diff --git a/src/index.test.js b/src/index.test.js new file mode 100644 index 0000000..b6ba9b9 --- /dev/null +++ b/src/index.test.js @@ -0,0 +1,7 @@ +import initFunction from "./index"; + +describe("Sanity tests", () => { + it("Check text in console.log", () => { + expect(initFunction("test text")).toBe("test text"); + }); +}); From efa705ea5044376579d770412b96433cb95ee8de Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Mon, 4 Mar 2024 20:24:37 +0300 Subject: [PATCH 02/17] =?UTF-8?q?=D0=9D=D0=B0=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B9=D0=BA=D0=B0=20=D1=80=D0=B5=D0=BF=D0=BE=D0=B7=D0=B8=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintignore | 1 + .eslintrc.js | 16 +- package-lock.json | 768 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 7 +- 4 files changed, 788 insertions(+), 4 deletions(-) create mode 100644 .eslintignore diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..4ebc8ae --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +coverage diff --git a/.eslintrc.js b/.eslintrc.js index 0efdb25..2dca87a 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -15,11 +15,23 @@ module.exports = { sourceType: "script", }, }, + { + files: ["*.html"], + parser: "@html-eslint/parser", + extends: ["plugin:@html-eslint/recommended"], + }, ], parserOptions: { ecmaVersion: "latest", sourceType: "module", }, - plugins: ["jest"], - rules: {}, + plugins: ["jest", "@html-eslint"], + rules: { + "import/extensions": [ + "off", + { + ignorePackages: true, + }, + ], + }, }; diff --git a/package-lock.json b/package-lock.json index 1f39014..59679be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,14 +10,18 @@ "license": "ISC", "devDependencies": { "@babel/preset-env": "^7.24.0", + "@html-eslint/eslint-plugin": "^0.23.1", + "@html-eslint/parser": "^0.23.0", "eslint": "^8.57.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-prettier": "^5.1.3", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", - "prettier": "^3.2.5" + "prettier": "^3.2.5", + "serve": "^14.2.1" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -1987,6 +1991,27 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@html-eslint/eslint-plugin": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.23.1.tgz", + "integrity": "sha512-2AU58FZSPPHjNJzuv08GfgU/nfrVgNI4Uj9y6KOaU5egzAf1DO5x6HeZwvS0MPBAduqoC0i1RqHNSQrzCcmB7A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@html-eslint/parser": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.23.0.tgz", + "integrity": "sha512-mZTxkgN8WzoLtIo0U8BKlm3y/D9pGlXuALqEaliDPah6wGo+LkTUOfxQklmuAP2N66e5ORCjdAo4PpakEcCUUg==", + "dev": true, + "dependencies": { + "es-html-parser": "^0.0.9" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -2406,6 +2431,18 @@ "node": ">= 8" } }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -2772,6 +2809,12 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, + "node_modules/@zeit/schemas": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.29.0.tgz", + "integrity": "sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA==", + "dev": true + }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -2779,6 +2822,19 @@ "deprecated": "Use your platform's native atob() and btoa() methods instead", "dev": true }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", @@ -2847,6 +2903,15 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -2899,6 +2964,32 @@ "node": ">= 8" } }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -3221,6 +3312,143 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/boxen": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", + "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.0", + "chalk": "^5.0.1", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/boxen/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3290,6 +3518,15 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -3363,6 +3600,21 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, "node_modules/char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", @@ -3393,6 +3645,35 @@ "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", "dev": true }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", + "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", + "dev": true, + "dependencies": { + "arch": "^2.2.0", + "execa": "^5.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -3453,6 +3734,51 @@ "node": ">= 0.8" } }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -3465,6 +3791,15 @@ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -3594,6 +3929,15 @@ } } }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -3707,6 +4051,12 @@ "node": ">=12" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/electron-to-chromium": { "version": "1.4.689", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.689.tgz", @@ -3834,6 +4184,12 @@ "node": ">= 0.4" } }, + "node_modules/es-html-parser": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/es-html-parser/-/es-html-parser-0.0.9.tgz", + "integrity": "sha512-oniQMi+466VFsDzcdron9Ry/sqUJpDJg1bbDn0jFJKDdxXhwIOYDr4DgBnO5/yPLGj2xv+n5yy4L1Q0vAC5TYQ==", + "dev": true + }, "node_modules/es-set-tostringtag": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", @@ -4122,6 +4478,36 @@ } } }, + "node_modules/eslint-plugin-prettier": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", + "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, "node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", @@ -4379,6 +4765,12 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -4419,6 +4811,21 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dev": true, + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -4973,6 +5380,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, "node_modules/internal-slot": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", @@ -5076,6 +5489,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -5160,6 +5588,18 @@ "node": ">=8" } }, + "node_modules/is-port-reachable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", + "integrity": "sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", @@ -5266,6 +5706,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -6331,6 +6783,15 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -6467,6 +6928,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -6619,6 +7089,12 @@ "node": ">=0.10.0" } }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -6634,6 +7110,12 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==", + "dev": true + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -6715,6 +7197,18 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -6811,6 +7305,39 @@ } ] }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", @@ -6885,6 +7412,28 @@ "node": ">=4" } }, + "node_modules/registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", + "dev": true, + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", @@ -6915,6 +7464,15 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -7034,6 +7592,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/safe-regex-test": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", @@ -7078,6 +7642,102 @@ "semver": "bin/semver.js" } }, + "node_modules/serve": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.1.tgz", + "integrity": "sha512-48er5fzHh7GCShLnNyPBRPEjs2I6QBozeGr02gaacROiyS/8ARADlj595j39iZXAqBbJHH/ivJJyPRWY9sQWZA==", + "dev": true, + "dependencies": { + "@zeit/schemas": "2.29.0", + "ajv": "8.11.0", + "arg": "5.0.2", + "boxen": "7.0.0", + "chalk": "5.0.1", + "chalk-template": "0.4.0", + "clipboardy": "3.0.0", + "compression": "1.7.4", + "is-port-reachable": "4.0.0", + "serve-handler": "6.1.5", + "update-check": "1.5.4" + }, + "bin": { + "serve": "build/main.js" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/serve-handler": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", + "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", + "dev": true, + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dev": true, + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/serve/node_modules/chalk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/serve/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "node_modules/set-function-length": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", @@ -7351,6 +8011,28 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "node_modules/synckit": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", + "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/synckit/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -7699,6 +8381,16 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/update-check": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz", + "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==", + "dev": true, + "dependencies": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -7732,6 +8424,15 @@ "node": ">=10.12.0" } }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", @@ -7846,6 +8547,71 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "dev": true, + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/widest-line/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", diff --git a/package.json b/package.json index 57fbdcf..caa0e32 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "description": "Выполнение домашнего задания для лекции \"Код как «проект» - артефакты работы разработчика. Зависимости и утилиты в стеке JavaScript\"", "main": "index.js", "scripts": { + "serve": "serve ./src", "test": "jest", "lint": "prettier --check . && eslint .", "lint:fix": "prettier --write . && eslint . --fix", @@ -21,14 +22,18 @@ "homepage": "https://github.com/SergeyAkkuratov/OTUS_homework_lesson07#readme", "devDependencies": { "@babel/preset-env": "^7.24.0", + "@html-eslint/eslint-plugin": "^0.23.1", + "@html-eslint/parser": "^0.23.0", "eslint": "^8.57.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-prettier": "^5.1.3", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", - "prettier": "^3.2.5" + "prettier": "^3.2.5", + "serve": "^14.2.1" }, "lint-staged": { "*.js": "eslint --fix", From 61acf3c44c731fc78abd9b1377a05747774592b0 Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Mon, 4 Mar 2024 20:38:47 +0300 Subject: [PATCH 03/17] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20husky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 16 ++++++++++++++++ package.json | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 59679be..dcbdc55 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "eslint-plugin-import": "^2.29.1", "eslint-plugin-jest": "^27.9.0", "eslint-plugin-prettier": "^5.1.3", + "husky": "^9.0.11", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "prettier": "^3.2.5", @@ -5290,6 +5291,21 @@ "node": ">=10.17.0" } }, + "node_modules/husky": { + "version": "9.0.11", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.0.11.tgz", + "integrity": "sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==", + "dev": true, + "bin": { + "husky": "bin.mjs" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", diff --git a/package.json b/package.json index caa0e32..d8a86b3 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,7 @@ "serve": "serve ./src", "test": "jest", "lint": "prettier --check . && eslint .", - "lint:fix": "prettier --write . && eslint . --fix", - "prepare": "husky install" + "lint:fix": "prettier --write . && eslint . --fix" }, "repository": { "type": "git", @@ -30,6 +29,7 @@ "eslint-plugin-import": "^2.29.1", "eslint-plugin-jest": "^27.9.0", "eslint-plugin-prettier": "^5.1.3", + "husky": "^9.0.11", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "prettier": "^3.2.5", From b3f4d8fc0fa44034a12716810d98e9df6895585d Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Tue, 5 Mar 2024 16:38:24 +0300 Subject: [PATCH 04/17] =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D0=B5=D1=82=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.html | 33 +++++++++++++++++++++++++++++++++ src/oops.png | Bin 0 -> 120308 bytes src/style.css | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 src/oops.png create mode 100644 src/style.css diff --git a/src/index.html b/src/index.html index e69de29..8c670b9 100644 --- a/src/index.html +++ b/src/index.html @@ -0,0 +1,33 @@ + + + + + Wwather Application + + + +
+ +
+
+ + +
+
+ Couldn't get image of map +
+
+ Moscow + Couldn't get icon of weather + Температура: 2 C +
+
+
+ History: +
+
+ + + \ No newline at end of file diff --git a/src/oops.png b/src/oops.png new file mode 100644 index 0000000000000000000000000000000000000000..35e21523bb025d5855ec74c2163e77c94750da63 GIT binary patch literal 120308 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�= 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 G1OFd$_Icj` literal 0 HcmV?d00001 diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..0d78c0f --- /dev/null +++ b/src/style.css @@ -0,0 +1,42 @@ +.form-block { + clear: both; + margin: 20px; + height: 10%; +} + +.history-block { + float: right; +} + +.history-block span { + font-size: 2em; + font-weight: bold; + text-decoration: underline; +} + +.history-block p { + font-size: 2em; +} + +.info-block { + float: left; +} + +.info-block div { + display: inline-block; + width: 300px; + height: 300px; + vertical-align: top; +} + +#info span { + display: block; + font-size: 2em; + font-weight: bold; +} + +#map { + width: 300px; + height: 300px; + vertical-align: top; +} From a642f38f4525b561ded242a83305fefcd3dea260 Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Tue, 5 Mar 2024 16:53:05 +0300 Subject: [PATCH 05/17] =?UTF-8?q?=D0=9D=D0=B0=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B9=D0=BA=D0=B0=20GitHub=20Actions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.js | 1 + .github/workflows/sanity-check.yml | 34 +++++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index 2dca87a..b51cb07 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -33,5 +33,6 @@ module.exports = { ignorePackages: true, }, ], + "@html-eslint/indent": ["error", 4], }, }; diff --git a/.github/workflows/sanity-check.yml b/.github/workflows/sanity-check.yml index a9741e5..1b5ebdd 100644 --- a/.github/workflows/sanity-check.yml +++ b/.github/workflows/sanity-check.yml @@ -1,4 +1,4 @@ -name: PR Sanity Check +name: PR Check, GitHub Pages deploy, Snadbox link on: pull_request @@ -20,3 +20,35 @@ jobs: - name: Lint check run: | npm run test + + build: + # name of the job, you can rename this as needed + name: Crafting Preview Link + runs-on: [ubuntu-latest] + env: + # This tells the action to use the token so that it can post a comment to PR. + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - name: generate-preview-url # name of this step, you can rename this as needed + uses: crafting-dev/sandbox-launch-action@0.5.3 # update the version as needed + with: + # required inputs for sandbox-launch-action to specify the target template. + template: TEMPLATE_NAME + + deploy-site: + runs-on: ubuntu-latest + needs: lint + + permissions: + pages: write + id-token: write + + environment: + # environment created automatically by GitHub + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 From ddbf850058b6f3da2c55f9ff356056b3eb8c364c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=90=D0=BA=D0=BA?= =?UTF-8?q?=D1=83=D1=80=D0=B0=D1=82=D0=BE=D0=B2?= <107053715+SergeyAkkuratov@users.noreply.github.com> Date: Tue, 5 Mar 2024 16:58:43 +0300 Subject: [PATCH 06/17] Update sanity-check.yml --- .github/workflows/sanity-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sanity-check.yml b/.github/workflows/sanity-check.yml index 1b5ebdd..f1c9ac0 100644 --- a/.github/workflows/sanity-check.yml +++ b/.github/workflows/sanity-check.yml @@ -30,7 +30,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: generate-preview-url # name of this step, you can rename this as needed - uses: crafting-dev/sandbox-launch-action@0.5.3 # update the version as needed + uses: crafting-dev/sandbox-launch-action@master # update the version as needed with: # required inputs for sandbox-launch-action to specify the target template. template: TEMPLATE_NAME From 8d5ab3fc9de4babf03307ca6cd287e2282d064c8 Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Tue, 5 Mar 2024 20:06:43 +0300 Subject: [PATCH 07/17] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BB=D0=B8=D0=BD=D1=82=D0=B5?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=20=D0=B8=20workflow.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.js | 8 +--- .github/workflows/sanity-check.yml | 16 +------ package-lock.json | 23 ---------- package.json | 2 - src/index.html | 69 +++++++++++++++++------------- 5 files changed, 41 insertions(+), 77 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index b51cb07..e05d91b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -15,17 +15,12 @@ module.exports = { sourceType: "script", }, }, - { - files: ["*.html"], - parser: "@html-eslint/parser", - extends: ["plugin:@html-eslint/recommended"], - }, ], parserOptions: { ecmaVersion: "latest", sourceType: "module", }, - plugins: ["jest", "@html-eslint"], + plugins: ["jest"], rules: { "import/extensions": [ "off", @@ -33,6 +28,5 @@ module.exports = { ignorePackages: true, }, ], - "@html-eslint/indent": ["error", 4], }, }; diff --git a/.github/workflows/sanity-check.yml b/.github/workflows/sanity-check.yml index 1b5ebdd..e56a403 100644 --- a/.github/workflows/sanity-check.yml +++ b/.github/workflows/sanity-check.yml @@ -20,25 +20,11 @@ jobs: - name: Lint check run: | npm run test - - build: - # name of the job, you can rename this as needed - name: Crafting Preview Link - runs-on: [ubuntu-latest] - env: - # This tells the action to use the token so that it can post a comment to PR. - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - steps: - - name: generate-preview-url # name of this step, you can rename this as needed - uses: crafting-dev/sandbox-launch-action@0.5.3 # update the version as needed - with: - # required inputs for sandbox-launch-action to specify the target template. - template: TEMPLATE_NAME deploy-site: runs-on: ubuntu-latest needs: lint - + permissions: pages: write id-token: write diff --git a/package-lock.json b/package-lock.json index dcbdc55..581953f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,8 +10,6 @@ "license": "ISC", "devDependencies": { "@babel/preset-env": "^7.24.0", - "@html-eslint/eslint-plugin": "^0.23.1", - "@html-eslint/parser": "^0.23.0", "eslint": "^8.57.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^9.1.0", @@ -1992,27 +1990,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@html-eslint/eslint-plugin": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.23.1.tgz", - "integrity": "sha512-2AU58FZSPPHjNJzuv08GfgU/nfrVgNI4Uj9y6KOaU5egzAf1DO5x6HeZwvS0MPBAduqoC0i1RqHNSQrzCcmB7A==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@html-eslint/parser": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.23.0.tgz", - "integrity": "sha512-mZTxkgN8WzoLtIo0U8BKlm3y/D9pGlXuALqEaliDPah6wGo+LkTUOfxQklmuAP2N66e5ORCjdAo4PpakEcCUUg==", - "dev": true, - "dependencies": { - "es-html-parser": "^0.0.9" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", diff --git a/package.json b/package.json index d8a86b3..7cd2622 100644 --- a/package.json +++ b/package.json @@ -21,8 +21,6 @@ "homepage": "https://github.com/SergeyAkkuratov/OTUS_homework_lesson07#readme", "devDependencies": { "@babel/preset-env": "^7.24.0", - "@html-eslint/eslint-plugin": "^0.23.1", - "@html-eslint/parser": "^0.23.0", "eslint": "^8.57.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^9.1.0", diff --git a/src/index.html b/src/index.html index 8c670b9..6f5735c 100644 --- a/src/index.html +++ b/src/index.html @@ -1,33 +1,42 @@ - - - Wwather Application - - - -

- -
-
- - -
-
- Couldn't get image of map -
-
- Moscow - Couldn't get icon of weather - Температура: 2 C -
-
-
- History: -
+ + Wwather Application + + + +
+ +
+
+ + +
+
+ Couldn't get image of map
- - - \ No newline at end of file +
+ Moscow + Couldn't get icon of weather + Температура: 2 C +
+
+
+ History: +
+
+ + + From b0d2f625ae9388b26e7d502adb6ba8cc54cb99b2 Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Wed, 6 Mar 2024 17:06:55 +0300 Subject: [PATCH 08/17] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F=20GitHub=20?= =?UTF-8?q?Actions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pull_request_check.yml | 51 ++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 .github/workflows/pull_request_check.yml diff --git a/.github/workflows/pull_request_check.yml b/.github/workflows/pull_request_check.yml new file mode 100644 index 0000000..1c56575 --- /dev/null +++ b/.github/workflows/pull_request_check.yml @@ -0,0 +1,51 @@ +name: PR Check, GitHub Pages deploy, CodeSandbox link + +on: pull_request + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + check: + runs-on: ubuntu-20.04 + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Install Packages + run: | + npm install + - name: Lint check + run: | + npm run lint + - name: Test check + run: | + npm run test + + # Single deploy job since we're just deploying + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Pages + uses: actions/configure-pages@v4 + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + # Upload entire repository + path: './src' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 \ No newline at end of file From d64e4df268e8f1c220efc7a5a78d2bf69c422138 Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Wed, 6 Mar 2024 17:09:52 +0300 Subject: [PATCH 09/17] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BB=D0=B8=D0=BD=D1=82=D0=B5?= =?UTF-8?q?=D1=80=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pull_request_check.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull_request_check.yml b/.github/workflows/pull_request_check.yml index 1c56575..4c82e35 100644 --- a/.github/workflows/pull_request_check.yml +++ b/.github/workflows/pull_request_check.yml @@ -45,7 +45,7 @@ jobs: uses: actions/upload-pages-artifact@v3 with: # Upload entire repository - path: './src' + path: "./src" - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 \ No newline at end of file + uses: actions/deploy-pages@v4 From 9571e0fae9853aced983a96c0e93d1e9fce6564a Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Wed, 6 Mar 2024 17:24:12 +0300 Subject: [PATCH 10/17] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=BB=D1=8F=20=D0=BC=D0=B0?= =?UTF-8?q?=D0=BD=D1=83=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20GitHub=20Actions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pull_request_check.yml | 11 +++++-- .github/workflows/sanity-check.yml | 40 ------------------------ 2 files changed, 8 insertions(+), 43 deletions(-) delete mode 100644 .github/workflows/sanity-check.yml diff --git a/.github/workflows/pull_request_check.yml b/.github/workflows/pull_request_check.yml index 4c82e35..5efd56e 100644 --- a/.github/workflows/pull_request_check.yml +++ b/.github/workflows/pull_request_check.yml @@ -1,6 +1,12 @@ name: PR Check, GitHub Pages deploy, CodeSandbox link -on: pull_request +on: + pull_request: + branches: + - main + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: @@ -19,7 +25,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Packages run: | npm install @@ -44,7 +50,6 @@ jobs: - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: - # Upload entire repository path: "./src" - name: Deploy to GitHub Pages id: deployment diff --git a/.github/workflows/sanity-check.yml b/.github/workflows/sanity-check.yml deleted file mode 100644 index e56a403..0000000 --- a/.github/workflows/sanity-check.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: PR Check, GitHub Pages deploy, Snadbox link - -on: pull_request - -jobs: - lint: - runs-on: ubuntu-20.04 - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Install Packages - run: | - npm install - - - name: Lint check - run: | - npm run lint - - - name: Lint check - run: | - npm run test - - deploy-site: - runs-on: ubuntu-latest - needs: lint - - permissions: - pages: write - id-token: write - - environment: - # environment created automatically by GitHub - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 From 7afb528f6cabc3f42a7dbf41e15012af079cd727 Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Wed, 6 Mar 2024 17:27:26 +0300 Subject: [PATCH 11/17] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=BB=D1=8F=20=D0=BC=D0=B0?= =?UTF-8?q?=D0=BD=D1=83=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20GitHub=20Actions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pull_request_check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request_check.yml b/.github/workflows/pull_request_check.yml index 5efd56e..4d15bfc 100644 --- a/.github/workflows/pull_request_check.yml +++ b/.github/workflows/pull_request_check.yml @@ -3,7 +3,7 @@ name: PR Check, GitHub Pages deploy, CodeSandbox link on: pull_request: branches: - - main + - sakkuratov # Allows you to run this workflow manually from the Actions tab workflow_dispatch: From cedc02bd9201d0792611403f077177d3007fc39c Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Wed, 6 Mar 2024 17:29:38 +0300 Subject: [PATCH 12/17] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=84=D0=B8=D0=BB=D1=8C=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=20=D0=B4=D0=BB=D1=8F=20=D0=B7=D0=B0=D0=BF?= =?UTF-8?q?=D1=83=D1=81=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pull_request_check.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/pull_request_check.yml b/.github/workflows/pull_request_check.yml index 4d15bfc..6c9e709 100644 --- a/.github/workflows/pull_request_check.yml +++ b/.github/workflows/pull_request_check.yml @@ -2,9 +2,6 @@ name: PR Check, GitHub Pages deploy, CodeSandbox link on: pull_request: - branches: - - sakkuratov - # Allows you to run this workflow manually from the Actions tab workflow_dispatch: From e0fdcf82a6f75c5bf465baac4d5aa35a0e985b5a Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Wed, 6 Mar 2024 17:47:55 +0300 Subject: [PATCH 13/17] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BD=D0=B0=20Codesnadbox?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pull_request_check.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/pull_request_check.yml b/.github/workflows/pull_request_check.yml index 6c9e709..6c605ed 100644 --- a/.github/workflows/pull_request_check.yml +++ b/.github/workflows/pull_request_check.yml @@ -32,6 +32,17 @@ jobs: - name: Test check run: | npm run test + + annotate_pull_request: + runs-on: ubuntu-latest + name: perform annotation + steps: + - name: annotation action step + id: annotation + uses: kherin/pr-comment-action@v1.0.1 + with: + annotation-url: "https://githubbox.com/" + token: ${{ secrets.GITHUB_TOKEN }} # Single deploy job since we're just deploying deploy: @@ -39,6 +50,7 @@ jobs: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest + needs: check steps: - name: Checkout uses: actions/checkout@v4 From 002f553ce9f60382c49d5c167bc9f2952a4c00fd Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Wed, 6 Mar 2024 17:51:22 +0300 Subject: [PATCH 14/17] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=BB=D1=8F=20prieter,?= =?UTF-8?q?=20=D0=B4=D0=BE=D0=B0=D0=B2=D0=B1=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=20yml=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2=20=D0=B2=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D1=83=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B8=D1=82=D0=BE=D0=BC?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pull_request_check.yml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull_request_check.yml b/.github/workflows/pull_request_check.yml index 6c605ed..c3fa30c 100644 --- a/.github/workflows/pull_request_check.yml +++ b/.github/workflows/pull_request_check.yml @@ -32,7 +32,7 @@ jobs: - name: Test check run: | npm run test - + annotate_pull_request: runs-on: ubuntu-latest name: perform annotation diff --git a/package.json b/package.json index 7cd2622..7a76ee6 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,6 @@ }, "lint-staged": { "*.js": "eslint --fix", - "*.{js,css,md}": "prettier --write" + "*.{js,css,md,yml}": "prettier --write" } } From 2667ad8c687a9cdd42ec59136feac1e190429789 Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Wed, 6 Mar 2024 18:05:05 +0300 Subject: [PATCH 15/17] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B0=D0=B2=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20GitHub=20Token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pull_request_check.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull_request_check.yml b/.github/workflows/pull_request_check.yml index c3fa30c..cb09314 100644 --- a/.github/workflows/pull_request_check.yml +++ b/.github/workflows/pull_request_check.yml @@ -10,6 +10,7 @@ permissions: contents: read pages: write id-token: write + pull-requests: write # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. From 7bbf33c8187a09f1b2238e58df826167b8536360 Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Sat, 9 Mar 2024 17:54:23 +0300 Subject: [PATCH 16/17] =?UTF-8?q?=D0=9E=D1=81=D0=BD=D0=BE=D0=B2=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=BE=D0=BD?= =?UTF-8?q?=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.html | 35 +--------------- src/index.js | 6 +-- src/index.test.js | 7 ---- src/style.css | 21 ++++++++-- src/weatherApp.js | 102 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 123 insertions(+), 48 deletions(-) delete mode 100644 src/index.test.js create mode 100644 src/weatherApp.js diff --git a/src/index.html b/src/index.html index 6f5735c..d915c2e 100644 --- a/src/index.html +++ b/src/index.html @@ -2,41 +2,10 @@ Wwather Application - + -
- -
-
- - -
-
- Couldn't get image of map -
-
- Moscow - Couldn't get icon of weather - Температура: 2 C -
-
-
- History: -
-
+
diff --git a/src/index.js b/src/index.js index ee23536..14d0724 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,3 @@ -function initFunction(text) { - return text; -} +import weatherApp from "./weatherApp.js"; -export default initFunction; +weatherApp(document.querySelector("#main")); diff --git a/src/index.test.js b/src/index.test.js deleted file mode 100644 index b6ba9b9..0000000 --- a/src/index.test.js +++ /dev/null @@ -1,7 +0,0 @@ -import initFunction from "./index"; - -describe("Sanity tests", () => { - it("Check text in console.log", () => { - expect(initFunction("test text")).toBe("test text"); - }); -}); diff --git a/src/style.css b/src/style.css index 0d78c0f..6da546f 100644 --- a/src/style.css +++ b/src/style.css @@ -14,10 +14,6 @@ text-decoration: underline; } -.history-block p { - font-size: 2em; -} - .info-block { float: left; } @@ -40,3 +36,20 @@ height: 300px; vertical-align: top; } + +.history-block p { + font-size: 2em; +} + +.history-block p:link { + color: blue; +} + +.history-block p:visited { + color: green; +} + +.history-block p:hover { + color: red; + cursor: pointer; +} diff --git a/src/weatherApp.js b/src/weatherApp.js new file mode 100644 index 0000000..c014f86 --- /dev/null +++ b/src/weatherApp.js @@ -0,0 +1,102 @@ +/* eslint-disable no-alert */ +/* eslint no-param-reassign: ["error", { "props": false }] */ +const maxHistorylines = 10; + +async function getWeather(cityName) { + const response = await fetch( + `https://api.openweathermap.org/data/2.5/weather?units=metric&q=${cityName}&appid=862e72718d993f06e2ca165446011711`, + ); + return response.json(); +} + +async function getMap(coord) { + const response = await fetch( + `https://static-maps.yandex.ru/v1?ll=${coord.lon},${coord.lat}&size=300,300&z=8&apikey=21ae407c-6788-4393-bbfa-d1cf463287b0`, + ); + return response.blob(); +} + +async function getInfoByIP() { + const response = await fetch( + `https://ipgeolocation.abstractapi.com/v1/?api_key=763242ab3637495ba08023d1154aa96a`, + ); + return response.json(); +} + +export default async function weatherApp(element) { + function showWeather(data) { + const weatherInfo = element.querySelector("#info"); + weatherInfo.innerHTML = `

${data.name}

`; + weatherInfo.innerHTML += `

Температура: ${data.main.temp} C

`; + weatherInfo.innerHTML += `Couldn't load icon of weather`; + } + + function showMap(imgSource) { + element.querySelector("#map").src = URL.createObjectURL(imgSource); + } + + async function updateWeather(cityName, updateHistoryFlag) { + const weather = await getWeather(cityName); + if (weather.cod === 200) { + // eslint-disable-next-line no-use-before-define + if (updateHistoryFlag) await updateHistoryBlock(cityName); + const map = await getMap(weather.coord); + showMap(map); + showWeather(weather); + } else { + alert(weather.message); + } + } + + function onclickHistoryLine(event) { + updateWeather(event.target.innerHTML, false); + } + + async function updateHistoryBlock(cityName) { + const historyElement = element.querySelector("#history"); + const p = document.createElement("p"); + p.innerHTML = cityName; + p.addEventListener("click", onclickHistoryLine); + historyElement.appendChild(p); + const pList = historyElement.querySelectorAll("p"); + if (pList.length > maxHistorylines) { + historyElement.removeChild(pList[0]); + } + } + + const ipInfo = await getInfoByIP(); + + element.innerHTML = ` +
+
+ + +
+
+ Couldn't get image of map +
+
+ Wait for city name +
+
+
+ History: +
`; + + updateWeather(ipInfo.region); + + element + .querySelector("#weatherForm") + .addEventListener("submit", async (event) => { + event.preventDefault(); + + // читаем значение из формы + const formElement = event.target; + const inputEl = formElement.querySelector("#userInput"); + const cityName = inputEl.value; + inputEl.value = ""; + updateWeather(cityName, true); + }); +} From 37f07595afa662f9c6b90c60f8dd7fcb2ad1826f Mon Sep 17 00:00:00 2001 From: Sergey Akkuratov Date: Sat, 9 Mar 2024 17:57:34 +0300 Subject: [PATCH 17/17] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BF=D1=80=D0=BE=D1=85=D0=BE=D0=B4=D0=B8=D1=82?= =?UTF-8?q?,=20=D0=B5=D1=81=D0=BB=D0=B8=20=D0=BD=D0=B5=20=D1=82=D1=82?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D0=BE=D0=B2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7a76ee6..2ce9671 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "serve": "serve ./src", - "test": "jest", + "test": "jest --passWithNoTests", "lint": "prettier --check . && eslint .", "lint:fix": "prettier --write . && eslint . --fix" },