diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index ac50f1aa..00000000 --- a/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/** -build/** diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 805712b6..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,220 +0,0 @@ -{ - "extends": [ - "plugin:node/recommended", - "plugin:eslint-comments/recommended", - "plugin:eslint-plugin/all", - "plugin:unicorn/recommended" - ], - - "env": { - "node": true - }, - - "parserOptions": { - "sourceType": "script", - "ecmaVersion": 2019 - }, - - "plugins": ["node", "eslint-plugin"], - - "rules": { - "array-bracket-spacing": ["error", "never"], - "block-spacing": ["error", "always"], - "brace-style": ["error", "1tbs"], - "camelcase": ["error", { "properties": "always" }], - "comma-dangle": ["error", "never"], - "comma-spacing": ["error", { "before": false, "after": true }], - "comma-style": ["error", "last"], - "complexity": ["error", 10], - "computed-property-spacing": ["error", "never"], - "consistent-return": "error", - "consistent-this": ["error", "self"], - "curly": ["error", "multi-line"], - "default-case": "error", - "dot-location": ["error", "property"], - "dot-notation": "error", - "eol-last": "error", - "eqeqeq": "error", - "func-call-spacing": "error", - "func-style": ["error", "declaration"], - "guard-for-in": "error", - "indent": ["error", 4, { "SwitchCase": 1, "VariableDeclarator": 1 }], - "key-spacing": ["error", { "beforeColon": false, "afterColon": true }], - "keyword-spacing": ["error", { "before": true, "after": true }], - "linebreak-style": ["error", "unix"], - "lines-around-comment": [ - "error", - { - "beforeBlockComment": false, - "afterBlockComment": false, - "beforeLineComment": true, - "afterLineComment": false, - "allowBlockStart": true, - "allowBlockEnd": true, - "allowObjectStart": true, - "allowObjectEnd": true, - "allowArrayStart": true, - "allowArrayEnd": true - } - ], - "max-depth": ["error", 5], - "new-cap": ["error", { "newIsCap": true, "capIsNew": true }], - "new-parens": "error", - "no-array-constructor": "error", - "no-caller": "error", - "no-catch-shadow": "error", - "no-cond-assign": ["error", "except-parens"], - "no-console": "error", - "no-const-assign": "error", - "no-constant-condition": "error", - "no-control-regex": "error", - "no-debugger": "error", - "no-delete-var": "error", - "no-dupe-args": "error", - "no-dupe-keys": "error", - "no-duplicate-case": "error", - "no-else-return": "error", - "no-empty": "error", - "no-empty-character-class": "error", - "no-empty-function": "error", - "no-eval": "error", - "no-ex-assign": "error", - "no-extend-native": "error", - "no-extra-boolean-cast": "error", - "no-extra-parens": "error", - "no-extra-semi": "error", - "no-fallthrough": "error", - "no-floating-decimal": "error", - "no-func-assign": "error", - "no-implied-eval": "error", - "no-invalid-regexp": "error", - "no-irregular-whitespace": "error", - "no-labels": "error", - "no-lone-blocks": "error", - "no-lonely-if": "error", - "no-loop-func": "error", - "no-mixed-requires": "error", - "no-mixed-spaces-and-tabs": "error", - "no-multi-spaces": ["error", { "ignoreEOLComments": true }], - "no-multi-str": "error", - "no-multiple-empty-lines": "error", - "no-unsafe-negation": "error", - "no-nested-ternary": "error", - "no-new-func": "error", - "no-new-object": "error", - "no-new-require": "error", - "no-new-wrappers": "error", - "no-octal": "error", - "no-octal-escape": "error", - "no-path-concat": "error", - "no-process-exit": "error", - "no-redeclare": "error", - "no-return-assign": "error", - "no-regex-spaces": "error", - "no-self-assign": "error", - "no-self-compare": "error", - "no-sequences": "error", - "no-sparse-arrays": "error", - "no-template-curly-in-string": "error", - "no-throw-literal": "error", - "no-trailing-spaces": "error", - "no-undef": "error", - "no-undefined": "error", - "no-underscore-dangle": "error", - "no-unexpected-multiline": "error", - "no-unmodified-loop-condition": "error", - "no-unneeded-ternary": "error", - "no-unreachable": "error", - "no-unsafe-finally": "error", - "no-unused-expressions": "error", - "no-unused-vars": "error", - "no-use-before-define": "error", - "no-useless-call": "error", - "no-useless-concat": "error", - "no-useless-escape": "error", - "no-useless-return": "error", - "no-var": "error", - "no-warning-comments": "error", - "no-whitespace-before-property": "error", - "no-with": "error", - "object-curly-newline": ["error", { "consistent": true }], - "object-curly-spacing": ["error", "always"], - "object-property-newline": "error", - "operator-assignment": ["error", "always"], - "operator-linebreak": ["error", "after"], - "padded-blocks": ["error", "never"], - "prefer-const": "error", - "prefer-template": "error", - "quote-props": ["error", "consistent"], - "quotes": ["error", "double"], - "radix": "error", - "semi": ["error", "always"], - "semi-spacing": ["error", { "before": false, "after": true }], - "space-before-blocks": ["error", "always"], - "space-before-function-paren": ["error", { "anonymous": "always", "named": "never" }], - "space-in-parens": ["error", "never"], - "space-infix-ops": "error", - "space-unary-ops": ["error", { "words": true, "nonwords": false }], - "spaced-comment": ["error", "always", { "exceptions": ["-"] }], - "strict": ["error", "global"], - "template-curly-spacing": ["error", "never"], - "use-isnan": "error", - "valid-jsdoc": ["error", { - "prefer": { - "return": "returns" - } - }], - "valid-typeof": "error", - "wrap-iife": "error", - "yoda": ["error", "never"], - - // eslint-plugin-eslint-plugin - "eslint-plugin/meta-property-ordering": ["error", [ - "type", "docs", "fixable", "messages", "schema", "deprecated", "replacedBy" - ]], - "eslint-plugin/require-meta-docs-url": ["error", { - "pattern": "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/{{name}}.md" - }], - - // eslint-plugin-unicorn - "unicorn/consistent-function-scoping": "off", - "unicorn/empty-brace-spaces": "off", - "unicorn/filename-case": "off", - "unicorn/no-array-reduce": "off", - "unicorn/no-null": "off", - "unicorn/prefer-module": "off", - "unicorn/prefer-node-protocol": "off", // TODO: enable once we raise Node requirement to v16.0.0, v14.18.0. - "unicorn/prevent-abbreviations": "off" - }, - - "overrides": [ - { - "files": ["**/*.md"], - "processor": "markdown/markdown" - }, - { - "files": ["**/*.md/*.js", "**/*.md/*.javascript"], - "plugins": ["markdown"], - "parserOptions": { - "sourceType": "module" - }, - "rules": { - "brace-style": "off", - "eqeqeq": "off", - "guard-for-in": "off", - "no-constant-condition": "off", - "no-empty-function": "off", - "no-undef": "off", - "no-unused-expressions": "off", - "no-unused-vars": "off", - "no-var": "off", - "quotes": "off", - "space-before-function-paren": "off" - } - }, - { - "files": ["tests/**/*.js"], - "extends": ["plugin:mocha/recommended"] - } - ] -} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 68e5c5c6..5b1aff5e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,7 +6,7 @@ name: CI on: push: pull_request: - branches: [ master ] + branches: [ main ] jobs: build: @@ -16,32 +16,41 @@ jobs: strategy: matrix: os: [ ubuntu, windows ] - node-version: [12.x, 14.x, 16.x, 18.x] + node-version: [16.x, 18.x, 20.x] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - run: npm ci - run: npm run test:unit - - run: npm install --save-dev eslint@7 && npm run test:unit - name: Coveralls - uses: coverallsapp/github-action@master + uses: coverallsapp/github-action@v2 with: github-token: ${{ secrets.GITHUB_TOKEN }} - path-to-lcov: ./build/coverage/lcov.info + file: ./build/coverage/lcov.info + parallel: true lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: - node-version: "18.x" + node-version: "20.x" - run: npm ci - run: npm run lint + + finish-coveralls: + needs: build + runs-on: ubuntu-latest + steps: + - name: Close parallel build + uses: coverallsapp/github-action@v2 + with: + parallel-finished: true \ No newline at end of file diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 9e79425f..b9b25c9d 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,10 @@ name: "CodeQL" on: push: - branches: [ "master" ] + branches: [ "main" ] pull_request: # The branches below must be a subset of the branches above - branches: [ "master" ] + branches: [ "main" ] schedule: - cron: '32 15 * * 2' @@ -38,11 +38,11 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -56,7 +56,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@v3 # ℹī¸ Command-line programs to run using the OS shell. # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun @@ -69,6 +69,6 @@ jobs: # ./location_of_script_within_repo/buildscript.sh - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 with: category: "/language:${{matrix.language}}" diff --git a/.gitignore b/.gitignore index e75d1ac1..5f80116c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ build/coverage .nyc_output/ npm-debug.log .eslintcache + +# eslint-remote-tester +/eslint-remote-tester-results/ diff --git a/CHANGELOG.md b/CHANGELOG.md index be6795b6..2b4cad29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,57 @@ +## [8.0.1](https://github.com/platinumazure/eslint-plugin-qunit/compare/v8.0.0...v8.0.1) (2023-10-07) + + +### Bug Fixes + +* loosen regex in no-commented-tests (fixes [#61](https://github.com/platinumazure/eslint-plugin-qunit/issues/61)) ([#415](https://github.com/platinumazure/eslint-plugin-qunit/issues/415)) ([497c27f](https://github.com/platinumazure/eslint-plugin-qunit/commit/497c27fa542c3083517dc953f7b5c580b305bf4c)) + + +### Documentation + +* fix default in doc for require-expect ([#383](https://github.com/platinumazure/eslint-plugin-qunit/issues/383)) ([a70ea57](https://github.com/platinumazure/eslint-plugin-qunit/commit/a70ea57cddfc5452183114f46616786413fd7565)) + + +### Chores + +* add eslint-remote-tester ([#299](https://github.com/platinumazure/eslint-plugin-qunit/issues/299)) ([b893cb0](https://github.com/platinumazure/eslint-plugin-qunit/commit/b893cb03bdd6e075da287d713d454e66e449d6ea)) +* devDependencies upgrades ([f11823d](https://github.com/platinumazure/eslint-plugin-qunit/commit/f11823d75a065893e41da8805b291aeb1b7b11d8)), closes [#413](https://github.com/platinumazure/eslint-plugin-qunit/issues/413) [#412](https://github.com/platinumazure/eslint-plugin-qunit/issues/412) [#395](https://github.com/platinumazure/eslint-plugin-qunit/issues/395) [#394](https://github.com/platinumazure/eslint-plugin-qunit/issues/394) [#387](https://github.com/platinumazure/eslint-plugin-qunit/issues/387) [#385](https://github.com/platinumazure/eslint-plugin-qunit/issues/385) +* Update typescript and @typescript-eslint/parser ([7782b6d](https://github.com/platinumazure/eslint-plugin-qunit/commit/7782b6dedc3821c1b671138fead0b2104c421357)), closes [#414](https://github.com/platinumazure/eslint-plugin-qunit/issues/414) +* Upgrade eslint-plugin-unicorn and markdownlint-cli ([a492622](https://github.com/platinumazure/eslint-plugin-qunit/commit/a4926224c90b514fc7d93a34252f379591428a4b)), closes [#396](https://github.com/platinumazure/eslint-plugin-qunit/issues/396) +* Upgrade release-it and plugins ([a07bef3](https://github.com/platinumazure/eslint-plugin-qunit/commit/a07bef3227385bb2e3d326f06219e3f3fb31020c)), closes [#388](https://github.com/platinumazure/eslint-plugin-qunit/issues/388) + +## [8.0.0](https://github.com/platinumazure/eslint-plugin-qunit/compare/v7.3.4...v8.0.0) (2023-06-28) + + +### ⚠ BREAKING CHANGES + +* Require eslint@^8.38, drop support for eslint@7.x (#376) +* change require-expect rule default option to never-except-zero (#375) +* strictly define node API (#374) +* drop support for Node 12, 14, 17, 19 (#373) + +### Features + +* change require-expect rule default option to never-except-zero ([#375](https://github.com/platinumazure/eslint-plugin-qunit/issues/375)) ([1c5935b](https://github.com/platinumazure/eslint-plugin-qunit/commit/1c5935b7559212875de7b26b417028bb98f61659)) +* drop support for Node 12, 14, 17, 19 ([#373](https://github.com/platinumazure/eslint-plugin-qunit/issues/373)) ([2009a54](https://github.com/platinumazure/eslint-plugin-qunit/commit/2009a545a9f4bb2940531f0dd70bd140eeba9aec)) +* Require eslint@^8.38, drop support for eslint@7.x ([#376](https://github.com/platinumazure/eslint-plugin-qunit/issues/376)) ([9b30134](https://github.com/platinumazure/eslint-plugin-qunit/commit/9b30134971793fa6c7ac9a7f2212b4374c7b1002)) +* strictly define node API ([#374](https://github.com/platinumazure/eslint-plugin-qunit/issues/374)) ([391647e](https://github.com/platinumazure/eslint-plugin-qunit/commit/391647e0f81f303bd668b2080ba8d64ca52c3542)) + + +### Documentation + +* Correct GitHub access token variable name for releases ([#277](https://github.com/platinumazure/eslint-plugin-qunit/issues/277)) ([7a10cb4](https://github.com/platinumazure/eslint-plugin-qunit/commit/7a10cb422549ff312aa1446c052ffa83456269c7)) + + +### Chores + +* Add object-curly-newline to ESLint config ([0f88ebe](https://github.com/platinumazure/eslint-plugin-qunit/commit/0f88ebebe8efcfb2138c9f6093601577608b2f83)) +* tweak release-it ([#380](https://github.com/platinumazure/eslint-plugin-qunit/issues/380)) ([85f2d53](https://github.com/platinumazure/eslint-plugin-qunit/commit/85f2d5323276bfb6bce1a1dce1df8e1fb30594f4)) +* Update caniuse in lockfile to suppress warnings in npm test ([a29c17e](https://github.com/platinumazure/eslint-plugin-qunit/commit/a29c17e0e7a0d70e597a1b9da6ea660af34841c9)) +* use ecmaVersion latest for eslint ([#379](https://github.com/platinumazure/eslint-plugin-qunit/issues/379)) ([e2c206e](https://github.com/platinumazure/eslint-plugin-qunit/commit/e2c206e67d5a5a977818bb0bee96934231a99058)) +* use node protocol for imports ([#378](https://github.com/platinumazure/eslint-plugin-qunit/issues/378)) ([4177030](https://github.com/platinumazure/eslint-plugin-qunit/commit/41770309d5bb047c92b9e805c3fcd5f5639e4961)) + ## [7.3.4](https://github.com/platinumazure/eslint-plugin-qunit/compare/v7.3.3...v7.3.4) (2022-11-30) diff --git a/README.md b/README.md index 4163cc94..bc016031 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![NPM version](https://img.shields.io/npm/v/eslint-plugin-qunit.svg?style=flat)](https://npmjs.org/package/eslint-plugin-qunit) ![CI](https://github.com/platinumazure/eslint-plugin-qunit/workflows/CI/badge.svg) -[![Coverage Status](https://coveralls.io/repos/platinumazure/eslint-plugin-qunit/badge.svg?branch=master&service=github)](https://coveralls.io/github/platinumazure/eslint-plugin-qunit?branch=master) +[![Coverage Status](https://coveralls.io/repos/platinumazure/eslint-plugin-qunit/badge.svg?branch=main&service=github)](https://coveralls.io/github/platinumazure/eslint-plugin-qunit?branch=main) [![Join the chat at https://gitter.im/platinumazure/eslint-plugin-qunit](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/platinumazure/eslint-plugin-qunit?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) ESLint plugin containing rules useful for QUnit tests. @@ -13,16 +13,20 @@ You can extend from a configuration in order to simplify manual configuration of For more details on how to extend your configuration from a plugin configuration, please see the [ESLint plugin configuration documentation](https://eslint.org/docs/user-guide/configuring#using-the-configuration-from-a-plugin). -| | Name | Description | -| :-- | :--- | :---------- | -| ✅ | recommended | This configuration includes rules which I recommend to avoid QUnit runtime errors or incorrect behavior, some of which can be difficult to debug. Some of these rules also encourage best practices that help QUnit work better for you. You can use this configuration by extending from `"plugin:qunit/recommended"` in your configuration file. | + + +| | Name | Description | +| :- | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ✅ | `recommended` | This configuration includes rules which I recommend to avoid QUnit runtime errors or incorrect behavior, some of which can be difficult to debug. Some of these rules also encourage best practices that help QUnit work better for you. For ESLint `.eslintrc.js` legacy config, extend from `"plugin:qunit/recommended"`. For ESLint `eslint.config.js` flat config, load from `require('eslint-plugin-qunit/configs/recommended')`. | + + ## Rules -đŸ’ŧ [Configurations](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations) enabled in.\ -✅ Set in the `recommended` [configuration](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations).\ +đŸ’ŧ [Configurations](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations) enabled in.\ +✅ Set in the `recommended` [configuration](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations).\ 🔧 Automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/user-guide/command-line-interface#--fix).\ 💡 Manually fixable by [editor suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions). diff --git a/RELEASE.md b/RELEASE.md index b82f1924..3c7b31ff 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,6 +1,6 @@ # Release Instructions -1. `git pull` the latest master and ensure that `git status` shows no local changes +1. `git pull` the latest commits in the `main` branch and ensure that `git status` shows no local changes 2. `export GITHUB_TOKEN="..."` with a [GitHub access token](https://github.com/settings/tokens/new?scopes=repo&description=release-it) with "repo" access so [release-it](https://github.com/release-it/release-it) can conduct a GitHub release diff --git a/docs/rules/assert-args.md b/docs/rules/assert-args.md index 64330393..42fc8c60 100644 --- a/docs/rules/assert-args.md +++ b/docs/rules/assert-args.md @@ -1,6 +1,6 @@ # Enforce that the correct number of assert arguments are used (`qunit/assert-args`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/literal-compare-order.md b/docs/rules/literal-compare-order.md index 47050ca8..466b8b4c 100644 --- a/docs/rules/literal-compare-order.md +++ b/docs/rules/literal-compare-order.md @@ -1,6 +1,6 @@ # Enforce comparison assertions have arguments in the right order (`qunit/literal-compare-order`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). 🔧 This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/no-assert-equal-boolean.md b/docs/rules/no-assert-equal-boolean.md index 16119e54..fa627de7 100644 --- a/docs/rules/no-assert-equal-boolean.md +++ b/docs/rules/no-assert-equal-boolean.md @@ -1,6 +1,6 @@ # Require use of boolean assertions (`qunit/no-assert-equal-boolean`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). 🔧 This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/no-assert-equal.md b/docs/rules/no-assert-equal.md index 88cf1a7a..5a93aa6d 100644 --- a/docs/rules/no-assert-equal.md +++ b/docs/rules/no-assert-equal.md @@ -1,6 +1,6 @@ # Disallow the use of assert.equal (`qunit/no-assert-equal`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). 💡 This rule is manually fixable by [editor suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions). diff --git a/docs/rules/no-assert-logical-expression.md b/docs/rules/no-assert-logical-expression.md index f7495999..064050f5 100644 --- a/docs/rules/no-assert-logical-expression.md +++ b/docs/rules/no-assert-logical-expression.md @@ -1,6 +1,6 @@ # Disallow binary logical expressions in assert arguments (`qunit/no-assert-logical-expression`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-async-in-loops.md b/docs/rules/no-async-in-loops.md index f46e9db3..22df68f7 100644 --- a/docs/rules/no-async-in-loops.md +++ b/docs/rules/no-async-in-loops.md @@ -1,6 +1,6 @@ # Disallow async calls in loops (`qunit/no-async-in-loops`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-async-module-callbacks.md b/docs/rules/no-async-module-callbacks.md index 8cb65f3f..ddd893ac 100644 --- a/docs/rules/no-async-module-callbacks.md +++ b/docs/rules/no-async-module-callbacks.md @@ -1,6 +1,6 @@ # Disallow async module callbacks (`qunit/no-async-module-callbacks`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-async-test.md b/docs/rules/no-async-test.md index 013a7bcb..d7239aa0 100644 --- a/docs/rules/no-async-test.md +++ b/docs/rules/no-async-test.md @@ -1,6 +1,6 @@ # Disallow the use of asyncTest or QUnit.asyncTest (`qunit/no-async-test`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-commented-tests.md b/docs/rules/no-commented-tests.md index 8217ceb0..07f7b239 100644 --- a/docs/rules/no-commented-tests.md +++ b/docs/rules/no-commented-tests.md @@ -1,6 +1,6 @@ # Disallow commented tests (`qunit/no-commented-tests`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-compare-relation-boolean.md b/docs/rules/no-compare-relation-boolean.md index 3a9c1e8a..d9132407 100644 --- a/docs/rules/no-compare-relation-boolean.md +++ b/docs/rules/no-compare-relation-boolean.md @@ -1,6 +1,6 @@ # Disallow comparing relational expressions to booleans in assertions (`qunit/no-compare-relation-boolean`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). 🔧 This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/no-conditional-assertions.md b/docs/rules/no-conditional-assertions.md index bd437437..793554cd 100644 --- a/docs/rules/no-conditional-assertions.md +++ b/docs/rules/no-conditional-assertions.md @@ -1,6 +1,6 @@ # Disallow assertions within if statements or conditional expressions (`qunit/no-conditional-assertions`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-early-return.md b/docs/rules/no-early-return.md index 508b033f..e3b22556 100644 --- a/docs/rules/no-early-return.md +++ b/docs/rules/no-early-return.md @@ -1,6 +1,6 @@ # Disallow early return in tests (`qunit/no-early-return`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-global-assertions.md b/docs/rules/no-global-assertions.md index 7d994972..e3919a03 100644 --- a/docs/rules/no-global-assertions.md +++ b/docs/rules/no-global-assertions.md @@ -1,6 +1,6 @@ # Disallow global QUnit assertions (`qunit/no-global-assertions`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-global-expect.md b/docs/rules/no-global-expect.md index cb414fed..c88bba44 100644 --- a/docs/rules/no-global-expect.md +++ b/docs/rules/no-global-expect.md @@ -1,6 +1,6 @@ # Disallow global expect (`qunit/no-global-expect`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-global-module-test.md b/docs/rules/no-global-module-test.md index 9136ef40..a7598ca4 100644 --- a/docs/rules/no-global-module-test.md +++ b/docs/rules/no-global-module-test.md @@ -1,6 +1,6 @@ # Disallow global module/test/asyncTest (`qunit/no-global-module-test`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-global-stop-start.md b/docs/rules/no-global-stop-start.md index 662d7d20..4b328063 100644 --- a/docs/rules/no-global-stop-start.md +++ b/docs/rules/no-global-stop-start.md @@ -1,6 +1,6 @@ # Disallow global stop/start (`qunit/no-global-stop-start`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-hooks-from-ancestor-modules.md b/docs/rules/no-hooks-from-ancestor-modules.md index 4c4a2bfb..2733956a 100644 --- a/docs/rules/no-hooks-from-ancestor-modules.md +++ b/docs/rules/no-hooks-from-ancestor-modules.md @@ -1,6 +1,6 @@ # Disallow the use of hooks from ancestor modules (`qunit/no-hooks-from-ancestor-modules`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-identical-names.md b/docs/rules/no-identical-names.md index 04f83fd5..ffc009f7 100644 --- a/docs/rules/no-identical-names.md +++ b/docs/rules/no-identical-names.md @@ -1,6 +1,6 @@ # Disallow identical test and module names (`qunit/no-identical-names`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-init.md b/docs/rules/no-init.md index e8a1c771..299da757 100644 --- a/docs/rules/no-init.md +++ b/docs/rules/no-init.md @@ -1,6 +1,6 @@ # Disallow use of QUnit.init (`qunit/no-init`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-jsdump.md b/docs/rules/no-jsdump.md index 830e743f..b94591bc 100644 --- a/docs/rules/no-jsdump.md +++ b/docs/rules/no-jsdump.md @@ -1,6 +1,6 @@ # Disallow use of QUnit.jsDump (`qunit/no-jsdump`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-negated-ok.md b/docs/rules/no-negated-ok.md index 9571b801..6959687b 100644 --- a/docs/rules/no-negated-ok.md +++ b/docs/rules/no-negated-ok.md @@ -1,6 +1,6 @@ # Disallow negation in assert.ok/assert.notOk (`qunit/no-negated-ok`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). 🔧 This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/no-nested-tests.md b/docs/rules/no-nested-tests.md index 6b9af53c..af0b1c86 100644 --- a/docs/rules/no-nested-tests.md +++ b/docs/rules/no-nested-tests.md @@ -1,6 +1,6 @@ # Disallow nested QUnit.test() calls (`qunit/no-nested-tests`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-ok-equality.md b/docs/rules/no-ok-equality.md index b926c4ed..4a878792 100644 --- a/docs/rules/no-ok-equality.md +++ b/docs/rules/no-ok-equality.md @@ -1,6 +1,6 @@ # Disallow equality comparisons in assert.ok/assert.notOk (`qunit/no-ok-equality`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). 🔧 This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). @@ -66,9 +66,13 @@ QUnit.test("Name", function (assert) { assert.ok(x instanceof Number); }); ## Options -This rule takes an optional object containing: + -* `allowGlobals` (boolean, default: true): Whether the rule should check global assertions +| Name | Description | Type | Default | +| :------------ | :----------------------------------------------- | :------ | :------ | +| `allowGlobal` | Whether the rule should check global assertions. | Boolean | `true` | + + ## When Not to Use It diff --git a/docs/rules/no-only.md b/docs/rules/no-only.md index 12a942f7..03d31f6d 100644 --- a/docs/rules/no-only.md +++ b/docs/rules/no-only.md @@ -1,6 +1,6 @@ # Disallow QUnit.only (`qunit/no-only`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-qunit-push.md b/docs/rules/no-qunit-push.md index 954314f8..efdd79cd 100644 --- a/docs/rules/no-qunit-push.md +++ b/docs/rules/no-qunit-push.md @@ -1,6 +1,6 @@ # Disallow QUnit.push (`qunit/no-qunit-push`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-qunit-start-in-tests.md b/docs/rules/no-qunit-start-in-tests.md index 8aa4f33d..4b63efae 100644 --- a/docs/rules/no-qunit-start-in-tests.md +++ b/docs/rules/no-qunit-start-in-tests.md @@ -1,6 +1,6 @@ # Disallow QUnit.start() within tests or test hooks (`qunit/no-qunit-start-in-tests`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-qunit-stop.md b/docs/rules/no-qunit-stop.md index 8cc42469..f5c5b28b 100644 --- a/docs/rules/no-qunit-stop.md +++ b/docs/rules/no-qunit-stop.md @@ -1,6 +1,6 @@ # Disallow QUnit.stop (`qunit/no-qunit-stop`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-reassign-log-callbacks.md b/docs/rules/no-reassign-log-callbacks.md index 13ea8d1a..5c260f07 100644 --- a/docs/rules/no-reassign-log-callbacks.md +++ b/docs/rules/no-reassign-log-callbacks.md @@ -1,6 +1,6 @@ # Disallow overwriting of QUnit logging callbacks (`qunit/no-reassign-log-callbacks`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-reset.md b/docs/rules/no-reset.md index 9e760b92..ba030335 100644 --- a/docs/rules/no-reset.md +++ b/docs/rules/no-reset.md @@ -1,6 +1,6 @@ # Disallow QUnit.reset (`qunit/no-reset`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-setup-teardown.md b/docs/rules/no-setup-teardown.md index e314e10f..2a029ff5 100644 --- a/docs/rules/no-setup-teardown.md +++ b/docs/rules/no-setup-teardown.md @@ -1,6 +1,6 @@ # Disallow setup/teardown module hooks (`qunit/no-setup-teardown`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). 🔧 This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/no-test-expect-argument.md b/docs/rules/no-test-expect-argument.md index 9cec3557..baaefc0e 100644 --- a/docs/rules/no-test-expect-argument.md +++ b/docs/rules/no-test-expect-argument.md @@ -1,6 +1,6 @@ # Disallow the expect argument in QUnit.test (`qunit/no-test-expect-argument`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/no-throws-string.md b/docs/rules/no-throws-string.md index de17cd65..2b288941 100644 --- a/docs/rules/no-throws-string.md +++ b/docs/rules/no-throws-string.md @@ -1,6 +1,6 @@ # Disallow assert.throws() with block, string, and message args (`qunit/no-throws-string`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/require-expect.md b/docs/rules/require-expect.md index 5869d7fe..26216436 100644 --- a/docs/rules/require-expect.md +++ b/docs/rules/require-expect.md @@ -1,6 +1,6 @@ # Enforce that `expect` is called (`qunit/require-expect`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). @@ -15,7 +15,7 @@ test. This rule checks for `expect` at linting time. The "always" option requires that `expect` is called in each test. -The "except-simple" (**default**) option only requires an `expect` call when an assertion is +The "except-simple" option only requires an `expect` call when an assertion is called inside of a block or when `assert` is passed to another function. The rationale here is that by wrapping `assert` statements in conditional blocks or callbacks, developers are at risk of creating tests that incorrectly pass @@ -26,7 +26,7 @@ resilience in QUnit 2.0 for tracking asynchronous activity, projects may prefer to discourage use of redundant `assert.expect` calls in tests. This option codifies such convention. -The "never-except-zero" option disallows `except` calls, except when used to +The "never-except-zero" option (**default**) disallows `except` calls, except when used to explicitly assert that a test performs no assertions, which would otherwise be considered an error. @@ -59,7 +59,7 @@ test('name', function() { ### except-simple -When using the **default** "except-simple" option, the following patterns are considered +When using the "except-simple" option, the following patterns are considered warnings. ```js @@ -158,7 +158,7 @@ test('name', function(assert) { ### never-except-zero -The following would warn. +When using the **default** "never-except-zero" option, the following would warn. ```js test('name', function(assert) { diff --git a/docs/rules/require-object-in-propequal.md b/docs/rules/require-object-in-propequal.md index d5b1b947..ba98a787 100644 --- a/docs/rules/require-object-in-propequal.md +++ b/docs/rules/require-object-in-propequal.md @@ -1,6 +1,6 @@ # Enforce use of objects as expected value in `assert.propEqual` (`qunit/require-object-in-propequal`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/docs/rules/resolve-async.md b/docs/rules/resolve-async.md index 37d3b623..ac64ade6 100644 --- a/docs/rules/resolve-async.md +++ b/docs/rules/resolve-async.md @@ -1,6 +1,6 @@ # Require that async calls are resolved (`qunit/resolve-async`) -đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations). +đŸ’ŧ This rule is enabled in the ✅ `recommended` [config](https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations). diff --git a/eslint-remote-tester.config.js b/eslint-remote-tester.config.js new file mode 100644 index 00000000..5959f7f3 --- /dev/null +++ b/eslint-remote-tester.config.js @@ -0,0 +1,57 @@ +"use strict"; + +const fs = require("node:fs"); +const { basename, extname } = require("node:path"); + +/** @type {import('eslint-remote-tester').Config} */ +module.exports = { + /** Repositories to scan */ + repositories: [ + // A few dozen top repositories using QUnit or this plugin. + "DevExpress/DevExtreme", + "adopted-ember-addons/ember-data-model-fragments", + "balanced/balanced-dashboard", + "ember-intl/ember-intl", + "emberjs/ember.js", + "getsentry/sentry-javascript", + "glimmerjs/glimmer-vm", + "hashicorp/boundary-ui", + "hotwired/stimulus", + "jashkenas/backbone", + "jquery/jquery", + "js-cookie/js-cookie", + "l10n-tw/canvas-lms", + "rust-lang/crates.io", + "simonihmig/ember-responsive-image", + "videojs/video.js", + ], + + /** Extensions of files under scanning */ + extensions: ["js", "mjs", "cjs", "ts", "mts", "cts"], + + /** Optional boolean flag used to enable caching of cloned repositories. For CIs it's ideal to disable caching. Defaults to true. */ + cache: false, + + /** ESLint configuration */ + eslintrc: { + plugins: ["qunit"], + + // Enable all of our rules. + rules: Object.fromEntries( + fs + .readdirSync(`${__dirname}/lib/rules`) + .map( + (filename) => + `qunit/${basename(filename, extname(filename))}`, + ) + .map((ruleName) => [ruleName, "error"]), + ), + + overrides: [ + { + files: ["*.ts", "*.mts", "*.cts"], + parser: "@typescript-eslint/parser", + }, + ], + }, +}; diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..8b77e018 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,225 @@ +"use strict"; + +const js = require("@eslint/js"); +const { FlatCompat } = require("@eslint/eslintrc"); +const eslintPluginEslintPluginAll = require("eslint-plugin-eslint-plugin/configs/all"); +const eslintPluginMarkdown = require("eslint-plugin-markdown"); +const globals = require("globals"); + +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, +}); + +module.exports = [ + ...compat.extends( + "plugin:eslint-comments/recommended", + "plugin:node/recommended", + "plugin:prettier/recommended", + "plugin:unicorn/recommended", + ), + + eslintPluginEslintPluginAll, + + // Apply mocha config only to tests. + ...compat + .extends("plugin:mocha/recommended") + .map((config) => ({ ...config, files: ["tests/**/*.js"] })), + + { + languageOptions: { + sourceType: "script", + ecmaVersion: "latest", + globals: globals.node, + }, + rules: { + camelcase: ["error", { properties: "always" }], + complexity: ["error", 10], + "consistent-return": "error", + "consistent-this": ["error", "self"], + curly: ["error", "multi-line"], + "default-case": "error", + "dot-notation": "error", + eqeqeq: "error", + "func-style": ["error", "declaration"], + "guard-for-in": "error", + "lines-around-comment": [ + "error", + { + beforeBlockComment: false, + afterBlockComment: false, + beforeLineComment: true, + afterLineComment: false, + allowBlockStart: true, + allowBlockEnd: true, + allowObjectStart: true, + allowObjectEnd: true, + allowArrayStart: true, + allowArrayEnd: true, + }, + ], + "max-depth": ["error", 5], + "new-cap": ["error", { newIsCap: true, capIsNew: true }], + "no-array-constructor": "error", + "no-caller": "error", + "no-catch-shadow": "error", + "no-cond-assign": ["error", "except-parens"], + "no-console": "error", + "no-const-assign": "error", + "no-constant-condition": "error", + "no-control-regex": "error", + "no-debugger": "error", + "no-delete-var": "error", + "no-dupe-args": "error", + "no-dupe-keys": "error", + "no-duplicate-case": "error", + "no-else-return": "error", + "no-empty": "error", + "no-empty-character-class": "error", + "no-empty-function": "error", + "no-eval": "error", + "no-ex-assign": "error", + "no-extend-native": "error", + "no-extra-boolean-cast": "error", + "no-fallthrough": "error", + "no-func-assign": "error", + "no-implied-eval": "error", + "no-invalid-regexp": "error", + "no-irregular-whitespace": "error", + "no-labels": "error", + "no-lone-blocks": "error", + "no-lonely-if": "error", + "no-loop-func": "error", + "no-mixed-requires": "error", + "no-multi-str": "error", + "no-unsafe-negation": "error", + "no-nested-ternary": "error", + "no-new-func": "error", + "no-new-object": "error", + "no-new-require": "error", + "no-new-wrappers": "error", + "no-octal": "error", + "no-octal-escape": "error", + "no-path-concat": "error", + "no-process-exit": "error", + "no-redeclare": "error", + "no-return-assign": "error", + "no-regex-spaces": "error", + "no-self-assign": "error", + "no-self-compare": "error", + "no-sequences": "error", + "no-sparse-arrays": "error", + "no-template-curly-in-string": "error", + "no-throw-literal": "error", + "no-trailing-spaces": "error", + "no-undef": "error", + "no-undefined": "error", + "no-underscore-dangle": "error", + "no-unexpected-multiline": "error", + "no-unmodified-loop-condition": "error", + "no-unneeded-ternary": "error", + "no-unreachable": "error", + "no-unsafe-finally": "error", + "no-unused-expressions": "error", + "no-unused-vars": "error", + "no-use-before-define": "error", + "no-useless-call": "error", + "no-useless-concat": "error", + "no-useless-escape": "error", + "no-useless-return": "error", + "no-var": "error", + "no-warning-comments": "error", + "no-with": "error", + "operator-assignment": ["error", "always"], + "prefer-const": "error", + "prefer-template": "error", + radix: "error", + "spaced-comment": ["error", "always", { exceptions: ["-"] }], + strict: ["error", "global"], + "use-isnan": "error", + "valid-jsdoc": [ + "error", + { + prefer: { + return: "returns", + }, + }, + ], + "valid-typeof": "error", + yoda: ["error", "never"], + + // eslint-plugin-eslint-plugin + "eslint-plugin/meta-property-ordering": [ + "error", + [ + "type", + "docs", + "fixable", + "messages", + "schema", + "deprecated", + "replacedBy", + ], + ], + "eslint-plugin/require-meta-docs-url": [ + "error", + { + pattern: + "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/{{name}}.md", + }, + ], + + // eslint-plugin-node + "node/no-missing-require": [ + "error", + { + allowModules: ["@typescript-eslint/parser"], + }, + ], + + // prettier + "prettier/prettier": [ + "error", + { + tabWidth: 4, + }, + ], + + // eslint-plugin-unicorn + "unicorn/consistent-function-scoping": "off", + "unicorn/empty-brace-spaces": "off", + "unicorn/filename-case": "off", + "unicorn/no-array-reduce": "off", + "unicorn/no-null": "off", + // eslint-disable-next-line no-warning-comments + "unicorn/prefer-at": "off", // TODO: enable once we raise Node requirement to v16.6.0 + "unicorn/prefer-module": "off", + "unicorn/prevent-abbreviations": "off", + }, + }, + { + files: ["**/*.md"], + plugins: { markdown: eslintPluginMarkdown }, + processor: "markdown/markdown", + }, + { + // Markdown code samples. + files: ["**/*.md/*.js", "**/*.md/*.javascript"], + languageOptions: { + parserOptions: { + sourceType: "module", + }, + }, + rules: { + eqeqeq: "off", + "guard-for-in": "off", + "no-constant-condition": "off", + "no-empty-function": "off", + "no-undef": "off", + "no-unused-expressions": "off", + "no-unused-vars": "off", + "no-var": "off", + strict: "off", + }, + }, +]; diff --git a/index.js b/index.js index df3664ae..c62b000e 100644 --- a/index.js +++ b/index.js @@ -8,13 +8,24 @@ "use strict"; const requireIndex = require("requireindex"); +const pkg = require("./package.json"); module.exports = { + meta: { + name: pkg.name, + version: pkg.version, + }, + rules: requireIndex(`${__dirname}/lib/rules`), // eslint-disable-next-line sort-keys configs: { recommended: { + description: [ + "This configuration includes rules which I recommend to avoid QUnit runtime errors or incorrect behavior, some of which can be difficult to debug. Some of these rules also encourage best practices that help QUnit work better for you.", + 'For ESLint `.eslintrc.js` legacy config, extend from `"plugin:qunit/recommended"`.', + "For ESLint `eslint.config.js` flat config, load from `require('eslint-plugin-qunit/configs/recommended')`.", + ].join(" "), plugins: ["qunit"], rules: { "qunit/assert-args": "error", @@ -51,8 +62,8 @@ module.exports = { "qunit/no-throws-string": "error", "qunit/require-expect": "error", "qunit/require-object-in-propequal": "error", - "qunit/resolve-async": "error" - } - } - } + "qunit/resolve-async": "error", + }, + }, + }, }; diff --git a/lib/configs/recommended.js b/lib/configs/recommended.js new file mode 100644 index 00000000..2c37001b --- /dev/null +++ b/lib/configs/recommended.js @@ -0,0 +1,8 @@ +"use strict"; + +const plugin = require("../../index.js"); + +module.exports = { + plugins: { qunit: plugin }, + rules: plugin.configs.recommended.rules, +}; diff --git a/lib/rules/assert-args.js b/lib/rules/assert-args.js index a1802e0a..a11b59c2 100644 --- a/lib/rules/assert-args.js +++ b/lib/rules/assert-args.js @@ -8,7 +8,7 @@ // Requirements //------------------------------------------------------------------------------ -const assert = require("assert"), +const assert = require("node:assert"), utils = require("../utils"); //------------------------------------------------------------------------------ @@ -20,15 +20,18 @@ module.exports = { meta: { type: "problem", docs: { - description: "enforce that the correct number of assert arguments are used", + description: + "enforce that the correct number of assert arguments are used", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/assert-args.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/assert-args.md", }, messages: { - unexpectedArgCount: "Unexpected call to {{callee}} with {{argCount}} arguments.", - unexpectedArgCountNoMessage: "Unexpected call to {{callee}} with {{argCount}} arguments and no error message." + unexpectedArgCount: + "Unexpected call to {{callee}} with {{argCount}} arguments.", + unexpectedArgCountNoMessage: + "Unexpected call to {{callee}} with {{argCount}} arguments and no error message.", }, - schema: [] + schema: [], }, create: function (context) { @@ -52,7 +55,10 @@ module.exports = { } function checkAssertArity(callExpressionNode) { - const allowedArities = utils.getAllowedArities(callExpressionNode.callee, getAssertContext()), + const allowedArities = utils.getAllowedArities( + callExpressionNode.callee, + getAssertContext(), + ), assertArgs = callExpressionNode.arguments, lastArg = assertArgs[assertArgs.length - 1], mayHaveMessage = lastArg && isPossibleMessage(lastArg); @@ -61,7 +67,10 @@ module.exports = { return assertArgs.length < arity; }); - if (mayHaveMessage && allowedArities.includes(assertArgs.length - 1)) { + if ( + mayHaveMessage && + allowedArities.includes(assertArgs.length - 1) + ) { return; } else if (allowedArities.includes(assertArgs.length)) { return; @@ -69,21 +78,29 @@ module.exports = { context.report({ node: callExpressionNode, - messageId: mayHaveMessage && !definitelyTooFewArgs ? "unexpectedArgCount" : "unexpectedArgCountNoMessage", + messageId: + mayHaveMessage && !definitelyTooFewArgs + ? "unexpectedArgCount" + : "unexpectedArgCountNoMessage", data: { callee: sourceCode.getText(callExpressionNode.callee), - argCount: assertArgs.length - } + argCount: assertArgs.length, + }, }); } return { - "CallExpression": function (node) { + CallExpression: function (node) { if (utils.isTest(node.callee)) { testStack.push({ - assertContextVar: utils.getAssertContextNameForTest(node.arguments) + assertContextVar: utils.getAssertContextNameForTest( + node.arguments, + ), }); - } else if (testStack.length > 0 && utils.isAssertion(node.callee, getAssertContext())) { + } else if ( + testStack.length > 0 && + utils.isAssertion(node.callee, getAssertContext()) + ) { checkAssertArity(node); } }, @@ -92,7 +109,7 @@ module.exports = { if (utils.isTest(node.callee)) { testStack.pop(); } - } + }, }; - } + }, }; diff --git a/lib/rules/literal-compare-order.js b/lib/rules/literal-compare-order.js index a488d62f..d9a55676 100644 --- a/lib/rules/literal-compare-order.js +++ b/lib/rules/literal-compare-order.js @@ -8,7 +8,7 @@ // Requirements //------------------------------------------------------------------------------ -const assert = require("assert"), +const assert = require("node:assert"), utils = require("../utils"); //------------------------------------------------------------------------------ @@ -20,7 +20,7 @@ function swapFirstTwoNodesInList(sourceCode, fixer, list) { const node1Text = sourceCode.getText(list[1]); return [ fixer.replaceText(list[0], node1Text), - fixer.replaceText(list[1], node0Text) + fixer.replaceText(list[1], node0Text), ]; } @@ -29,16 +29,19 @@ module.exports = { meta: { type: "suggestion", docs: { - description: "enforce comparison assertions have arguments in the right order", + description: + "enforce comparison assertions have arguments in the right order", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/literal-compare-order.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/literal-compare-order.md", }, fixable: "code", messages: { - actualFirst: "Expected value {{expected}} should be specified after actual value {{actual}}.", - expectedFirst: "Actual value {{actual}} should be specified after expected value {{expected}}." + actualFirst: + "Expected value {{expected}} should be specified after actual value {{actual}}.", + expectedFirst: + "Actual value {{actual}} should be specified after expected value {{expected}}.", }, - schema: [] + schema: [], }, create: function (context) { @@ -56,29 +59,38 @@ module.exports = { return; } - if (compareActualFirst && args[0].type === "Literal" && args[1].type !== "Literal") { + /* istanbul ignore else: no assertions compare expected first */ + if ( + compareActualFirst && + args[0].type === "Literal" && + args[1].type !== "Literal" + ) { context.report({ node: args[0], messageId: "actualFirst", data: { expected: sourceCode.getText(args[0]), - actual: sourceCode.getText(args[1]) + actual: sourceCode.getText(args[1]), }, fix(fixer) { return swapFirstTwoNodesInList(sourceCode, fixer, args); - } + }, }); - } else /* istanbul ignore next: no assertions compare expected first */ if (!compareActualFirst && args[0].type !== "Literal" && args[1].type === "Literal") { + } else if ( + !compareActualFirst && + args[0].type !== "Literal" && + args[1].type === "Literal" + ) { context.report({ node: args[0], messageId: "expectedFirst", data: { expected: sourceCode.getText(args[0]), - actual: sourceCode.getText(args[1]) + actual: sourceCode.getText(args[1]), }, fix(fixer) { return swapFirstTwoNodesInList(sourceCode, fixer, args); - } + }, }); } } @@ -86,19 +98,27 @@ module.exports = { function processAssertion(node, assertVar) { /* istanbul ignore else: correctly does nothing */ if (utils.isComparativeAssertion(node.callee, assertVar)) { - const compareActualFirst = utils.shouldCompareActualFirst(node.callee, assertVar); + const compareActualFirst = utils.shouldCompareActualFirst( + node.callee, + assertVar, + ); checkLiteralCompareOrder(node.arguments, compareActualFirst); } } return { - "CallExpression": function (node) { + CallExpression: function (node) { /* istanbul ignore else: correctly does nothing */ if (utils.isTest(node.callee)) { testStack.push({ - assertContextVar: utils.getAssertContextNameForTest(node.arguments) + assertContextVar: utils.getAssertContextNameForTest( + node.arguments, + ), }); - } else if (testStack.length > 0 && utils.isAssertion(node.callee, getAssertContext())) { + } else if ( + testStack.length > 0 && + utils.isAssertion(node.callee, getAssertContext()) + ) { processAssertion(node, getAssertContext()); } }, @@ -107,7 +127,7 @@ module.exports = { if (utils.isTest(node.callee)) { testStack.pop(); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-arrow-tests.js b/lib/rules/no-arrow-tests.js index d64520f7..80d85657 100644 --- a/lib/rules/no-arrow-tests.js +++ b/lib/rules/no-arrow-tests.js @@ -21,15 +21,17 @@ module.exports = { meta: { type: "problem", docs: { - description: "disallow arrow functions as QUnit test/module callbacks", + description: + "disallow arrow functions as QUnit test/module callbacks", category: "Best Practices", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-arrow-tests.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-arrow-tests.md", }, fixable: "code", messages: { - noArrowFunction: "Arrow function should not be used as test callback." + noArrowFunction: + "Arrow function should not be used as test callback.", }, - schema: [] + schema: [], }, create: function (context) { @@ -50,22 +52,34 @@ module.exports = { let firstToken = sourceCode.getFirstToken(fn); let functionKeyword = "function"; - let params = extractSourceTextByRange(firstToken.range[0], beforeArrowToken.range[1]); + let params = extractSourceTextByRange( + firstToken.range[0], + beforeArrowToken.range[1], + ); if (fn.async) { // When 'async' specified strip the token from the params text // and prepend it to the function keyword - params = params.slice(firstToken.range[1] - firstToken.range[0]).trim(); + params = params + .slice(firstToken.range[1] - firstToken.range[0]) + .trim(); functionKeyword = "async function"; // Advance firstToken pointer firstToken = sourceCode.getTokenAfter(firstToken); } - const beforeArrowComment = extractSourceTextByRange(beforeArrowToken.range[1], arrow.range[0]); - const afterArrowComment = extractSourceTextByRange(arrow.range[1], fn.body.range[0]); - const paramsFullText = firstToken.type === "Punctuator" ? - `${params}${beforeArrowComment}${afterArrowComment}` : - `(${params}${beforeArrowComment})${afterArrowComment}`; + const beforeArrowComment = extractSourceTextByRange( + beforeArrowToken.range[1], + arrow.range[0], + ); + const afterArrowComment = extractSourceTextByRange( + arrow.range[1], + fn.body.range[0], + ); + const paramsFullText = + firstToken.type === "Punctuator" + ? `${params}${beforeArrowComment}${afterArrowComment}` + : `(${params}${beforeArrowComment})${afterArrowComment}`; return `${functionKeyword}${paramsFullText} `; } @@ -76,14 +90,17 @@ module.exports = { // simply replace '(...) => ' with 'function () ' return fixer.replaceTextRange( [fn.range[0], fn.body.range[0]], - formatFunctionHead(fn) + formatFunctionHead(fn), ); } - const bodyText = sourceCode.text.slice(fn.body.range[0], fn.body.range[1]); + const bodyText = sourceCode.text.slice( + fn.body.range[0], + fn.body.range[1], + ); return fixer.replaceTextRange( [fn.range[0], fn.range[1]], - `${formatFunctionHead(fn)}{ return ${bodyText}; }` + `${formatFunctionHead(fn)}{ return ${bodyText}; }`, ); } @@ -92,23 +109,27 @@ module.exports = { context.report({ node: fn, messageId: "noArrowFunction", - fix: fixer => fixArrowFunction(fixer, fn) + fix: (fixer) => fixArrowFunction(fixer, fn), }); } } function isPropertyInModule(propertyNode) { - return propertyNode && + return ( + propertyNode && propertyNode.parent && propertyNode.parent.type === "ObjectExpression" && propertyNode.parent.parent && propertyNode.parent.parent.type === "CallExpression" && - utils.isModule(propertyNode.parent.parent.callee); + utils.isModule(propertyNode.parent.parent.callee) + ); } function isModuleProperty(propertyNode) { - return isPropertyInModule(propertyNode) && - utils.isModuleHookPropertyKey(propertyNode.key); + return ( + isPropertyInModule(propertyNode) && + utils.isModuleHookPropertyKey(propertyNode.key) + ); } //-------------------------------------------------------------------------- @@ -116,17 +137,21 @@ module.exports = { //-------------------------------------------------------------------------- return { - "CallExpression": function (node) { - if (utils.isTest(node.callee) && node.arguments && node.arguments.length > 1) { + CallExpression: function (node) { + if ( + utils.isTest(node.callee) && + node.arguments && + node.arguments.length > 1 + ) { checkCallback(node.arguments[1]); } }, - "Property": function (node) { + Property: function (node) { if (isModuleProperty(node)) { checkCallback(node.value); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-assert-equal-boolean.js b/lib/rules/no-assert-equal-boolean.js index 46507258..33ea0449 100644 --- a/lib/rules/no-assert-equal-boolean.js +++ b/lib/rules/no-assert-equal-boolean.js @@ -4,7 +4,7 @@ // Requirements //------------------------------------------------------------------------------ -const assert = require("assert"), +const assert = require("node:assert"), utils = require("../utils"); //------------------------------------------------------------------------------ @@ -20,13 +20,14 @@ module.exports = { docs: { description: "require use of boolean assertions", category: "Best Practices", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-assert-equal-boolean.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-assert-equal-boolean.md", }, fixable: "code", messages: { - useAssertTrueOrFalse: "Use `assert.true or `assert.false` for boolean assertions." + useAssertTrueOrFalse: + "Use `assert.true or `assert.false` for boolean assertions.", }, - schema: [] + schema: [], }, create: function (context) { @@ -41,32 +42,43 @@ module.exports = { // Check for something like `equal(...)` without assert parameter. function isGlobalEqualityAssertion(calleeNode) { - return calleeNode && + return ( + calleeNode && calleeNode.type === "Identifier" && - EQUALITY_ASSERTIONS.has(calleeNode.name); + EQUALITY_ASSERTIONS.has(calleeNode.name) + ); } // Check for something like `assert.equal(...)`. function isAssertEquality(calleeNode) { - return calleeNode && + return ( + calleeNode && calleeNode.type === "MemberExpression" && calleeNode.property.type === "Identifier" && EQUALITY_ASSERTIONS.has(calleeNode.property.name) && calleeNode.object.type === "Identifier" && - calleeNode.object.name === getCurrentAssertContextVariable(); + calleeNode.object.name === getCurrentAssertContextVariable() + ); } // Check for something like `equal(...)` or `assert.equal(...)`. function isEqualityAssertion(calleeNode) { - return isGlobalEqualityAssertion(calleeNode) || - isAssertEquality(calleeNode); + return ( + isGlobalEqualityAssertion(calleeNode) || + isAssertEquality(calleeNode) + ); } // Finds the first boolean argument of a CallExpression if one exists. function getBooleanArgument(node) { - return node.arguments.length >= 2 && - [node.arguments[0], node.arguments[1]] - .find(arg => arg.type === "Literal" && (arg.value === true || arg.value === false)); + return ( + node.arguments.length >= 2 && + [node.arguments[0], node.arguments[1]].find( + (arg) => + arg.type === "Literal" && + (arg.value === true || arg.value === false), + ) + ); } function reportError(node) { @@ -75,36 +87,58 @@ module.exports = { messageId: "useAssertTrueOrFalse", fix(fixer) { const booleanArgument = getBooleanArgument(node); - const newAssertionFunctionName = booleanArgument.value ? "true" : "false"; + const newAssertionFunctionName = booleanArgument.value + ? "true" + : "false"; const sourceCode = context.getSourceCode(); - const newArgsTextArray = node.arguments.filter(arg => arg !== booleanArgument).map(arg => sourceCode.getText(arg)); + const newArgsTextArray = node.arguments + .filter((arg) => arg !== booleanArgument) + .map((arg) => sourceCode.getText(arg)); const newArgsTextJoined = newArgsTextArray.join(", "); - const assertVariablePrefix = node.callee.type === "Identifier" ? "" : `${getCurrentAssertContextVariable()}.`; + const assertVariablePrefix = + node.callee.type === "Identifier" + ? "" + : `${getCurrentAssertContextVariable()}.`; - return fixer.replaceText(node, `${assertVariablePrefix}${newAssertionFunctionName}(${newArgsTextJoined})`); - } + return fixer.replaceText( + node, + `${assertVariablePrefix}${newAssertionFunctionName}(${newArgsTextJoined})`, + ); + }, }); } return { - "CallExpression": function (node) { + CallExpression: function (node) { /* istanbul ignore else: correctly does nothing */ - if (utils.isTest(node.callee) || utils.isAsyncTest(node.callee)) { + if ( + utils.isTest(node.callee) || + utils.isAsyncTest(node.callee) + ) { testStack.push({ - assertVar: utils.getAssertContextNameForTest(node.arguments) + assertVar: utils.getAssertContextNameForTest( + node.arguments, + ), }); - } else if (testStack.length > 0 && isEqualityAssertion(node.callee) && getBooleanArgument(node)) { + } else if ( + testStack.length > 0 && + isEqualityAssertion(node.callee) && + getBooleanArgument(node) + ) { reportError(node); } }, "CallExpression:exit": function (node) { /* istanbul ignore else: correctly does nothing */ - if (utils.isTest(node.callee) || utils.isAsyncTest(node.callee)) { + if ( + utils.isTest(node.callee) || + utils.isAsyncTest(node.callee) + ) { testStack.pop(); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-assert-equal.js b/lib/rules/no-assert-equal.js index 6f0c5bd6..f4f51fe1 100644 --- a/lib/rules/no-assert-equal.js +++ b/lib/rules/no-assert-equal.js @@ -8,7 +8,7 @@ // Requirements //------------------------------------------------------------------------------ -const assert = require("assert"), +const assert = require("node:assert"), utils = require("../utils"), { ReferenceTracker } = require("eslint-utils"); @@ -23,17 +23,19 @@ module.exports = { docs: { description: "disallow the use of assert.equal", category: "Best Practices", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-assert-equal.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-assert-equal.md", }, messages: { - unexpectedGlobalEqual: "Unexpected equal. Use strictEqual, deepEqual, or propEqual.", - unexpectedAssertEqual: "Unexpected {{assertVar}}.equal. Use {{assertVar}}.strictEqual, {{assertVar}}.deepEqual, or {{assertVar}}.propEqual.", + unexpectedGlobalEqual: + "Unexpected equal. Use strictEqual, deepEqual, or propEqual.", + unexpectedAssertEqual: + "Unexpected {{assertVar}}.equal. Use {{assertVar}}.strictEqual, {{assertVar}}.deepEqual, or {{assertVar}}.propEqual.", switchToDeepEqual: "Switch to deepEqual.", switchToPropEqual: "Switch to propEqual.", - switchToStrictEqual: "Switch to strictEqual." + switchToStrictEqual: "Switch to strictEqual.", }, schema: [], - hasSuggestions: true + hasSuggestions: true, }, create: function (context) { @@ -52,51 +54,70 @@ module.exports = { } function isAssertEqual(calleeNode) { - return calleeNode && + return ( + calleeNode && calleeNode.type === "MemberExpression" && calleeNode.property.type === "Identifier" && calleeNode.property.name === "equal" && calleeNode.object.type === "Identifier" && - calleeNode.object.name === getCurrentAssertContextVariable(); + calleeNode.object.name === getCurrentAssertContextVariable() + ); } function reportError(node, isGlobal) { context.report({ node: node, - messageId: isGlobal ? "unexpectedGlobalEqual" : "unexpectedAssertEqual", + messageId: isGlobal + ? "unexpectedGlobalEqual" + : "unexpectedAssertEqual", data: { - assertVar: isGlobal ? null : getCurrentAssertContextVariable() + assertVar: isGlobal + ? null + : getCurrentAssertContextVariable(), }, suggest: [ { messageId: "switchToDeepEqual", fix(fixer) { - return fixer.replaceText(isGlobal ? node.callee : node.callee.property, "deepEqual"); - } + return fixer.replaceText( + isGlobal ? node.callee : node.callee.property, + "deepEqual", + ); + }, }, { messageId: "switchToPropEqual", fix(fixer) { - return fixer.replaceText(isGlobal ? node.callee : node.callee.property, "propEqual"); - } + return fixer.replaceText( + isGlobal ? node.callee : node.callee.property, + "propEqual", + ); + }, }, { messageId: "switchToStrictEqual", fix(fixer) { - return fixer.replaceText(isGlobal ? node.callee : node.callee.property, "strictEqual"); - } - } - ] - + return fixer.replaceText( + isGlobal ? node.callee : node.callee.property, + "strictEqual", + ); + }, + }, + ], }); } return { - "CallExpression": function (node) { + CallExpression: function (node) { /* istanbul ignore else: correctly does nothing */ - if (utils.isTest(node.callee) || utils.isAsyncTest(node.callee)) { + if ( + utils.isTest(node.callee) || + utils.isAsyncTest(node.callee) + ) { testStack.push({ - assertVar: utils.getAssertContextNameForTest(node.arguments) + assertVar: utils.getAssertContextNameForTest( + node.arguments, + ), }); } else if (testStack.length > 0) { if (isAssertEqual(node.callee)) { @@ -108,20 +129,25 @@ module.exports = { }, "CallExpression:exit": function (node) { /* istanbul ignore else: correctly does nothing */ - if (utils.isTest(node.callee) || utils.isAsyncTest(node.callee)) { + if ( + utils.isTest(node.callee) || + utils.isAsyncTest(node.callee) + ) { testStack.pop(); } }, - "Program": function () { + Program: function () { // Gather all calls to global `equal()`. const tracker = new ReferenceTracker(context.getScope()); const traceMap = { equal: { [ReferenceTracker.CALL]: true } }; - for (const { node } of tracker.iterateGlobalReferences(traceMap)) { + for (const { node } of tracker.iterateGlobalReferences( + traceMap, + )) { globalEqualCallNodes.add(node); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-assert-logical-expression.js b/lib/rules/no-assert-logical-expression.js index cc0a50d4..4e2620d9 100644 --- a/lib/rules/no-assert-logical-expression.js +++ b/lib/rules/no-assert-logical-expression.js @@ -19,16 +19,18 @@ module.exports = { meta: { type: "suggestion", docs: { - description: "disallow binary logical expressions in assert arguments", + description: + "disallow binary logical expressions in assert arguments", category: "Best Practices", recommended: false, - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-assert-logical-expression.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-assert-logical-expression.md", }, fixable: null, messages: { - noLogicalOperator: "Do not use '{{operator}}' in assertion arguments." + noLogicalOperator: + "Do not use '{{operator}}' in assertion arguments.", }, - schema: [] + schema: [], }, create: function (context) { @@ -45,8 +47,8 @@ module.exports = { node: arg, messageId: "noLogicalOperator", data: { - operator: arg.operator - } + operator: arg.operator, + }, }); } } @@ -67,15 +69,20 @@ module.exports = { //---------------------------------------------------------------------- return { - - "CallExpression": function (node) { + CallExpression: function (node) { if (utils.isTest(node.callee)) { testStack.push({ - assertContextVar: utils.getAssertContextNameForTest(node.arguments) + assertContextVar: utils.getAssertContextNameForTest( + node.arguments, + ), }); } else if (utils.isAssertion(node.callee, getAssertVar())) { - const countNonMessageArgs = Math.max(...utils.getAllowedArities(node.callee, getAssertVar())); - checkAndReport(node.arguments.slice(0, countNonMessageArgs)); + const countNonMessageArgs = Math.max( + ...utils.getAllowedArities(node.callee, getAssertVar()), + ); + checkAndReport( + node.arguments.slice(0, countNonMessageArgs), + ); } }, @@ -83,8 +90,7 @@ module.exports = { if (utils.isTest(node.callee)) { testStack.pop(); } - } - + }, }; - } + }, }; diff --git a/lib/rules/no-assert-ok.js b/lib/rules/no-assert-ok.js index 529ce4de..7966b4e4 100644 --- a/lib/rules/no-assert-ok.js +++ b/lib/rules/no-assert-ok.js @@ -18,10 +18,14 @@ const GLOBAL_ERROR_MESSAGE_ID = "unexpectedGlobalOkNotOk"; const LOCAL_ERROR_MESSAGE_ID = "unexpectedLocalOkNotOk"; const assertions = ["ok", "notOk"]; const ERROR_MESSAGE_CONFIG = { - ok: { unexpectedGlobalAssertionMessageId: GLOBAL_ERROR_MESSAGE_ID, - unexpectedLocalAssertionMessageId: LOCAL_ERROR_MESSAGE_ID }, - notOk: { unexpectedGlobalAssertionMessageId: GLOBAL_ERROR_MESSAGE_ID, - unexpectedLocalAssertionMessageId: LOCAL_ERROR_MESSAGE_ID } + ok: { + unexpectedGlobalAssertionMessageId: GLOBAL_ERROR_MESSAGE_ID, + unexpectedLocalAssertionMessageId: LOCAL_ERROR_MESSAGE_ID, + }, + notOk: { + unexpectedGlobalAssertionMessageId: GLOBAL_ERROR_MESSAGE_ID, + unexpectedLocalAssertionMessageId: LOCAL_ERROR_MESSAGE_ID, + }, }; /** @type {import('eslint').Rule.RuleModule} */ @@ -30,14 +34,16 @@ module.exports = { type: "suggestion", docs: { description: "disallow the use of assert.ok/assert.notOk", - category: "Best Practices" + category: "Best Practices", }, messages: { - [GLOBAL_ERROR_MESSAGE_ID]: "Unexpected {{assertion}}. Use strictEqual, deepEqual, or propEqual.", - [LOCAL_ERROR_MESSAGE_ID]: "Unexpected {{assertVar}}.{{assertion}}. Use {{assertVar}}.strictEqual, {{assertVar}}.deepEqual, or {{assertVar}}.propEqual." + [GLOBAL_ERROR_MESSAGE_ID]: + "Unexpected {{assertion}}. Use strictEqual, deepEqual, or propEqual.", + [LOCAL_ERROR_MESSAGE_ID]: + "Unexpected {{assertVar}}.{{assertion}}. Use {{assertVar}}.strictEqual, {{assertVar}}.deepEqual, or {{assertVar}}.propEqual.", }, - schema: [] + schema: [], }, - create: utils.createAssertionCheck(assertions, ERROR_MESSAGE_CONFIG) + create: utils.createAssertionCheck(assertions, ERROR_MESSAGE_CONFIG), }; diff --git a/lib/rules/no-async-in-loops.js b/lib/rules/no-async-in-loops.js index 57497ab1..140222ed 100644 --- a/lib/rules/no-async-in-loops.js +++ b/lib/rules/no-async-in-loops.js @@ -4,7 +4,7 @@ */ "use strict"; -const assert = require("assert"), +const assert = require("node:assert"), utils = require("../utils"); //------------------------------------------------------------------------------ @@ -18,12 +18,12 @@ module.exports = { docs: { description: "disallow async calls in loops", category: "Best Practices", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-async-in-loops.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-async-in-loops.md", }, messages: { - unexpectedAsyncInLoop: "Unexpected {{call}} in {{loopTypeText}}." + unexpectedAsyncInLoop: "Unexpected {{call}} in {{loopTypeText}}.", }, - schema: [] + schema: [], }, create: function (context) { @@ -31,26 +31,35 @@ module.exports = { assertVariableStack = []; function isAsyncCallExpression(node) { - const assertContextVar = assertVariableStack[assertVariableStack.length - 1]; + const assertContextVar = + assertVariableStack[assertVariableStack.length - 1]; return utils.isAsyncCallExpression(node, assertContextVar); } function popAndMatch(expectedNode) { const actualNode = loopStack.pop(); - assert.strictEqual(actualNode, expectedNode, "Node mismatch in loop stack"); + assert.strictEqual( + actualNode, + expectedNode, + "Node mismatch in loop stack", + ); } function getLoopTypeText(loopType) { switch (loopType) { case "WhileStatement": { return "while loop"; - } case "DoWhileStatement": { + } + case "DoWhileStatement": { return "do-while loop"; - } case "ForStatement": { + } + case "ForStatement": { return "for loop"; - } case "ForInStatement": { + } + case "ForInStatement": { return "for-in loop"; - } case "ForOfStatement": { + } + case "ForOfStatement": { return "for-of loop"; } /* istanbul ignore next */ @@ -65,7 +74,8 @@ module.exports = { /* istanbul ignore else: correctly returning undefined */ if (isAsyncCallExpression(node)) { - const assertContextVar = assertVariableStack[assertVariableStack.length - 1]; + const assertContextVar = + assertVariableStack[assertVariableStack.length - 1]; callType = `${assertContextVar}.async()`; } else if (utils.isStop(node.callee)) { callType = "stop()"; @@ -85,18 +95,21 @@ module.exports = { messageId: "unexpectedAsyncInLoop", data: { call: getAsyncCallType(node), - loopTypeText: getLoopTypeText(loopType) - } + loopTypeText: getLoopTypeText(loopType), + }, }); } return { - "CallExpression": function (node) { + CallExpression: function (node) { /* istanbul ignore else: correctly not doing anything */ if (utils.isTest(node.callee)) { - assertVariableStack.push(utils.getAssertContextNameForTest(node.arguments)); + assertVariableStack.push( + utils.getAssertContextNameForTest(node.arguments), + ); } else if (loopStack.length > 0) { - const isStopOrStartOrAsync = isAsyncCallExpression(node) || + const isStopOrStartOrAsync = + isAsyncCallExpression(node) || utils.isStop(node.callee) || utils.isStart(node.callee); @@ -111,36 +124,36 @@ module.exports = { assertVariableStack.pop(); } }, - "WhileStatement": function (node) { + WhileStatement: function (node) { loopStack.push(node); }, "WhileStatement:exit": function (node) { popAndMatch(node); }, - "DoWhileStatement": function (node) { + DoWhileStatement: function (node) { loopStack.push(node); }, "DoWhileStatement:exit": function (node) { popAndMatch(node); }, - "ForStatement": function (node) { + ForStatement: function (node) { loopStack.push(node); }, "ForStatement:exit": function (node) { popAndMatch(node); }, - "ForInStatement": function (node) { + ForInStatement: function (node) { loopStack.push(node); }, "ForInStatement:exit": function (node) { popAndMatch(node); }, - "ForOfStatement": function (node) { + ForOfStatement: function (node) { loopStack.push(node); }, "ForOfStatement:exit": function (node) { popAndMatch(node); - } + }, }; - } + }, }; diff --git a/lib/rules/no-async-module-callbacks.js b/lib/rules/no-async-module-callbacks.js index 295c4dbe..1c29251d 100644 --- a/lib/rules/no-async-module-callbacks.js +++ b/lib/rules/no-async-module-callbacks.js @@ -15,7 +15,10 @@ const utils = require("../utils"); //------------------------------------------------------------------------------ function isAsyncFunctionExpression(node) { - return ["ArrowFunctionExpression", "FunctionExpression"].includes(node.type) && node.async === true; + return ( + ["ArrowFunctionExpression", "FunctionExpression"].includes(node.type) && + node.async === true + ); } //------------------------------------------------------------------------------ @@ -30,29 +33,30 @@ module.exports = { description: "disallow async module callbacks", category: "Possible Errors", recommended: false, - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-async-module-callbacks.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-async-module-callbacks.md", }, fixable: null, messages: { - "noAsyncModuleCallbacks": "Do not call module with an async callback function." + noAsyncModuleCallbacks: + "Do not call module with an async callback function.", }, - schema: [] + schema: [], }, create: function (context) { return { - "CallExpression": function (node) { + CallExpression: function (node) { if (utils.isModule(node.callee)) { const callback = node.arguments[1]; if (callback && isAsyncFunctionExpression(callback)) { context.report({ node: node, messageId: "noAsyncModuleCallbacks", - data: {} + data: {}, }); } } - } + }, }; - } + }, }; diff --git a/lib/rules/no-async-test.js b/lib/rules/no-async-test.js index 7fb55dbc..42f70647 100644 --- a/lib/rules/no-async-test.js +++ b/lib/rules/no-async-test.js @@ -21,24 +21,25 @@ module.exports = { docs: { description: "disallow the use of asyncTest or QUnit.asyncTest", category: "Best Practices", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-async-test.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-async-test.md", }, messages: { - unexpectedAsyncTest: "Unexpected asynchronous test. Use assert.async() instead." + unexpectedAsyncTest: + "Unexpected asynchronous test. Use assert.async() instead.", }, - schema: [] + schema: [], }, create: function (context) { return { - "CallExpression": function (node) { + CallExpression: function (node) { if (utils.isAsyncTest(node.callee)) { context.report({ node: node, - messageId: "unexpectedAsyncTest" + messageId: "unexpectedAsyncTest", }); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-commented-tests.js b/lib/rules/no-commented-tests.js index 501e9d70..8611a09d 100644 --- a/lib/rules/no-commented-tests.js +++ b/lib/rules/no-commented-tests.js @@ -15,18 +15,20 @@ module.exports = { docs: { description: "disallow commented tests", category: "Best Practices", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-commented-tests.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-commented-tests.md", }, messages: { - unexpectedTestInComment: "Unexpected \"{{callee}}\" in comment. Use QUnit.skip outside of a comment." + unexpectedTestInComment: + 'Unexpected "{{callee}}" in comment. Use QUnit.skip outside of a comment.', }, - schema: [] + schema: [], }, create: function (context) { const sourceCode = context.getSourceCode(), newlineRegExp = /\r\n|\r|\n/g, - warningRegExp = /\b(QUnit\.test|QUnit\.asyncTest|QUnit\.skip|test|asyncTest)\s*\(/g; + warningRegExp = + /\b(QUnit\.test|QUnit\.asyncTest|QUnit\.skip|test|asyncTest)\s*\(\s*["'`]/g; function getNewlineIndexes(text) { const indexes = []; @@ -45,8 +47,8 @@ module.exports = { loc: warning.loc, messageId: "unexpectedTestInComment", data: { - callee: warning.term - } + callee: warning.term, + }, }); } @@ -61,7 +63,10 @@ module.exports = { result; while ((result = warningRegExp.exec(text)) !== null) { - while (newlineIndexes.length > 0 && result.index >= newlineIndexes[0]) { + while ( + newlineIndexes.length > 0 && + result.index >= newlineIndexes[0] + ) { ++lineOffset; currentNewlineIndex = newlineIndexes.shift(); } @@ -70,8 +75,10 @@ module.exports = { term: result[1], loc: { line: loc.line + lineOffset, - column: lineOffset ? result.index - currentNewlineIndex : loc.column + result.index - } + column: lineOffset + ? result.index - currentNewlineIndex + : loc.column + result.index, + }, }); } @@ -82,12 +89,13 @@ module.exports = { return { Program: function () { - const comments = sourceCode.getAllComments() - .filter(comment => comment.type !== "Shebang"); + const comments = sourceCode + .getAllComments() + .filter((comment) => comment.type !== "Shebang"); for (const comment of comments) { checkComment(comment); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-compare-relation-boolean.js b/lib/rules/no-compare-relation-boolean.js index d63a8f59..5a5b2d80 100644 --- a/lib/rules/no-compare-relation-boolean.js +++ b/lib/rules/no-compare-relation-boolean.js @@ -8,7 +8,7 @@ // Requirements //------------------------------------------------------------------------------ -const assert = require("assert"), +const assert = require("node:assert"), utils = require("../utils"); //------------------------------------------------------------------------------ @@ -20,66 +20,93 @@ module.exports = { meta: { type: "suggestion", docs: { - description: "disallow comparing relational expressions to booleans in assertions", + description: + "disallow comparing relational expressions to booleans in assertions", category: "Best Practices", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-compare-relation-boolean.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-compare-relation-boolean.md", }, fixable: "code", messages: { - redundantComparison: "Redundant comparison of relational expression to boolean literal." + redundantComparison: + "Redundant comparison of relational expression to boolean literal.", }, - schema: [] + schema: [], }, create: function (context) { const testStack = [], RELATIONAL_OPS = new Set([ - "==", "!=", "===", "!==", "<", "<=", ">", ">=", - "in", "instanceof" + "==", + "!=", + "===", + "!==", + "<", + "<=", + ">", + ">=", + "in", + "instanceof", ]); function shouldCheckArguments(calleeNode) { assert.ok(testStack.length); - const assertContextVar = testStack[testStack.length - 1].assertContextVar; + const assertContextVar = + testStack[testStack.length - 1].assertContextVar; - return utils.isAssertion(calleeNode, assertContextVar) && utils.isComparativeAssertion(calleeNode, assertContextVar); + return ( + utils.isAssertion(calleeNode, assertContextVar) && + utils.isComparativeAssertion(calleeNode, assertContextVar) + ); } function sortLiteralFirst(a, b) { if (a.type === "Literal" && b.type !== "Literal") { - return -1; // Literal is first and should remain first + return -1; // Literal is first and should remain first } if (a.type !== "Literal" && b.type === "Literal") { - return 1; // Literal is second and should be first + return 1; // Literal is second and should be first } return 0; } function checkAndReport(callExprNode, literalNode, binaryExprNode) { - if (RELATIONAL_OPS.has(binaryExprNode.operator) && typeof literalNode.value === "boolean") { + if ( + RELATIONAL_OPS.has(binaryExprNode.operator) && + typeof literalNode.value === "boolean" + ) { context.report({ node: callExprNode, messageId: "redundantComparison", fix(fixer) { const sourceCode = context.getSourceCode(); - const assertionVariableName = callExprNode.callee.object.name; + const assertionVariableName = + callExprNode.callee.object.name; // Decide which assertion function to use based on how many negations we have. let countNegations = 0; - if (callExprNode.callee.property.name.startsWith("not")) { + if ( + callExprNode.callee.property.name.startsWith("not") + ) { countNegations++; } if (!literalNode.value) { countNegations++; } - const newAssertionFunctionName = countNegations % 2 === 0 ? "ok" : "notOk"; - const newArgsTextArray = [binaryExprNode, ...callExprNode.arguments.slice(2)].map(arg => sourceCode.getText(arg)); + const newAssertionFunctionName = + countNegations % 2 === 0 ? "ok" : "notOk"; + const newArgsTextArray = [ + binaryExprNode, + ...callExprNode.arguments.slice(2), + ].map((arg) => sourceCode.getText(arg)); const newArgsTextJoined = newArgsTextArray.join(", "); - return fixer.replaceText(callExprNode, `${assertionVariableName}.${newAssertionFunctionName}(${newArgsTextJoined})`); - } + return fixer.replaceText( + callExprNode, + `${assertionVariableName}.${newAssertionFunctionName}(${newArgsTextJoined})`, + ); + }, }); } } @@ -92,18 +119,30 @@ module.exports = { const firstTwoArgsSorted = args.slice(0, 2).sort(sortLiteralFirst); - if (firstTwoArgsSorted[0].type === "Literal" && firstTwoArgsSorted[1].type === "BinaryExpression") { - checkAndReport(callExprNode, firstTwoArgsSorted[0], firstTwoArgsSorted[1]); + if ( + firstTwoArgsSorted[0].type === "Literal" && + firstTwoArgsSorted[1].type === "BinaryExpression" + ) { + checkAndReport( + callExprNode, + firstTwoArgsSorted[0], + firstTwoArgsSorted[1], + ); } } return { - "CallExpression": function (node) { + CallExpression: function (node) { if (utils.isTest(node.callee)) { testStack.push({ - assertContextVar: utils.getAssertContextNameForTest(node.arguments) + assertContextVar: utils.getAssertContextNameForTest( + node.arguments, + ), }); - } else if (testStack.length > 0 && shouldCheckArguments(node.callee)) { + } else if ( + testStack.length > 0 && + shouldCheckArguments(node.callee) + ) { checkAssertArguments(node); } }, @@ -112,7 +151,7 @@ module.exports = { if (utils.isTest(node.callee)) { testStack.pop(); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-conditional-assertions.js b/lib/rules/no-conditional-assertions.js index ce8ca36b..4799287a 100644 --- a/lib/rules/no-conditional-assertions.js +++ b/lib/rules/no-conditional-assertions.js @@ -14,12 +14,15 @@ const utils = require("../utils"); // Constants //------------------------------------------------------------------------------ -const CONDITIONAL_NODE_TYPES = new Set(["IfStatement", "ConditionalExpression"]); +const CONDITIONAL_NODE_TYPES = new Set([ + "IfStatement", + "ConditionalExpression", +]); const STOP_NODE_TYPES = new Set([ "FunctionExpression", "FunctionDeclaration", - "ArrowFunctionExpression" + "ArrowFunctionExpression", ]); //------------------------------------------------------------------------------ @@ -31,16 +34,18 @@ module.exports = { meta: { type: "suggestion", docs: { - description: "disallow assertions within if statements or conditional expressions", + description: + "disallow assertions within if statements or conditional expressions", category: "Best Practices", recommended: false, - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-conditional-assertions.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-conditional-assertions.md", }, - fixable: null, // or "code" or "whitespace" + fixable: null, // or "code" or "whitespace" messages: { - noAssertionInsideConditional: "Do not place an assertion inside a conditional." + noAssertionInsideConditional: + "Do not place an assertion inside a conditional.", }, - schema: [] + schema: [], }, create: function (context) { @@ -61,20 +66,25 @@ module.exports = { function checkAndReport(assertNode) { let currentNode = assertNode; - while (currentNode && !isStopNode(currentNode) && !isConditionalNode(currentNode)) { + while ( + currentNode && + !isStopNode(currentNode) && + !isConditionalNode(currentNode) + ) { currentNode = currentNode.parent; } if (CONDITIONAL_NODE_TYPES.has(currentNode.type)) { context.report({ node: assertNode, - messageId: "noAssertionInsideConditional" + messageId: "noAssertionInsideConditional", }); } } function isAssertion(calleeNode) { - const assertContextVar = testStack[testStack.length - 1].assertContextVar; + const assertContextVar = + testStack[testStack.length - 1].assertContextVar; return utils.isAssertion(calleeNode, assertContextVar); } @@ -83,10 +93,12 @@ module.exports = { //---------------------------------------------------------------------- return { - "CallExpression": function (node) { + CallExpression: function (node) { if (utils.isTest(node.callee)) { testStack.push({ - assertContextVar: utils.getAssertContextNameForTest(node.arguments) + assertContextVar: utils.getAssertContextNameForTest( + node.arguments, + ), }); } else if (testStack.length > 0 && isAssertion(node.callee)) { checkAndReport(node); @@ -97,7 +109,7 @@ module.exports = { if (utils.isTest(node.callee)) { testStack.pop(); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-early-return.js b/lib/rules/no-early-return.js index f161b16a..97a7b46c 100644 --- a/lib/rules/no-early-return.js +++ b/lib/rules/no-early-return.js @@ -22,12 +22,12 @@ module.exports = { docs: { description: "disallow early return in tests", category: "Best Practices", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-early-return.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-early-return.md", }, messages: { - noEarlyReturn: "Do not return early from a QUnit test." + noEarlyReturn: "Do not return early from a QUnit test.", }, - schema: [] + schema: [], }, create: function (context) { @@ -37,7 +37,7 @@ module.exports = { function pushFunction() { if (assertContextVar !== null) { functionScopes.push({ - returnAndAssertNodes: [] + returnAndAssertNodes: [], }); } } @@ -49,19 +49,32 @@ module.exports = { let lastAssert = null, i; - for (i = lastScope.returnAndAssertNodes.length - 1; i >= 0; --i) { - if (lastScope.returnAndAssertNodes[i].type === "CallExpression") { + for ( + i = lastScope.returnAndAssertNodes.length - 1; + i >= 0; + --i + ) { + if ( + lastScope.returnAndAssertNodes[i].type === + "CallExpression" + ) { lastAssert = i; break; } } - if (lastAssert !== null && lastScope.returnAndAssertNodes.length > 0) { - for (const node of lastScope.returnAndAssertNodes.slice(0, lastAssert)) { + if ( + lastAssert !== null && + lastScope.returnAndAssertNodes.length > 0 + ) { + for (const node of lastScope.returnAndAssertNodes.slice( + 0, + lastAssert, + )) { if (node.type === "ReturnStatement") { context.report({ node: node, - messageId: "noEarlyReturn" + messageId: "noEarlyReturn", }); } } @@ -70,21 +83,30 @@ module.exports = { } return { - "CallExpression": function (node) { + CallExpression: function (node) { if (utils.isTest(node.callee)) { - assertContextVar = utils.getAssertContextNameForTest(node.arguments); - } else if (utils.isAssertion(node.callee, assertContextVar) && functionScopes.length > 0) { - functionScopes[functionScopes.length - 1].returnAndAssertNodes.push(node); + assertContextVar = utils.getAssertContextNameForTest( + node.arguments, + ); + } else if ( + utils.isAssertion(node.callee, assertContextVar) && + functionScopes.length > 0 + ) { + functionScopes[ + functionScopes.length - 1 + ].returnAndAssertNodes.push(node); } }, - "FunctionDeclaration": pushFunction, - "FunctionExpression": pushFunction, - "ArrowFunctionExpression": pushFunction, + FunctionDeclaration: pushFunction, + FunctionExpression: pushFunction, + ArrowFunctionExpression: pushFunction, - "ReturnStatement": function (node) { + ReturnStatement: function (node) { if (functionScopes.length > 0) { - functionScopes[functionScopes.length - 1].returnAndAssertNodes.push(node); + functionScopes[ + functionScopes.length - 1 + ].returnAndAssertNodes.push(node); } }, @@ -96,7 +118,7 @@ module.exports = { "FunctionDeclaration:exit": popFunction, "FunctionExpression:exit": popFunction, - "ArrowFunctionExpression:exit": popFunction + "ArrowFunctionExpression:exit": popFunction, }; - } + }, }; diff --git a/lib/rules/no-global-assertions.js b/lib/rules/no-global-assertions.js index 86fa1f8f..38954fba 100644 --- a/lib/rules/no-global-assertions.js +++ b/lib/rules/no-global-assertions.js @@ -22,33 +22,36 @@ module.exports = { docs: { description: "disallow global QUnit assertions", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-global-assertions.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-global-assertions.md", }, messages: { - unexpectedGlobalAssertion: "Unexpected global `{{ assertion }}` assertion." + unexpectedGlobalAssertion: + "Unexpected global `{{ assertion }}` assertion.", }, - schema: [] + schema: [], }, create: function (context) { return { - "Program": function () { + Program: function () { const tracker = new ReferenceTracker(context.getScope()); const traceMap = {}; for (const assertionName of getAssertionNames()) { traceMap[assertionName] = { [ReferenceTracker.CALL]: true }; } - for (const { node } of tracker.iterateGlobalReferences(traceMap)) { + for (const { node } of tracker.iterateGlobalReferences( + traceMap, + )) { context.report({ node: node, messageId: "unexpectedGlobalAssertion", data: { - assertion: node.callee.name - } + assertion: node.callee.name, + }, }); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-global-expect.js b/lib/rules/no-global-expect.js index 55c667ba..e98c9e48 100644 --- a/lib/rules/no-global-expect.js +++ b/lib/rules/no-global-expect.js @@ -21,27 +21,29 @@ module.exports = { docs: { description: "disallow global expect", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-global-expect.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-global-expect.md", }, messages: { - unexpectedGlobalExpect: "Unexpected global expect." + unexpectedGlobalExpect: "Unexpected global expect.", }, - schema: [] + schema: [], }, create: function (context) { return { - "Program": function () { + Program: function () { const tracker = new ReferenceTracker(context.getScope()); const traceMap = { expect: { [ReferenceTracker.CALL]: true } }; - for (const { node } of tracker.iterateGlobalReferences(traceMap)) { + for (const { node } of tracker.iterateGlobalReferences( + traceMap, + )) { context.report({ node: node, - messageId: "unexpectedGlobalExpect" + messageId: "unexpectedGlobalExpect", }); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-global-module-test.js b/lib/rules/no-global-module-test.js index 7b1cdb6e..861f8bc6 100644 --- a/lib/rules/no-global-module-test.js +++ b/lib/rules/no-global-module-test.js @@ -21,34 +21,36 @@ module.exports = { docs: { description: "disallow global module/test/asyncTest", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-global-module-test.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-global-module-test.md", }, messages: { - unexpectedGlobalModuleTest: "Unexpected global `{{ callee }}`." + unexpectedGlobalModuleTest: "Unexpected global `{{ callee }}`.", }, - schema: [] + schema: [], }, create: function (context) { return { - "Program": function () { + Program: function () { const tracker = new ReferenceTracker(context.getScope()); const traceMap = { asyncTest: { [ReferenceTracker.CALL]: true }, module: { [ReferenceTracker.CALL]: true }, - test: { [ReferenceTracker.CALL]: true } + test: { [ReferenceTracker.CALL]: true }, }; - for (const { node } of tracker.iterateGlobalReferences(traceMap)) { + for (const { node } of tracker.iterateGlobalReferences( + traceMap, + )) { context.report({ node: node, messageId: "unexpectedGlobalModuleTest", data: { - callee: node.callee.name - } + callee: node.callee.name, + }, }); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-global-stop-start.js b/lib/rules/no-global-stop-start.js index 0d5b002e..e6fc251a 100644 --- a/lib/rules/no-global-stop-start.js +++ b/lib/rules/no-global-stop-start.js @@ -19,12 +19,12 @@ module.exports = { docs: { description: "disallow global stop/start", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-global-stop-start.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-global-stop-start.md", }, messages: { - unexpectedGlobalStopStart: "Unexpected global {{callee}}() call." + unexpectedGlobalStopStart: "Unexpected global {{callee}}() call.", }, - schema: [] + schema: [], }, create: function (context) { @@ -33,23 +33,25 @@ module.exports = { //-------------------------------------------------------------------------- return { - "Program": function () { + Program: function () { const tracker = new ReferenceTracker(context.getScope()); const traceMap = { start: { [ReferenceTracker.CALL]: true }, - stop: { [ReferenceTracker.CALL]: true } + stop: { [ReferenceTracker.CALL]: true }, }; - for (const { node } of tracker.iterateGlobalReferences(traceMap)) { + for (const { node } of tracker.iterateGlobalReferences( + traceMap, + )) { context.report({ node: node, messageId: "unexpectedGlobalStopStart", data: { - callee: node.callee.name - } + callee: node.callee.name, + }, }); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-hooks-from-ancestor-modules.js b/lib/rules/no-hooks-from-ancestor-modules.js index e268dd85..dfbb9bac 100644 --- a/lib/rules/no-hooks-from-ancestor-modules.js +++ b/lib/rules/no-hooks-from-ancestor-modules.js @@ -24,13 +24,14 @@ module.exports = { description: "disallow the use of hooks from ancestor modules", category: "Possible Errors", recommended: false, - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-hooks-from-ancestor-modules.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-hooks-from-ancestor-modules.md", }, fixable: null, messages: { - "noHooksFromAncestorModules": "Do not call {{usedHooksIdentifierName}}.{{invokedMethodName}} from an ancestor module." + noHooksFromAncestorModules: + "Do not call {{usedHooksIdentifierName}}.{{invokedMethodName}} from an ancestor module.", }, - schema: [] + schema: [], }, create: function (context) { @@ -41,35 +42,52 @@ module.exports = { //---------------------------------------------------------------------- function isInModuleCallbackBody(callExpressionNode) { - return callExpressionNode && + return ( + callExpressionNode && callExpressionNode.parent && callExpressionNode.parent.type === "ExpressionStatement" && callExpressionNode.parent.parent && callExpressionNode.parent.parent.type === "BlockStatement" && callExpressionNode.parent.parent.parent && - ["FunctionExpression", "ArrowFunctionExpression"].includes(callExpressionNode.parent.parent.parent.type) && + ["FunctionExpression", "ArrowFunctionExpression"].includes( + callExpressionNode.parent.parent.parent.type, + ) && callExpressionNode.parent.parent.parent.parent && - callExpressionNode.parent.parent.parent.parent.type === "CallExpression" && - utils.isModule(callExpressionNode.parent.parent.parent.parent.callee); + callExpressionNode.parent.parent.parent.parent.type === + "CallExpression" && + utils.isModule( + callExpressionNode.parent.parent.parent.parent.callee, + ) + ); } function isHookInvocation(node) { - return node.callee.type === "MemberExpression" && + return ( + node.callee.type === "MemberExpression" && node.callee.object.type === "Identifier" && NESTABLE_HOOK_NAMES.has(node.callee.property.name) && - isInModuleCallbackBody(node); + isInModuleCallbackBody(node) + ); } function getCallbackArg(args) { // Callback can be either args[1] or args[2] // https://api.qunitjs.com/QUnit/module/ - return args.slice(1, 3).find(arg => ["FunctionExpression", "ArrowFunctionExpression"].includes(arg.type)); + return args + .slice(1, 3) + .find((arg) => + ["FunctionExpression", "ArrowFunctionExpression"].includes( + arg.type, + ), + ); } function getHooksIdentifierFromParams(params) { // In TypeScript, `this` can be passed as the first function parameter to add a type to it, // and we want to ignore that parameter since we're looking for the `hooks` variable. - return params.find(p => p.type === "Identifier" && p.name !== "this"); + return params.find( + (p) => p.type === "Identifier" && p.name !== "this", + ); } //---------------------------------------------------------------------- @@ -77,31 +95,39 @@ module.exports = { //---------------------------------------------------------------------- return { - "CallExpression": function (node) { + CallExpression: function (node) { if (utils.isModule(node.callee)) { const moduleStackInfo = { callExpression: node, - description: node.arguments[0].value + description: node.arguments[0].value, }; const callback = getCallbackArg(node.arguments); - const hooksParam = callback ? getHooksIdentifierFromParams(callback.params) : null; - moduleStackInfo.hookIdentifierName = hooksParam ? hooksParam.name : null; + const hooksParam = callback + ? getHooksIdentifierFromParams(callback.params) + : null; + moduleStackInfo.hookIdentifierName = hooksParam + ? hooksParam.name + : null; moduleStack.push(moduleStackInfo); } else if (isHookInvocation(node)) { - const containingModuleInfo = moduleStack[moduleStack.length - 1]; - const expectedHooksIdentifierName = containingModuleInfo.hookIdentifierName; + const containingModuleInfo = + moduleStack[moduleStack.length - 1]; + const expectedHooksIdentifierName = + containingModuleInfo.hookIdentifierName; const usedHooksIdentifierName = node.callee.object.name; const invokedMethodName = node.callee.property.name; - if (expectedHooksIdentifierName !== usedHooksIdentifierName) { + if ( + expectedHooksIdentifierName !== usedHooksIdentifierName + ) { context.report({ node: node.callee, messageId: "noHooksFromAncestorModules", data: { invokedMethodName, - usedHooksIdentifierName - } + usedHooksIdentifierName, + }, }); } } @@ -111,7 +137,7 @@ module.exports = { if (utils.isModule(node.callee)) { moduleStack.pop(); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-identical-names.js b/lib/rules/no-identical-names.js index 0ac4ca9e..ee9326bd 100644 --- a/lib/rules/no-identical-names.js +++ b/lib/rules/no-identical-names.js @@ -15,7 +15,7 @@ const utils = require("../utils"); //------------------------------------------------------------------------------ function findLast(arr, callback) { - return [...arr].reverse().find(item => callback(item)); + return [...arr].reverse().find((item) => callback(item)); } /** @type {import('eslint').Rule.RuleModule} */ @@ -25,14 +25,17 @@ module.exports = { docs: { description: "disallow identical test and module names", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-identical-names.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-identical-names.md", }, messages: { - duplicateTest: "Test name is used on line {{ line }} in the same module.", - duplicateModule: "Module name is used by sibling on line {{ line }}.", - duplicateModuleAncestor: "Module name is used by ancestor on line {{ line }}." + duplicateTest: + "Test name is used on line {{ line }} in the same module.", + duplicateModule: + "Module name is used by sibling on line {{ line }}.", + duplicateModuleAncestor: + "Module name is used by ancestor on line {{ line }}.", }, - schema: [] + schema: [], }, create: function (context) { @@ -42,7 +45,7 @@ module.exports = { mapModuleNodeToInfo.set(TOP_LEVEL_MODULE_NODE, { modules: [], // Children module nodes. tests: [], // Children test nodes. - hasNestedTests: false // Whether this module has tests nested inside it. + hasNestedTests: false, // Whether this module has tests nested inside it. }); //---------------------------------------------------------------------- @@ -50,19 +53,33 @@ module.exports = { //---------------------------------------------------------------------- function isFirstArgLiteral(node) { - return node.arguments && node.arguments[0] && node.arguments[0].type === "Literal"; + return ( + node.arguments && + node.arguments[0] && + node.arguments[0].type === "Literal" + ); } function moduleHasNestedTests(node) { const moduleInfo = mapModuleNodeToInfo.get(node); - return moduleInfo.tests.length > 0 || moduleInfo.modules.some(moduleNode => moduleHasNestedTests(moduleNode)); + return ( + moduleInfo.tests.length > 0 || + moduleInfo.modules.some((moduleNode) => + moduleHasNestedTests(moduleNode), + ) + ); } function getCurrentModuleNode() { - const parentModule = mapModuleNodeToInfo.get(modulesStack[modulesStack.length - 1]); + const parentModule = mapModuleNodeToInfo.get( + modulesStack[modulesStack.length - 1], + ); if (parentModule.modules.length > 0) { // Find the last test-less module at the current level if one exists, i.e: module('foo'); - const lastTestLessModule = findLast(parentModule.modules, node => !mapModuleNodeToInfo.get(node).hasNestedTests); + const lastTestLessModule = findLast( + parentModule.modules, + (node) => !mapModuleNodeToInfo.get(node).hasNestedTests, + ); if (lastTestLessModule) { return lastTestLessModule; } @@ -74,17 +91,21 @@ module.exports = { if (utils.isTest(node.callee)) { const title = node.arguments[0].value; const currentModuleNode = getCurrentModuleNode(); - const currentModuleInfo = mapModuleNodeToInfo.get(currentModuleNode); + const currentModuleInfo = + mapModuleNodeToInfo.get(currentModuleNode); // Check if we have seen this test name in the current module yet. - const duplicateTestTitle = currentModuleInfo.tests.find(t => t.arguments[0].value === title); + const duplicateTestTitle = currentModuleInfo.tests.find( + (t) => t.arguments[0].value === title, + ); if (duplicateTestTitle) { context.report({ node: node.arguments[0], messageId: "duplicateTest", data: { - line: duplicateTestTitle.arguments[0].loc.start.line - } + line: duplicateTestTitle.arguments[0].loc.start + .line, + }, }); } @@ -97,29 +118,39 @@ module.exports = { if (utils.isModule(node.callee)) { const title = node.arguments[0].value; const currentModuleNode = modulesStack[modulesStack.length - 1]; - const currentModuleInfo = mapModuleNodeToInfo.get(currentModuleNode); + const currentModuleInfo = + mapModuleNodeToInfo.get(currentModuleNode); // Check if we have seen the same title in a sibling module. - const duplicateModuleTitle = currentModuleInfo.modules.find(moduleNode => moduleNode.arguments[0].value === title); + const duplicateModuleTitle = currentModuleInfo.modules.find( + (moduleNode) => moduleNode.arguments[0].value === title, + ); if (duplicateModuleTitle) { context.report({ node: node.arguments[0], messageId: "duplicateModule", data: { - line: duplicateModuleTitle.loc.start.line - } + line: duplicateModuleTitle.loc.start.line, + }, }); } // Check if we have seen the same title in any ancestor modules. - const duplicateAncestorModuleTitle = modulesStack.filter(moduleNode => moduleNode !== TOP_LEVEL_MODULE_NODE).find(moduleNode => moduleNode.arguments[0].value === title); + const duplicateAncestorModuleTitle = modulesStack + .filter( + (moduleNode) => moduleNode !== TOP_LEVEL_MODULE_NODE, + ) + .find( + (moduleNode) => moduleNode.arguments[0].value === title, + ); if (duplicateAncestorModuleTitle) { context.report({ node: node.arguments[0], messageId: "duplicateModuleAncestor", data: { - line: duplicateAncestorModuleTitle.arguments[0].loc.start.line - } + line: duplicateAncestorModuleTitle.arguments[0].loc + .start.line, + }, }); } @@ -128,7 +159,7 @@ module.exports = { mapModuleNodeToInfo.set(node, { modules: [], tests: [], - hasNestedTests: false + hasNestedTests: false, }); currentModuleInfo.modules.push(node); // Add to parent module's list of children modules. } @@ -139,7 +170,7 @@ module.exports = { //---------------------------------------------------------------------- return { - "CallExpression": function (node) { + CallExpression: function (node) { if (!isFirstArgLiteral(node)) { return; } @@ -149,14 +180,18 @@ module.exports = { }, "CallExpression:exit": function (node) { - if (modulesStack.length > 0 && modulesStack[modulesStack.length - 1] === node) { + if ( + modulesStack.length > 0 && + modulesStack[modulesStack.length - 1] === node + ) { // Exiting a module so pop it from the stack. modulesStack.pop(); // Record if we saw any nested tests in this module. - mapModuleNodeToInfo.get(node).hasNestedTests = moduleHasNestedTests(node); + mapModuleNodeToInfo.get(node).hasNestedTests = + moduleHasNestedTests(node); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-init.js b/lib/rules/no-init.js index 1eddae9d..99faab0c 100644 --- a/lib/rules/no-init.js +++ b/lib/rules/no-init.js @@ -17,12 +17,12 @@ module.exports = { docs: { description: "disallow use of QUnit.init", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-init.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-init.md", }, messages: { - noInit: "Do not use QUnit.init()." + noInit: "Do not use QUnit.init().", }, - schema: [] + schema: [], }, create: function (context) { @@ -31,12 +31,13 @@ module.exports = { //-------------------------------------------------------------------------- return { - "CallExpression[callee.object.name='QUnit'][callee.property.name='init']": function (node) { - context.report({ - node: node, - messageId: "noInit" - }); - } + "CallExpression[callee.object.name='QUnit'][callee.property.name='init']": + function (node) { + context.report({ + node: node, + messageId: "noInit", + }); + }, }; - } + }, }; diff --git a/lib/rules/no-jsdump.js b/lib/rules/no-jsdump.js index bf79a440..8bcda215 100644 --- a/lib/rules/no-jsdump.js +++ b/lib/rules/no-jsdump.js @@ -15,12 +15,12 @@ module.exports = { docs: { description: "disallow use of QUnit.jsDump", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-jsdump.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-jsdump.md", }, messages: { - noJsDump: "Use QUnit.dump() instead of QUnit.jsDump()." + noJsDump: "Use QUnit.dump() instead of QUnit.jsDump().", }, - schema: [] + schema: [], }, create: function (context) { @@ -29,12 +29,13 @@ module.exports = { //-------------------------------------------------------------------------- return { - "CallExpression[callee.object.name='QUnit'][callee.property.name='jsDump']": function (node) { - context.report({ - node: node, - messageId: "noJsDump" - }); - } + "CallExpression[callee.object.name='QUnit'][callee.property.name='jsDump']": + function (node) { + context.report({ + node: node, + messageId: "noJsDump", + }); + }, }; - } + }, }; diff --git a/lib/rules/no-loose-assertions.js b/lib/rules/no-loose-assertions.js index 0aae403c..77f35b59 100644 --- a/lib/rules/no-loose-assertions.js +++ b/lib/rules/no-loose-assertions.js @@ -19,22 +19,34 @@ const LOCAL_ERROR_MESSAGE_ID = "unexpectedLocalLooseAssertion"; const DEFAULT_ASSERTIONS = ["equal", "ok", "notEqual", "notOk"]; const ERROR_MESSAGE_CONFIG = { - equal: { unexpectedGlobalAssertionMessageId: GLOBAL_ERROR_MESSAGE_ID, - unexpectedLocalAssertionMessageId: LOCAL_ERROR_MESSAGE_ID }, - ok: { unexpectedGlobalAssertionMessageId: GLOBAL_ERROR_MESSAGE_ID, - unexpectedLocalAssertionMessageId: LOCAL_ERROR_MESSAGE_ID }, - notEqual: { unexpectedGlobalAssertionMessageId: GLOBAL_ERROR_MESSAGE_ID, - unexpectedLocalAssertionMessageId: LOCAL_ERROR_MESSAGE_ID }, - notOk: { unexpectedGlobalAssertionMessageId: GLOBAL_ERROR_MESSAGE_ID, - unexpectedLocalAssertionMessageId: LOCAL_ERROR_MESSAGE_ID } + equal: { + unexpectedGlobalAssertionMessageId: GLOBAL_ERROR_MESSAGE_ID, + unexpectedLocalAssertionMessageId: LOCAL_ERROR_MESSAGE_ID, + }, + ok: { + unexpectedGlobalAssertionMessageId: GLOBAL_ERROR_MESSAGE_ID, + unexpectedLocalAssertionMessageId: LOCAL_ERROR_MESSAGE_ID, + }, + notEqual: { + unexpectedGlobalAssertionMessageId: GLOBAL_ERROR_MESSAGE_ID, + unexpectedLocalAssertionMessageId: LOCAL_ERROR_MESSAGE_ID, + }, + notOk: { + unexpectedGlobalAssertionMessageId: GLOBAL_ERROR_MESSAGE_ID, + unexpectedLocalAssertionMessageId: LOCAL_ERROR_MESSAGE_ID, + }, }; function buildErrorMessage(disallowed) { - const globalMessage = `Unexpected {{assertion}}. Use ${disallowed.join(", ")}.`; - const localMessage = `Unexpected {{assertVar}}.{{assertion}}. Use ${disallowed.map((ass) => `{{assertVar}}.${ass}`).join(", ")}.`; + const globalMessage = `Unexpected {{assertion}}. Use ${disallowed.join( + ", ", + )}.`; + const localMessage = `Unexpected {{assertVar}}.{{assertion}}. Use ${disallowed + .map((ass) => `{{assertVar}}.${ass}`) + .join(", ")}.`; return { unexpectedGlobalAssertionMessage: globalMessage, - unexpectedLocalAssertionMessage: localMessage + unexpectedLocalAssertionMessage: localMessage, }; } @@ -56,7 +68,9 @@ function parseOptions(options) { continue; } assertions.push(assertion.disallowed); - errorMessageConfig[assertion.disallowed] = buildErrorMessage(assertion.recommended); + errorMessageConfig[assertion.disallowed] = buildErrorMessage( + assertion.recommended, + ); } } return [assertions, errorMessageConfig]; @@ -69,46 +83,56 @@ module.exports = { meta: { type: "suggestion", docs: { - description: "disallow the use of assert.equal/assert.ok/assert.notEqual/assert.notOk", + description: + "disallow the use of assert.equal/assert.ok/assert.notEqual/assert.notOk", category: "Best Practices", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-loose-assertions.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-loose-assertions.md", }, messages: { - [GLOBAL_ERROR_MESSAGE_ID]: "Unexpected {{assertion}}. Use strictEqual, notStrictEqual, deepEqual, or propEqual.", - [LOCAL_ERROR_MESSAGE_ID]: "Unexpected {{assertVar}}.{{assertion}}. Use {{assertVar}}.strictEqual, {{assertVar}}.notStrictEqual, {{assertVar}}.deepEqual, or {{assertVar}}.propEqual." + [GLOBAL_ERROR_MESSAGE_ID]: + "Unexpected {{assertion}}. Use strictEqual, notStrictEqual, deepEqual, or propEqual.", + [LOCAL_ERROR_MESSAGE_ID]: + "Unexpected {{assertVar}}.{{assertion}}. Use {{assertVar}}.strictEqual, {{assertVar}}.notStrictEqual, {{assertVar}}.deepEqual, or {{assertVar}}.propEqual.", }, - schema: [{ - type: "array", - minItems: 1, - items: { - oneOf: [{ - type: "object", - properties: { - disallowed: { + schema: [ + { + type: "array", + minItems: 1, + items: { + oneOf: [ + { + type: "object", + properties: { + disallowed: { + type: "string", + enum: DEFAULT_ASSERTIONS, + }, + recommended: { + type: "array", + items: { + type: "string", + minItems: 1, + }, + }, + }, + required: ["disallowed", "recommended"], + additionalProperties: false, + }, + { type: "string", - enum: DEFAULT_ASSERTIONS + enum: DEFAULT_ASSERTIONS, }, - recommended: { - type: "array", - items: { - type: "string", - minItems: 1 - } - } - }, - required: ["disallowed", "recommended"], - additionalProperties: false - }, { - type: "string", - enum: DEFAULT_ASSERTIONS - }] + ], + }, + uniqueItems: true, }, - uniqueItems: true - }] + ], }, create: function (context) { const [assertions, errorMessageConfig] = parseOptions(context.options); - return utils.createAssertionCheck(assertions, errorMessageConfig).call(this, context); - } + return utils + .createAssertionCheck(assertions, errorMessageConfig) + .call(this, context); + }, }; diff --git a/lib/rules/no-negated-ok.js b/lib/rules/no-negated-ok.js index 25cd3ea6..406b42a3 100644 --- a/lib/rules/no-negated-ok.js +++ b/lib/rules/no-negated-ok.js @@ -4,14 +4,14 @@ */ "use strict"; -const assert = require("assert"), +const assert = require("node:assert"), utils = require("../utils"); const ASSERTION_OPPOSITES = { - "false": "true", - "notOk": "ok", - "ok": "notOk", - "true": "false" + false: "true", + notOk: "ok", + ok: "notOk", + true: "false", }; //------------------------------------------------------------------------------ @@ -25,13 +25,13 @@ module.exports = { docs: { description: "disallow negation in assert.ok/assert.notOk", category: "Best Practices", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-negated-ok.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-negated-ok.md", }, fixable: "code", messages: { - noNegationInOk: "Unexpected negation in {{callee}}() assertion." + noNegationInOk: "Unexpected negation in {{callee}}() assertion.", }, - schema: [] + schema: [], }, create: function (context) { @@ -41,7 +41,10 @@ module.exports = { // Declare a stack in case of nested test cases (not currently supported // in QUnit). const asyncStateStack = [], - ASSERTIONS_TO_CHECK = new Set([...POSITIVE_ASSERTIONS, ...NEGATIVE_ASSERTIONS]), + ASSERTIONS_TO_CHECK = new Set([ + ...POSITIVE_ASSERTIONS, + ...NEGATIVE_ASSERTIONS, + ]), sourceCode = context.getSourceCode(); function getAssertVar() { @@ -49,7 +52,9 @@ module.exports = { /* istanbul ignore else: correctly returns null */ if (asyncStateStack.length > 0) { - result = asyncStateStack[asyncStateStack.length - 1].assertContextVar; + result = + asyncStateStack[asyncStateStack.length - 1] + .assertContextVar; } return result; @@ -61,7 +66,8 @@ module.exports = { let result = false; if (calleeNode.type === "MemberExpression") { - result = calleeNode.object && + result = + calleeNode.object && calleeNode.object.type === "Identifier" && calleeNode.object.name === getAssertVar() && calleeNode.property && @@ -81,7 +87,11 @@ module.exports = { let negationDepth = 0, node = argNode; - while (node && node.type === "UnaryExpression" && node.operator === "!") { + while ( + node && + node.type === "UnaryExpression" && + node.operator === "!" + ) { ++negationDepth; node = node.argument; } @@ -92,7 +102,11 @@ module.exports = { function unwrapNegation(argNode) { let node = argNode; - while (node && node.type === "UnaryExpression" && node.operator === "!") { + while ( + node && + node.type === "UnaryExpression" && + node.operator === "!" + ) { node = node.argument; } @@ -109,31 +123,47 @@ module.exports = { node: callExprNode, messageId: "noNegationInOk", data: { - callee: sourceCode.getText(callExprNode.callee) + callee: sourceCode.getText(callExprNode.callee), }, fix(fixer) { // Conversions: // * assert.notOk(!foo) => assert.ok(foo) // * assert.ok(!foo) => assert.notOk(foo) - const assertionVariableName = callExprNode.callee.object.name; - const oppositeAssertionFunctionName = ASSERTION_OPPOSITES[callExprNode.callee.property.name]; - const newArgsTextArray = [unwrapNegation(firstArgNode), ...callExprNode.arguments.slice(1)].map(arg => sourceCode.getText(arg)); - const newArgsTextJoined = newArgsTextArray.join(", "); - return fixer.replaceText(callExprNode, `${assertionVariableName}.${oppositeAssertionFunctionName}(${newArgsTextJoined})`); - } + const assertionVariableName = + callExprNode.callee.object.name; + const oppositeAssertionFunctionName = + ASSERTION_OPPOSITES[ + callExprNode.callee.property.name + ]; + const newArgsTextArray = [ + unwrapNegation(firstArgNode), + ...callExprNode.arguments.slice(1), + ].map((arg) => sourceCode.getText(arg)); + const newArgsTextJoined = + newArgsTextArray.join(", "); + return fixer.replaceText( + callExprNode, + `${assertionVariableName}.${oppositeAssertionFunctionName}(${newArgsTextJoined})`, + ); + }, }); } } } return { - "CallExpression": function (node) { + CallExpression: function (node) { if (utils.isTest(node.callee)) { asyncStateStack.push({ - assertContextVar: utils.getAssertContextNameForTest(node.arguments) + assertContextVar: utils.getAssertContextNameForTest( + node.arguments, + ), }); - } else if (isAssertion(node.callee) && isOkOrNotOk(node.callee)) { + } else if ( + isAssertion(node.callee) && + isOkOrNotOk(node.callee) + ) { checkForNegation(node); } }, @@ -142,7 +172,7 @@ module.exports = { if (utils.isTest(node.callee)) { asyncStateStack.pop(); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-nested-tests.js b/lib/rules/no-nested-tests.js index 2f483061..a65e0a46 100644 --- a/lib/rules/no-nested-tests.js +++ b/lib/rules/no-nested-tests.js @@ -21,32 +21,36 @@ module.exports = { docs: { description: "disallow nested QUnit.test() calls", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-nested-tests.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-nested-tests.md", }, messages: { - noNestedTests: "Using QUnit.test inside of another QUnit.test is not allowed." + noNestedTests: + "Using QUnit.test inside of another QUnit.test is not allowed.", }, - schema: [] + schema: [], }, create: function (context) { return { - "CallExpression": function (node) { + CallExpression: function (node) { if (utils.isTest(node.callee)) { let currentNode = node; while (currentNode.parent) { const { parent } = currentNode; - if (parent.type === "CallExpression" && utils.isTest(parent.callee)) { + if ( + parent.type === "CallExpression" && + utils.isTest(parent.callee) + ) { context.report({ node, - messageId: "noNestedTests" + messageId: "noNestedTests", }); return; } currentNode = parent; } } - } + }, }; - } + }, }; diff --git a/lib/rules/no-ok-equality.js b/lib/rules/no-ok-equality.js index fab8c2f4..cb0aa4db 100644 --- a/lib/rules/no-ok-equality.js +++ b/lib/rules/no-ok-equality.js @@ -15,25 +15,30 @@ module.exports = { meta: { type: "suggestion", docs: { - description: "disallow equality comparisons in assert.ok/assert.notOk", + description: + "disallow equality comparisons in assert.ok/assert.notOk", category: "Best Practices", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-ok-equality.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-ok-equality.md", }, fixable: "code", messages: { - noEqualityCheckInOk: "Unexpected equality comparison in {{assertion}} call. Use {{suggestion}}({{a}}, {{b}}) instead." + noEqualityCheckInOk: + "Unexpected equality comparison in {{assertion}} call. Use {{suggestion}}({{a}}, {{b}}) instead.", }, schema: [ { type: "object", properties: { allowGlobal: { - type: "boolean" - } + type: "boolean", + description: + "Whether the rule should check global assertions.", + default: true, + }, }, - additionalProperties: false - } - ] + additionalProperties: false, + }, + ], }, create: function (context) { @@ -41,7 +46,7 @@ module.exports = { // in QUnit). const asyncStateStack = [], DEFAULT_OPTIONS = { - allowGlobal: true + allowGlobal: true, }, options = context.options[0] || DEFAULT_OPTIONS, sourceCode = context.getSourceCode(); @@ -57,9 +62,12 @@ module.exports = { function isOk(calleeNode) { const assertContextVar = getAssertContextVar(); - const isOk = calleeNode.type === "Identifier" && POSITIVE_ASSERTIONS.has(calleeNode.name); + const isOk = + calleeNode.type === "Identifier" && + POSITIVE_ASSERTIONS.has(calleeNode.name); - const isAssertOk = calleeNode.type === "MemberExpression" && + const isAssertOk = + calleeNode.type === "MemberExpression" && calleeNode.object.type === "Identifier" && calleeNode.object.name === assertContextVar && calleeNode.property.type === "Identifier" && @@ -75,9 +83,12 @@ module.exports = { function isNotOk(calleeNode) { const assertContextVar = getAssertContextVar(); - const isNotOk = calleeNode.type === "Identifier" && NEGATIVE_ASSERTIONS.has(calleeNode.name); + const isNotOk = + calleeNode.type === "Identifier" && + NEGATIVE_ASSERTIONS.has(calleeNode.name); - const isAssertNotOk = calleeNode.type === "MemberExpression" && + const isAssertNotOk = + calleeNode.type === "MemberExpression" && calleeNode.object.type === "Identifier" && calleeNode.object.name === assertContextVar && calleeNode.property.type === "Identifier" && @@ -95,18 +106,24 @@ module.exports = { } function isEqual(arg) { - return arg.type === "BinaryExpression" && - ["===", "==", "!==", "!="].includes(arg.operator); + return ( + arg.type === "BinaryExpression" && + ["===", "==", "!==", "!="].includes(arg.operator) + ); } function isStrict(arg) { - return arg.type === "BinaryExpression" && - ["===", "!=="].includes(arg.operator); + return ( + arg.type === "BinaryExpression" && + ["===", "!=="].includes(arg.operator) + ); } function isNegative(arg) { - return arg.type === "BinaryExpression" && - ["!==", "!="].includes(arg.operator); + return ( + arg.type === "BinaryExpression" && + ["!==", "!="].includes(arg.operator) + ); } function getSuggestedAssertion(criteria) { @@ -114,7 +131,9 @@ module.exports = { let assertMethod; if (criteria.strict) { - assertMethod = criteria.negative ? "notStrictEqual" : "strictEqual"; + assertMethod = criteria.negative + ? "notStrictEqual" + : "strictEqual"; } else { assertMethod = criteria.negative ? "notEqual" : "equal"; } @@ -136,7 +155,7 @@ module.exports = { const suggestion = getSuggestedAssertion({ strict: isArgStrictEqual, - negative: isArgNegative !== isCalleeNegative + negative: isArgNegative !== isCalleeNegative, }); const a = sourceCode.getText(firstArg.left); @@ -150,27 +169,41 @@ module.exports = { assertion: sourceCode.getText(node.callee), suggestion, a, - b + b, }, fix(fixer) { const newArgs = [ - a, b, ...args.slice(1).map(arg => sourceCode.getText(arg)) + a, + b, + ...args + .slice(1) + .map((arg) => sourceCode.getText(arg)), ]; - return fixer.replaceText(node, `${suggestion}(${newArgs.join(", ")})`); - } + return fixer.replaceText( + node, + `${suggestion}(${newArgs.join(", ")})`, + ); + }, }); } } } return { - "CallExpression": function (node) { + CallExpression: function (node) { if (asyncStateStack.length > 0 && isOkOrNotOk(node.callee)) { const isGlobal = node.callee.type === "Identifier"; - checkArguments(node.arguments, isNotOk(node.callee), isGlobal, node); + checkArguments( + node.arguments, + isNotOk(node.callee), + isGlobal, + node, + ); } else if (utils.isTest(node.callee)) { asyncStateStack.push({ - assertContextVar: utils.getAssertContextNameForTest(node.arguments) + assertContextVar: utils.getAssertContextNameForTest( + node.arguments, + ), }); } }, @@ -179,7 +212,7 @@ module.exports = { if (utils.isTest(node.callee)) { asyncStateStack.pop(); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-only.js b/lib/rules/no-only.js index 788b91cf..ceecb6f2 100644 --- a/lib/rules/no-only.js +++ b/lib/rules/no-only.js @@ -21,24 +21,24 @@ module.exports = { docs: { description: "disallow QUnit.only", category: "Best Practices", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-only.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-only.md", }, messages: { - noQUnitOnly: "Unexpected only() call." + noQUnitOnly: "Unexpected only() call.", }, - schema: [] + schema: [], }, create: function (context) { return { - "CallExpression": function (node) { + CallExpression: function (node) { if (utils.isOnly(node.callee)) { context.report({ node: node, - messageId: "noQUnitOnly" + messageId: "noQUnitOnly", }); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-qunit-push.js b/lib/rules/no-qunit-push.js index 0eb2387d..5232d102 100644 --- a/lib/rules/no-qunit-push.js +++ b/lib/rules/no-qunit-push.js @@ -15,12 +15,12 @@ module.exports = { docs: { description: "disallow QUnit.push", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-qunit-push.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-qunit-push.md", }, messages: { - noQUnitPush: "Do not use QUnit.push()." + noQUnitPush: "Do not use QUnit.push().", }, - schema: [] + schema: [], }, create: function (context) { @@ -29,12 +29,13 @@ module.exports = { //-------------------------------------------------------------------------- return { - "CallExpression[callee.object.name='QUnit'][callee.property.name='push']": function (node) { - context.report({ - node: node, - messageId: "noQUnitPush" - }); - } + "CallExpression[callee.object.name='QUnit'][callee.property.name='push']": + function (node) { + context.report({ + node: node, + messageId: "noQUnitPush", + }); + }, }; - } + }, }; diff --git a/lib/rules/no-qunit-start-in-tests.js b/lib/rules/no-qunit-start-in-tests.js index b2f60f18..4a2409fa 100644 --- a/lib/rules/no-qunit-start-in-tests.js +++ b/lib/rules/no-qunit-start-in-tests.js @@ -22,13 +22,14 @@ module.exports = { description: "disallow QUnit.start() within tests or test hooks", category: "Possible Errors", recommended: false, - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-qunit-start-in-tests.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-qunit-start-in-tests.md", }, fixable: null, messages: { - noQUnitStartInTests: "Do not use QUnit.start() inside a {{context}}." + noQUnitStartInTests: + "Do not use QUnit.start() inside a {{context}}.", }, - schema: [] + schema: [], }, create: function (context) { @@ -39,16 +40,20 @@ module.exports = { //---------------------------------------------------------------------- function isQUnitStart(calleeNode) { - return calleeNode.type === "MemberExpression" && - utils.isStart(calleeNode); + return ( + calleeNode.type === "MemberExpression" && + utils.isStart(calleeNode) + ); } function isInModule(propertyNode) { - return propertyNode && - propertyNode.parent && // ObjectExpression - propertyNode.parent.parent && // CallExpression? + return ( + propertyNode && + propertyNode.parent && // ObjectExpression + propertyNode.parent.parent && // CallExpression? propertyNode.parent.parent.type === "CallExpression" && - utils.isModule(propertyNode.parent.parent.callee); + utils.isModule(propertyNode.parent.parent.callee) + ); } //---------------------------------------------------------------------- @@ -56,24 +61,31 @@ module.exports = { //---------------------------------------------------------------------- return { - "CallExpression": function (node) { + CallExpression: function (node) { if (utils.isTest(node.callee)) { contextStack.push("test"); - } else if (contextStack.length > 0 && isQUnitStart(node.callee)) { - const currentContext = contextStack[contextStack.length - 1]; + } else if ( + contextStack.length > 0 && + isQUnitStart(node.callee) + ) { + const currentContext = + contextStack[contextStack.length - 1]; context.report({ node: node, messageId: "noQUnitStartInTests", data: { - context: currentContext - } + context: currentContext, + }, }); } }, - "Property": function (node) { - if (utils.isModuleHookPropertyKey(node.key) && isInModule(node)) { + Property: function (node) { + if ( + utils.isModuleHookPropertyKey(node.key) && + isInModule(node) + ) { contextStack.push(`${node.key.name} hook`); } }, @@ -85,10 +97,13 @@ module.exports = { }, "Property:exit": function (node) { - if (utils.isModuleHookPropertyKey(node.key) && isInModule(node)) { + if ( + utils.isModuleHookPropertyKey(node.key) && + isInModule(node) + ) { contextStack.pop(); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-qunit-stop.js b/lib/rules/no-qunit-stop.js index ad14f162..6570927b 100644 --- a/lib/rules/no-qunit-stop.js +++ b/lib/rules/no-qunit-stop.js @@ -21,19 +21,21 @@ module.exports = { docs: { description: "disallow QUnit.stop", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-qunit-stop.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-qunit-stop.md", }, messages: { - noQUnitStop: "Use assert.async() instead of QUnit.stop()." + noQUnitStop: "Use assert.async() instead of QUnit.stop().", }, - schema: [] + schema: [], }, create: function (context) { function isQUnitStop(calleeNode) { - return calleeNode && + return ( + calleeNode && calleeNode.type === "MemberExpression" && - utils.isStop(calleeNode); + utils.isStop(calleeNode) + ); } //-------------------------------------------------------------------------- @@ -41,14 +43,14 @@ module.exports = { //-------------------------------------------------------------------------- return { - "CallExpression": function (node) { + CallExpression: function (node) { if (isQUnitStop(node.callee)) { context.report({ node: node, - messageId: "noQUnitStop" + messageId: "noQUnitStop", }); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-reassign-log-callbacks.js b/lib/rules/no-reassign-log-callbacks.js index 0a5b05ea..2e2b0619 100644 --- a/lib/rules/no-reassign-log-callbacks.js +++ b/lib/rules/no-reassign-log-callbacks.js @@ -17,12 +17,12 @@ module.exports = { docs: { description: "disallow overwriting of QUnit logging callbacks", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-reassign-log-callbacks.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-reassign-log-callbacks.md", }, messages: { - noReassignLogCallbacks: "Do not reassign QUnit log callbacks." + noReassignLogCallbacks: "Do not reassign QUnit log callbacks.", }, - schema: [] + schema: [], }, create: function (context) { @@ -33,7 +33,7 @@ module.exports = { "moduleDone", "moduleStart", "testDone", - "testStart" + "testStart", ]; //-------------------------------------------------------------------------- @@ -43,14 +43,16 @@ module.exports = { const visitors = {}; for (const callbackName of LOG_CALLBACKS) { - visitors[`AssignmentExpression[left.object.name='QUnit'][left.property.name='${callbackName}']`] = function (node) { + visitors[ + `AssignmentExpression[left.object.name='QUnit'][left.property.name='${callbackName}']` + ] = function (node) { context.report({ node: node, - messageId: "noReassignLogCallbacks" + messageId: "noReassignLogCallbacks", }); }; } return visitors; - } + }, }; diff --git a/lib/rules/no-reset.js b/lib/rules/no-reset.js index 7b08e50d..b251e193 100644 --- a/lib/rules/no-reset.js +++ b/lib/rules/no-reset.js @@ -17,12 +17,12 @@ module.exports = { docs: { description: "disallow QUnit.reset", category: "Best Practices", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-reset.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-reset.md", }, messages: { - noReset: "Do not use QUnit.reset()." + noReset: "Do not use QUnit.reset().", }, - schema: [] + schema: [], }, create: function (context) { @@ -31,12 +31,13 @@ module.exports = { //-------------------------------------------------------------------------- return { - "CallExpression[callee.object.name='QUnit'][callee.property.name='reset']": function (node) { - context.report({ - node: node, - messageId: "noReset" - }); - } + "CallExpression[callee.object.name='QUnit'][callee.property.name='reset']": + function (node) { + context.report({ + node: node, + messageId: "noReset", + }); + }, }; - } + }, }; diff --git a/lib/rules/no-setup-teardown.js b/lib/rules/no-setup-teardown.js index 9572395e..03d0435d 100644 --- a/lib/rules/no-setup-teardown.js +++ b/lib/rules/no-setup-teardown.js @@ -19,19 +19,19 @@ module.exports = { docs: { description: "disallow setup/teardown module hooks", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-setup-teardown.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-setup-teardown.md", }, fixable: "code", messages: { - noSetupTeardown: "Use {{preferred}} instead of {{forbidden}}." + noSetupTeardown: "Use {{preferred}} instead of {{forbidden}}.", }, - schema: [] + schema: [], }, create: function (context) { const replacements = { setup: "beforeEach", - teardown: "afterEach" + teardown: "afterEach", }; function checkModuleHook(propertyNode) { @@ -41,29 +41,37 @@ module.exports = { messageId: "noSetupTeardown", data: { forbidden: propertyNode.key.name, - preferred: replacements[propertyNode.key.name] + preferred: replacements[propertyNode.key.name], }, fix(fixer) { - return fixer.replaceText(propertyNode.key, replacements[propertyNode.key.name]); - } + return fixer.replaceText( + propertyNode.key, + replacements[propertyNode.key.name], + ); + }, }); } } function isInModule(propertyNode) { - return propertyNode && - propertyNode.parent && // ObjectExpression - propertyNode.parent.parent && // CallExpression? + return ( + propertyNode && + propertyNode.parent && // ObjectExpression + propertyNode.parent.parent && // CallExpression? propertyNode.parent.parent.type === "CallExpression" && - utils.isModule(propertyNode.parent.parent.callee); + utils.isModule(propertyNode.parent.parent.callee) + ); } return { - "Property": function (node) { - if (utils.isModuleHookPropertyKey(node.key) && isInModule(node)) { + Property: function (node) { + if ( + utils.isModuleHookPropertyKey(node.key) && + isInModule(node) + ) { checkModuleHook(node); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-skip.js b/lib/rules/no-skip.js index 127b41b8..abbb0200 100644 --- a/lib/rules/no-skip.js +++ b/lib/rules/no-skip.js @@ -22,24 +22,24 @@ module.exports = { description: "disallow QUnit.skip", category: "Best Practices", recommended: false, - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-skip.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-skip.md", }, messages: { - noQUnitSkip: "Unexpected skip() call." + noQUnitSkip: "Unexpected skip() call.", }, - schema: [] + schema: [], }, create: function (context) { return { - "CallExpression": function (node) { + CallExpression: function (node) { if (utils.isSkip(node.callee)) { context.report({ node: node, - messageId: "noQUnitSkip" + messageId: "noQUnitSkip", }); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-test-expect-argument.js b/lib/rules/no-test-expect-argument.js index 49395d42..801f94ae 100644 --- a/lib/rules/no-test-expect-argument.js +++ b/lib/rules/no-test-expect-argument.js @@ -21,12 +21,12 @@ module.exports = { docs: { description: "disallow the expect argument in QUnit.test", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-test-expect-argument.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-test-expect-argument.md", }, messages: { - noExpectArgument: "Do not use expect argument in {{callee}}()." + noExpectArgument: "Do not use expect argument in {{callee}}().", }, - schema: [] + schema: [], }, create: function (context) { @@ -39,11 +39,11 @@ module.exports = { node: node, messageId: "noExpectArgument", data: { - callee: sourceCode.getText(node.callee) - } + callee: sourceCode.getText(node.callee), + }, }); } - } + }, }; - } + }, }; diff --git a/lib/rules/no-throws-string.js b/lib/rules/no-throws-string.js index 3f828880..ff8ae73e 100644 --- a/lib/rules/no-throws-string.js +++ b/lib/rules/no-throws-string.js @@ -8,7 +8,7 @@ // Requirements //------------------------------------------------------------------------------ -const assert = require("assert"), +const assert = require("node:assert"), utils = require("../utils"); //------------------------------------------------------------------------------ @@ -26,7 +26,8 @@ function isThrows(calleeNode, assertVar) { /* istanbul ignore else: correctly returns false */ if (calleeNode.type === "MemberExpression") { - result = calleeNode.object.type === "Identifier" && + result = + calleeNode.object.type === "Identifier" && calleeNode.object.name === assertVar && calleeNode.property.type === "Identifier" && ["throws", "raises"].includes(calleeNode.property.name); @@ -46,14 +47,15 @@ module.exports = { meta: { type: "suggestion", docs: { - description: "disallow assert.throws() with block, string, and message args", + description: + "disallow assert.throws() with block, string, and message args", category: "Possible errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/no-throws-string.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/no-throws-string.md", }, messages: { - noThrowsWithString: "Do not use {{callee}}(block, string, string)." + noThrowsWithString: "Do not use {{callee}}(block, string, string).", }, - schema: [] + schema: [], }, create: function (context) { @@ -64,24 +66,33 @@ module.exports = { const args = callExprNode.arguments, argCount = args.length; - if (argCount > 2 && args[1].type === "Literal" && typeof args[1].value === "string") { + if ( + argCount > 2 && + args[1].type === "Literal" && + typeof args[1].value === "string" + ) { context.report({ node: callExprNode, messageId: "noThrowsWithString", data: { - callee: sourceCode.getText(callExprNode.callee) - } + callee: sourceCode.getText(callExprNode.callee), + }, }); } } return { - "CallExpression": function (node) { + CallExpression: function (node) { if (utils.isTest(node.callee)) { testStack.push({ - assertVar: utils.getAssertContextNameForTest(node.arguments) + assertVar: utils.getAssertContextNameForTest( + node.arguments, + ), }); - } else if (testStack.length > 0 && isThrows(node.callee, getAssertVar(testStack))) { + } else if ( + testStack.length > 0 && + isThrows(node.callee, getAssertVar(testStack)) + ) { checkAndReport(node); } }, @@ -90,8 +101,7 @@ module.exports = { if (utils.isTest(node.callee)) { testStack.pop(); } - } + }, }; - } - + }, }; diff --git a/lib/rules/require-expect.js b/lib/rules/require-expect.js index 8e65ad16..52931b35 100644 --- a/lib/rules/require-expect.js +++ b/lib/rules/require-expect.js @@ -18,18 +18,19 @@ module.exports = { docs: { description: "enforce that `expect` is called", category: "Best Practices", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/require-expect.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/require-expect.md", }, messages: { expectRequired: "Test is missing `{{expect}}()` call.", expectForbidden: "Unexpected use of `{{expect}}()` call.", - expectRequiredComplexTest: "Should use `{{expect}}()` when using assertions outside of the top-level test callback." + expectRequiredComplexTest: + "Should use `{{expect}}()` when using assertions outside of the top-level test callback.", }, schema: [ { - "enum": ["always", "except-simple", "never", "never-except-zero"] - } - ] + enum: ["always", "except-simple", "never", "never-except-zero"], + }, + ], }, create: function (context) { @@ -40,10 +41,12 @@ module.exports = { } function isAssertExpectCall(callee) { - return callee.object && - callee.object.type === "Identifier" && - callee.object.name === currentTest.assertName && - callee.property.name === "expect"; + return ( + callee.object && + callee.object.type === "Identifier" && + callee.object.name === currentTest.assertName && + callee.property.name === "expect" + ); } function isExpectCall(callee) { @@ -51,10 +54,13 @@ module.exports = { } function isNonZeroExpectCall(node) { - return isExpectCall(node.callee) && !( - node.arguments.length === 1 && - node.arguments[0].type === "Literal" && - node.arguments[0].raw === "0" + return ( + isExpectCall(node.callee) && + !( + node.arguments.length === 1 && + node.arguments[0].type === "Literal" && + node.arguments[0].raw === "0" + ) ); } @@ -63,7 +69,10 @@ module.exports = { } function isUsingAssertInNestedBlock(node) { - return currentTest.blockDepth > 1 && utils.isAssertion(node.callee, currentTest.assertName); + return ( + currentTest.blockDepth > 1 && + utils.isAssertion(node.callee, currentTest.assertName) + ); } function isPassingAssertAsArgument(node) { @@ -80,8 +89,11 @@ module.exports = { } function isViolatingExceptSimpleRule(node) { - return !currentTest.isExpectUsed && - (isUsingAssertInNestedBlock(node) || isPassingAssertAsArgument(node)); + return ( + !currentTest.isExpectUsed && + (isUsingAssertInNestedBlock(node) || + isPassingAssertAsArgument(node)) + ); } function captureTestContext(node) { @@ -90,7 +102,7 @@ module.exports = { node: node, blockDepth: 0, isExpectUsed: false, - didReport: false + didReport: false, }; } @@ -100,12 +112,14 @@ module.exports = { function assertionMessageData() { return { - expect: currentTest.assertName ? `${currentTest.assertName}.expect` : "expect" + expect: currentTest.assertName + ? `${currentTest.assertName}.expect` + : "expect", }; } const ExceptSimpleStrategy = { - "CallExpression": function (node) { + CallExpression: function (node) { if (currentTest && !currentTest.didReport) { if (isTopLevelExpectCall(node.callee)) { currentTest.isExpectUsed = true; @@ -113,7 +127,7 @@ module.exports = { context.report({ node: currentTest.node, messageId: "expectRequiredComplexTest", - data: assertionMessageData() + data: assertionMessageData(), }); currentTest.didReport = true; } @@ -128,21 +142,23 @@ module.exports = { } }, - "BlockStatement, ArrowFunctionExpression[body.type!='BlockStatement']": function () { - if (currentTest) { - currentTest.blockDepth++; - } - }, + "BlockStatement, ArrowFunctionExpression[body.type!='BlockStatement']": + function () { + if (currentTest) { + currentTest.blockDepth++; + } + }, - "BlockStatement, ArrowFunctionExpression[body.type!='BlockStatement']:exit": function () { - if (currentTest) { - currentTest.blockDepth--; - } - } + "BlockStatement, ArrowFunctionExpression[body.type!='BlockStatement']:exit": + function () { + if (currentTest) { + currentTest.blockDepth--; + } + }, }; const AlwaysStrategy = { - "CallExpression": function (node) { + CallExpression: function (node) { if (currentTest && isExpectCall(node.callee)) { currentTest.isExpectUsed = true; } else if (utils.isTest(node.callee)) { @@ -156,17 +172,17 @@ module.exports = { context.report({ node: currentTest.node, messageId: "expectRequired", - data: assertionMessageData() + data: assertionMessageData(), }); } releaseTestContext(); } - } + }, }; const NeverStrategy = { - "CallExpression": function (node) { + CallExpression: function (node) { if (currentTest && isExpectCall(node.callee)) { currentTest.isExpectUsed = true; } else if (utils.isTest(node.callee)) { @@ -179,16 +195,16 @@ module.exports = { context.report({ node: currentTest.node, messageId: "expectForbidden", - data: assertionMessageData() + data: assertionMessageData(), }); } releaseTestContext(); } - } + }, }; const NeverExceptZeroStrategy = { - "CallExpression": function (node) { + CallExpression: function (node) { if (currentTest && isNonZeroExpectCall(node)) { currentTest.isNonZeroExpectUsed = true; } else if (utils.isTest(node.callee)) { @@ -201,19 +217,21 @@ module.exports = { context.report({ node: currentTest.node, messageId: "expectForbidden", - data: assertionMessageData() + data: assertionMessageData(), }); } releaseTestContext(); } - } + }, }; - return { - "always": AlwaysStrategy, - "except-simple": ExceptSimpleStrategy, - "never": NeverStrategy, - "never-except-zero": NeverExceptZeroStrategy - }[context.options[0]] || ExceptSimpleStrategy; - } + return ( + { + always: AlwaysStrategy, + "except-simple": ExceptSimpleStrategy, + never: NeverStrategy, + "never-except-zero": NeverExceptZeroStrategy, + }[context.options[0]] || NeverExceptZeroStrategy + ); + }, }; diff --git a/lib/rules/require-object-in-propequal.js b/lib/rules/require-object-in-propequal.js index 8327733e..07c190aa 100644 --- a/lib/rules/require-object-in-propequal.js +++ b/lib/rules/require-object-in-propequal.js @@ -8,7 +8,7 @@ // Requirements //------------------------------------------------------------------------------ -const assert = require("assert"), +const assert = require("node:assert"), utils = require("../utils"); //------------------------------------------------------------------------------ @@ -20,14 +20,16 @@ module.exports = { meta: { type: "problem", docs: { - description: "enforce use of objects as expected value in `assert.propEqual`", + description: + "enforce use of objects as expected value in `assert.propEqual`", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/require-object-in-propequal.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/require-object-in-propequal.md", }, messages: { - useObject: "Use object as propEqual expected value (found: {{ value }})." + useObject: + "Use object as propEqual expected value (found: {{ value }}).", }, - schema: [] + schema: [], }, create: function (context) { @@ -42,22 +44,28 @@ module.exports = { } function isGlobalPropEqual(calleeNode) { - return calleeNode && + return ( + calleeNode && calleeNode.type === "Identifier" && - calleeNode.name === "propEqual"; + calleeNode.name === "propEqual" + ); } function isAssertPropEqual(calleeNode) { - return calleeNode && + return ( + calleeNode && calleeNode.type === "MemberExpression" && calleeNode.property.type === "Identifier" && calleeNode.property.name === "propEqual" && calleeNode.object.type === "Identifier" && - calleeNode.object.name === getCurrentAssertContextVariable(); + calleeNode.object.name === getCurrentAssertContextVariable() + ); } function isPropEqual(calleeNode) { - return isAssertPropEqual(calleeNode) || isGlobalPropEqual(calleeNode); + return ( + isAssertPropEqual(calleeNode) || isGlobalPropEqual(calleeNode) + ); } function isValidExpectedValue(argNode) { @@ -76,36 +84,50 @@ module.exports = { } function hasNonObjectExpectedValue(callExpressionNode) { - return callExpressionNode && + return ( + callExpressionNode && callExpressionNode.arguments && callExpressionNode.arguments.length >= 2 && - !isValidExpectedValue(callExpressionNode.arguments[1]); + !isValidExpectedValue(callExpressionNode.arguments[1]) + ); } return { - "CallExpression": function (node) { + CallExpression: function (node) { /* istanbul ignore else: correctly does nothing */ - if (utils.isTest(node.callee) || utils.isAsyncTest(node.callee)) { + if ( + utils.isTest(node.callee) || + utils.isAsyncTest(node.callee) + ) { testStack.push({ - assertVar: utils.getAssertContextNameForTest(node.arguments) + assertVar: utils.getAssertContextNameForTest( + node.arguments, + ), }); - } else if (testStack.length > 0 && isPropEqual(node.callee) && hasNonObjectExpectedValue(node)) { + } else if ( + testStack.length > 0 && + isPropEqual(node.callee) && + hasNonObjectExpectedValue(node) + ) { context.report({ node, messageId: "useObject", data: { - value: sourceCode.getText(node.arguments[1]) - } + value: sourceCode.getText(node.arguments[1]), + }, }); } }, "CallExpression:exit": function (node) { /* istanbul ignore else: correctly does nothing */ - if (utils.isTest(node.callee) || utils.isAsyncTest(node.callee)) { + if ( + utils.isTest(node.callee) || + utils.isAsyncTest(node.callee) + ) { testStack.pop(); } - } + }, }; - } + }, }; diff --git a/lib/rules/resolve-async.js b/lib/rules/resolve-async.js index 66c4b6eb..1211d37c 100644 --- a/lib/rules/resolve-async.js +++ b/lib/rules/resolve-async.js @@ -17,13 +17,15 @@ module.exports = { docs: { description: "require that async calls are resolved", category: "Possible Errors", - url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/master/docs/rules/resolve-async.md" + url: "https://github.com/platinumazure/eslint-plugin-qunit/blob/main/docs/rules/resolve-async.md", }, messages: { - needMoreStartCalls: "Need {{semaphore}} more start() {{callOrCalls}}.", - asyncCallbackNotCalled: "Async callback \"{{asyncVar}}\" is not called." + needMoreStartCalls: + "Need {{semaphore}} more start() {{callOrCalls}}.", + asyncCallbackNotCalled: + 'Async callback "{{asyncVar}}" is not called.', }, - schema: [] + schema: [], }, create: function (context) { @@ -37,7 +39,10 @@ module.exports = { const asyncState = asyncStateStack[asyncStateStack.length - 1]; const assertContextVar = asyncState && asyncState.assertContextVar; - return utils.isAsyncCallExpression(callExpressionNode, assertContextVar); + return utils.isAsyncCallExpression( + callExpressionNode, + assertContextVar, + ); } function getAsyncCallbackVarOrNull(calleeNode) { @@ -45,12 +50,17 @@ module.exports = { let result = null; if (asyncState) { - if (calleeNode.type === "Identifier" && calleeNode.name in asyncState.asyncCallbackVars) { + if ( + calleeNode.type === "Identifier" && + calleeNode.name in asyncState.asyncCallbackVars + ) { result = calleeNode.name; } else if (calleeNode.type === "MemberExpression") { - const isCallOrApply = calleeNode.property.type === "Identifier" && + const isCallOrApply = + calleeNode.property.type === "Identifier" && ["call", "apply"].includes(calleeNode.property.name); - const isCallbackVar = calleeNode.object.name in asyncState.asyncCallbackVars; + const isCallbackVar = + calleeNode.object.name in asyncState.asyncCallbackVars; if (isCallOrApply && isCallbackVar) { result = calleeNode.object.name; @@ -95,8 +105,8 @@ module.exports = { messageId: "needMoreStartCalls", data: { semaphore: asyncState.stopSemaphoreCount, - callOrCalls: singular ? "call" : "calls" - } + callOrCalls: singular ? "call" : "calls", + }, }); } @@ -106,32 +116,38 @@ module.exports = { node: node, messageId: "asyncCallbackNotCalled", data: { - asyncVar: callbackVar - } + asyncVar: callbackVar, + }, }); } } } function isInModule(propertyNode) { - return propertyNode && - propertyNode.parent && // ObjectExpression - propertyNode.parent.parent && // CallExpression? + return ( + propertyNode && + propertyNode.parent && // ObjectExpression + propertyNode.parent.parent && // CallExpression? propertyNode.parent.parent.type === "CallExpression" && - utils.isModule(propertyNode.parent.parent.callee); + utils.isModule(propertyNode.parent.parent.callee) + ); } return { - "CallExpression": function (node) { + CallExpression: function (node) { const callbackVar = getAsyncCallbackVarOrNull(node.callee); let delta; if (utils.isTest(node.callee)) { - const assertContextVar = utils.getAssertContextNameForTest(node.arguments); + const assertContextVar = utils.getAssertContextNameForTest( + node.arguments, + ); asyncStateStack.push({ - stopSemaphoreCount: utils.isAsyncTest(node.callee) ? 1 : 0, + stopSemaphoreCount: utils.isAsyncTest(node.callee) + ? 1 + : 0, asyncCallbackVars: {}, - assertContextVar: assertContextVar + assertContextVar: assertContextVar, }); } else if (callbackVar) { markAsyncCallbackVarCalled(callbackVar); @@ -151,35 +167,43 @@ module.exports = { } }, - "Property": function (node) { - if (utils.isModuleHookPropertyKey(node.key) && isInModule(node)) { - const assertContextVar = utils.getAssertContextName(node.value); + Property: function (node) { + if ( + utils.isModuleHookPropertyKey(node.key) && + isInModule(node) + ) { + const assertContextVar = utils.getAssertContextName( + node.value, + ); asyncStateStack.push({ stopSemaphoreCount: 0, asyncCallbackVars: {}, - assertContextVar: assertContextVar + assertContextVar: assertContextVar, }); } }, "Property:exit": function (node) { - if (utils.isModuleHookPropertyKey(node.key) && isInModule(node)) { + if ( + utils.isModuleHookPropertyKey(node.key) && + isInModule(node) + ) { const asyncState = asyncStateStack.pop(); verifyAsyncState(asyncState, node); } }, - "AssignmentExpression": function (node) { + AssignmentExpression: function (node) { if (isAsyncCallExpression(node.right)) { addAsyncCallbackVar(node.left); } }, - "VariableDeclarator": function (node) { + VariableDeclarator: function (node) { if (isAsyncCallExpression(node.init)) { addAsyncCallbackVar(node.id); } - } + }, }; - } + }, }; diff --git a/lib/utils.js b/lib/utils.js index 3f6f9513..b462b533 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -4,65 +4,68 @@ */ "use strict"; -const assert = require("assert"); +const assert = require("node:assert"); const SUPPORTED_TEST_IDENTIFIERS = new Set(["test", "asyncTest", "only"]); const OLD_MODULE_HOOK_IDENTIFIERS = ["setup", "teardown"]; const NEW_MODULE_HOOK_IDENTIFIERS = ["beforeEach", "afterEach"]; -const ALL_MODULE_HOOK_IDENTIFIERS = new Set([...OLD_MODULE_HOOK_IDENTIFIERS, ...NEW_MODULE_HOOK_IDENTIFIERS]); +const ALL_MODULE_HOOK_IDENTIFIERS = new Set([ + ...OLD_MODULE_HOOK_IDENTIFIERS, + ...NEW_MODULE_HOOK_IDENTIFIERS, +]); const ASSERTION_METADATA = { deepEqual: { allowedArities: [2], - compareActualFirst: true + compareActualFirst: true, }, equal: { allowedArities: [2], - compareActualFirst: true + compareActualFirst: true, }, false: { - allowedArities: [1] + allowedArities: [1], }, notDeepEqual: { allowedArities: [2], - compareActualFirst: true + compareActualFirst: true, }, notEqual: { allowedArities: [2], - compareActualFirst: true + compareActualFirst: true, }, notOk: { - allowedArities: [1] + allowedArities: [1], }, notPropEqual: { allowedArities: [2], - compareActualFirst: true + compareActualFirst: true, }, notStrictEqual: { allowedArities: [2], - compareActualFirst: true + compareActualFirst: true, }, ok: { - allowedArities: [1] + allowedArities: [1], }, propEqual: { allowedArities: [2], - compareActualFirst: true + compareActualFirst: true, }, strictEqual: { allowedArities: [2], - compareActualFirst: true + compareActualFirst: true, }, raises: { - allowedArities: [1, 2] + allowedArities: [1, 2], }, throws: { - allowedArities: [1, 2] + allowedArities: [1, 2], }, true: { - allowedArities: [1] - } + allowedArities: [1], + }, }; function getAssertionNames() { @@ -73,15 +76,22 @@ exports.getAssertionNames = getAssertionNames; function getAssertionMetadata(calleeNode, assertVar) { if (calleeNode.type === "MemberExpression") { - return calleeNode.object && + return ( + calleeNode.object && calleeNode.object.type === "Identifier" && calleeNode.object.name === assertVar && calleeNode.property && - Object.hasOwnProperty.call(ASSERTION_METADATA, calleeNode.property.name) && - ASSERTION_METADATA[calleeNode.property.name]; + Object.hasOwnProperty.call( + ASSERTION_METADATA, + calleeNode.property.name, + ) && + ASSERTION_METADATA[calleeNode.property.name] + ); } else if (calleeNode.type === "Identifier") { - return Object.hasOwnProperty.call(ASSERTION_METADATA, calleeNode.name) && - ASSERTION_METADATA[calleeNode.name]; + return ( + Object.hasOwnProperty.call(ASSERTION_METADATA, calleeNode.name) && + ASSERTION_METADATA[calleeNode.name] + ); } return null; @@ -92,13 +102,15 @@ exports.isAsyncCallExpression = function (callExpressionNode, assertVar) { assertVar = "assert"; } - return callExpressionNode && + return ( + callExpressionNode && callExpressionNode.type === "CallExpression" && callExpressionNode.callee.type === "MemberExpression" && callExpressionNode.callee.object.type === "Identifier" && callExpressionNode.callee.object.name === assertVar && callExpressionNode.callee.property.type === "Identifier" && - callExpressionNode.callee.property.name === "async"; + callExpressionNode.callee.property.name === "async" + ); }; exports.isStop = function (calleeNode) { @@ -108,7 +120,8 @@ exports.isStop = function (calleeNode) { if (calleeNode.type === "Identifier") { result = calleeNode.name === "stop"; } else if (calleeNode.type === "MemberExpression") { - result = calleeNode.object.type === "Identifier" && + result = + calleeNode.object.type === "Identifier" && calleeNode.object.name === "QUnit" && calleeNode.property.type === "Identifier" && calleeNode.property.name === "stop"; @@ -124,7 +137,8 @@ exports.isStart = function (calleeNode) { if (calleeNode.type === "Identifier") { result = calleeNode.name === "start"; } else if (calleeNode.type === "MemberExpression") { - result = calleeNode.object.type === "Identifier" && + result = + calleeNode.object.type === "Identifier" && calleeNode.object.name === "QUnit" && calleeNode.property.type === "Identifier" && calleeNode.property.name === "start"; @@ -140,7 +154,8 @@ exports.isTest = function (calleeNode) { if (calleeNode.type === "Identifier") { result = SUPPORTED_TEST_IDENTIFIERS.has(calleeNode.name); } else if (calleeNode.type === "MemberExpression") { - result = calleeNode.object.type === "Identifier" && + result = + calleeNode.object.type === "Identifier" && calleeNode.object.name === "QUnit" && calleeNode.property.type === "Identifier" && SUPPORTED_TEST_IDENTIFIERS.has(calleeNode.property.name); @@ -156,7 +171,8 @@ exports.isModule = function (calleeNode) { if (calleeNode.type === "Identifier") { result = calleeNode.name === "module"; } else if (calleeNode.type === "MemberExpression") { - result = calleeNode.object.type === "Identifier" && + result = + calleeNode.object.type === "Identifier" && calleeNode.object.name === "QUnit" && calleeNode.property.type === "Identifier" && calleeNode.property.name === "module"; @@ -166,9 +182,11 @@ exports.isModule = function (calleeNode) { }; exports.isModuleHookPropertyKey = function (identifierNode) { - return identifierNode && + return ( + identifierNode && identifierNode.type === "Identifier" && - ALL_MODULE_HOOK_IDENTIFIERS.has(identifierNode.name); + ALL_MODULE_HOOK_IDENTIFIERS.has(identifierNode.name) + ); }; exports.isAsyncTest = function (calleeNode) { @@ -178,7 +196,8 @@ exports.isAsyncTest = function (calleeNode) { if (calleeNode.type === "Identifier") { result = calleeNode.name === "asyncTest"; } else if (calleeNode.type === "MemberExpression") { - result = calleeNode.object.type === "Identifier" && + result = + calleeNode.object.type === "Identifier" && calleeNode.object.name === "QUnit" && calleeNode.property.type === "Identifier" && calleeNode.property.name === "asyncTest"; @@ -194,13 +213,21 @@ function isQUnitMethod(calleeNode, qunitMethod) { if (calleeNode.type === "Identifier") { // () result = calleeNode.name === qunitMethod; - } else if (calleeNode.type === "MemberExpression" && calleeNode.property.type === "Identifier" && calleeNode.property.name === qunitMethod) { + } else if ( + calleeNode.type === "MemberExpression" && + calleeNode.property.type === "Identifier" && + calleeNode.property.name === qunitMethod + ) { if (calleeNode.object.type === "Identifier") { // QUnit.() or module.(), or test.() - result = calleeNode.object.name === "QUnit" || calleeNode.object.name === "module" || calleeNode.object.name === "test"; + result = + calleeNode.object.name === "QUnit" || + calleeNode.object.name === "module" || + calleeNode.object.name === "test"; } else if (calleeNode.object.type === "MemberExpression") { // QUnit.*.() - result = calleeNode.object.object.type === "Identifier" && + result = + calleeNode.object.object.type === "Identifier" && calleeNode.object.object.name === "QUnit"; } } @@ -218,7 +245,10 @@ exports.isSkip = function (calleeNode) { exports.getAssertContextNameForTest = function (argumentsNodes) { const functionExpr = argumentsNodes.find(function (argNode) { - return argNode.type === "FunctionExpression" || argNode.type === "ArrowFunctionExpression"; + return ( + argNode.type === "FunctionExpression" || + argNode.type === "ArrowFunctionExpression" + ); }); return this.getAssertContextName(functionExpr); @@ -230,7 +260,9 @@ exports.getAssertContextName = function (functionExpr) { if (functionExpr && functionExpr.params) { // In TypeScript, `this` can be passed as the first function parameter to add a type to it, // and we want to ignore that parameter since we're looking for the `hooks` variable. - const hooksParam = functionExpr.params.find(p => p.type === "Identifier" && p.name !== "this"); + const hooksParam = functionExpr.params.find( + (p) => p.type === "Identifier" && p.name !== "this", + ); if (hooksParam) { result = hooksParam.name; } @@ -246,7 +278,10 @@ exports.isAssertion = function (calleeNode, assertVar) { exports.getAllowedArities = function (calleeNode, assertVar) { const assertionMetadata = getAssertionMetadata(calleeNode, assertVar); - return assertionMetadata && assertionMetadata.allowedArities || /* istanbul ignore next */[]; + return ( + (assertionMetadata && assertionMetadata.allowedArities) || + /* istanbul ignore next */ [] + ); }; exports.isComparativeAssertion = function (calleeNode, assertVar) { @@ -268,9 +303,11 @@ exports.createAssertionCheck = function (assertions, errorMessageConfig) { const testStack = []; function isGlobalAssertion(calleeNode) { - return calleeNode && + return ( + calleeNode && calleeNode.type === "Identifier" && - assertions.includes(calleeNode.name); + assertions.includes(calleeNode.name) + ); } function getCurrentAssertContextVariable() { @@ -280,58 +317,83 @@ exports.createAssertionCheck = function (assertions, errorMessageConfig) { } function isMethodCalledOnLocalAssertObject(calleeNode) { - return calleeNode && + return ( + calleeNode && calleeNode.type === "MemberExpression" && calleeNode.property.type === "Identifier" && assertions.includes(calleeNode.property.name) && calleeNode.object.type === "Identifier" && - calleeNode.object.name === getCurrentAssertContextVariable(); + calleeNode.object.name === getCurrentAssertContextVariable() + ); } function isExpectedAssertion(calleeNode) { - return isGlobalAssertion(calleeNode) || - isMethodCalledOnLocalAssertObject(calleeNode); + return ( + isGlobalAssertion(calleeNode) || + isMethodCalledOnLocalAssertObject(calleeNode) + ); } function reportError(node) { const assertVar = getCurrentAssertContextVariable(); const isGlobal = isGlobalAssertion(node.callee); - const assertion = isGlobal ? node.callee.name : node.callee.property.name; + const assertion = isGlobal + ? node.callee.name + : node.callee.property.name; const reportErrorObject = { node, data: { assertVar, - assertion - } + assertion, + }, }; - const errorMessageConfigForAssertion = errorMessageConfig[assertion]; - if (errorMessageConfigForAssertion.unexpectedGlobalAssertionMessageId && errorMessageConfigForAssertion.unexpectedLocalAssertionMessageId) { - reportErrorObject.messageId = isGlobal ? errorMessageConfigForAssertion.unexpectedGlobalAssertionMessageId : errorMessageConfigForAssertion.unexpectedLocalAssertionMessageId; + const errorMessageConfigForAssertion = + errorMessageConfig[assertion]; + if ( + errorMessageConfigForAssertion.unexpectedGlobalAssertionMessageId && + errorMessageConfigForAssertion.unexpectedLocalAssertionMessageId + ) { + reportErrorObject.messageId = isGlobal + ? errorMessageConfigForAssertion.unexpectedGlobalAssertionMessageId + : errorMessageConfigForAssertion.unexpectedLocalAssertionMessageId; } else { - reportErrorObject.message = isGlobal ? errorMessageConfigForAssertion.unexpectedGlobalAssertionMessage : errorMessageConfigForAssertion.unexpectedLocalAssertionMessage; + reportErrorObject.message = isGlobal + ? errorMessageConfigForAssertion.unexpectedGlobalAssertionMessage + : errorMessageConfigForAssertion.unexpectedLocalAssertionMessage; } context.report(reportErrorObject); } return { - "CallExpression": function (node) { + CallExpression: function (node) { /* istanbul ignore else: correctly does nothing */ - if (exports.isTest(node.callee) || exports.isAsyncTest(node.callee)) { + if ( + exports.isTest(node.callee) || + exports.isAsyncTest(node.callee) + ) { testStack.push({ - assertVar: exports.getAssertContextNameForTest(node.arguments) + assertVar: exports.getAssertContextNameForTest( + node.arguments, + ), }); - } else if (testStack.length > 0 && isExpectedAssertion(node.callee)) { + } else if ( + testStack.length > 0 && + isExpectedAssertion(node.callee) + ) { reportError(node); } }, "CallExpression:exit": function (node) { /* istanbul ignore else: correctly does nothing */ - if (exports.isTest(node.callee) || exports.isAsyncTest(node.callee)) { + if ( + exports.isTest(node.callee) || + exports.isAsyncTest(node.callee) + ) { testStack.pop(); } - } + }, }; }; }; diff --git a/package-lock.json b/package-lock.json index fc7003b2..07bf2743 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,84 +1,188 @@ { "name": "eslint-plugin-qunit", - "version": "7.3.4", - "lockfileVersion": 2, + "version": "8.0.1", + "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "eslint-plugin-qunit", - "version": "7.3.4", + "version": "8.0.1", "license": "MIT", "dependencies": { "eslint-utils": "^3.0.0", "requireindex": "^1.2.0" }, "devDependencies": { - "@release-it/conventional-changelog": "^5.1.1", - "@typescript-eslint/parser": "^5.30.5", - "all-contributors-cli": "^6.20.0", - "chai": "^4.3.6", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "^8.55.0", + "@release-it/conventional-changelog": "^7.0.2", + "@typescript-eslint/parser": "^6.7.4", + "all-contributors-cli": "^6.26.1", + "chai": "^4.3.10", "coveralls": "^3.1.1", - "eslint": "^8.19.0", - "eslint-doc-generator": "^1.0.2", + "eslint": "^8.55.0", + "eslint-config-prettier": "^9.1.0", + "eslint-doc-generator": "^1.5.1", "eslint-plugin-eslint-comments": "^3.2.0", - "eslint-plugin-eslint-plugin": "^5.0.6", - "eslint-plugin-markdown": "^3.0.0", - "eslint-plugin-mocha": "^10.0.5", + "eslint-plugin-eslint-plugin": "^5.1.1", + "eslint-plugin-markdown": "^3.0.1", + "eslint-plugin-mocha": "^10.2.0", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-unicorn": "^45.0.0", - "markdownlint-cli": "^0.32.2", - "mocha": "^10.0.0", + "eslint-plugin-prettier": "^5.0.1", + "eslint-plugin-qunit": "file:./", + "eslint-plugin-unicorn": "^51.0.1", + "eslint-remote-tester": "^3.0.1", + "globals": "^14.0.0", + "markdownlint-cli": "^0.39.0", + "mocha": "^10.2.0", "mocha-lcov-reporter": "^1.3.0", "npm-run-all": "^4.1.5", "nyc": "^15.1.0", "outdent": "^0.8.0", - "release-it": "^15.5.0", - "semver": "^7.3.7", - "typescript": "^4.7.4" + "prettier": "^3.1.0", + "release-it": "^16.2.1", + "semver": "^7.5.4", + "typescript": "^5.2.2" + }, + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "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==", + "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": "12.x || 14.x || >=16.0.0" + "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "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": { - "@babel/highlight": "^7.10.4" + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, "node_modules/@babel/compat-data": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", - "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", + "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz", - "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helpers": "^7.14.6", - "@babel/parser": "^7.14.6", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", + "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helpers": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "json5": "^2.2.2", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -88,50 +192,52 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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/@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/generator/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/@babel/helper-compilation-targets": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", - "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", + "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "@babel/compat-data": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", "semver": "^6.3.0" }, "engines": { @@ -141,187 +247,168 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-compilation-targets/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/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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/@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } + "node_modules/@babel/helper-compilation-targets/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/@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "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, - "dependencies": { - "@babel/types": "^7.14.5" - }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "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/types": "^7.14.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", - "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", + "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.14.5" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", - "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", + "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", - "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", + "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/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", - "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", + "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.14.5" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true, - "dependencies": { - "@babel/types": "^7.14.5" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "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.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz", - "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", + "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", "dev": true, "dependencies": { - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -366,13 +453,13 @@ "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -381,7 +468,7 @@ "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": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" @@ -400,9 +487,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", - "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -412,56 +499,45 @@ } }, "node_modules/@babel/runtime": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz", - "integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", + "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template/node_modules/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "dependencies": { - "@babel/highlight": "^7.14.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", - "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.7", - "@babel/types": "^7.14.5", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@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.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -469,18 +545,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -491,12 +555,13 @@ } }, "node_modules/@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -504,10 +569,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.1.2.tgz", - "integrity": "sha512-7qELuQWWjVDdVsFQ5+beUl+KPczrEDA7S3zM4QUd/bJl7oXgsmpXaEVqrRTnOBqenOV4rWf2kVZk2Ot085zPWA==", - "dev": true, + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -515,26 +579,25 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, + "node_modules/@eslint-community/regexpp": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", + "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -554,6 +617,20 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, + "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==", + "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", @@ -565,12 +642,31 @@ "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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, @@ -591,17 +687,17 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==" }, "node_modules/@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-5.0.0.tgz", + "integrity": "sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==", "dev": true, "engines": { - "node": ">=6.9.0" + "node": ">=10.13.0" } }, "node_modules/@iarna/toml": { @@ -610,6 +706,73 @@ "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", "dev": true }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "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/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "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", @@ -697,34 +860,112 @@ } }, "node_modules/@jest/schemas": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", - "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", "dev": true, "dependencies": { - "@sinclair/typebox": "^0.24.1" + "@sinclair/typebox": "^0.25.16" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { - "node": ">= 8" + "node": ">=6.0.0" } }, - "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==", - "engines": { + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "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.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1" + } + }, + "node_modules/@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", + "dev": true + }, + "node_modules/@ljharb/through": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.9.tgz", + "integrity": "sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "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==", + "engines": { "node": ">= 8" } }, @@ -741,28 +982,25 @@ } }, "node_modules/@octokit/auth-token": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz", - "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz", + "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==", "dev": true, - "dependencies": { - "@octokit/types": "^8.0.0" - }, "engines": { "node": ">= 14" } }, "node_modules/@octokit/core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz", - "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz", + "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==", "dev": true, "dependencies": { "@octokit/auth-token": "^3.0.0", "@octokit/graphql": "^5.0.0", "@octokit/request": "^6.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" }, @@ -771,12 +1009,12 @@ } }, "node_modules/@octokit/endpoint": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz", - "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" }, @@ -785,13 +1023,13 @@ } }, "node_modules/@octokit/graphql": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz", - "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz", + "integrity": "sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==", "dev": true, "dependencies": { "@octokit/request": "^6.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "universal-user-agent": "^6.0.0" }, "engines": { @@ -799,18 +1037,19 @@ } }, "node_modules/@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", + "version": "18.1.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.1.1.tgz", + "integrity": "sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==", "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz", - "integrity": "sha512-7A+rEkS70pH36Z6JivSlR7Zqepz3KVucEFVDnSrgHXzG7WLAzYwcHZbKdfTXHwuTHbkT1vKvz7dHl1+HNf6Qyw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", + "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0" + "@octokit/tsconfig": "^1.0.2", + "@octokit/types": "^9.2.3" }, "engines": { "node": ">= 14" @@ -829,13 +1068,12 @@ } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz", - "integrity": "sha512-orxQ0fAHA7IpYhG2flD2AygztPlGYNAdlzYz8yrD8NDgelPfOYoRPROfEyIe035PlxvbYrgkfUZIhSBKju/Cvw==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz", + "integrity": "sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0", - "deprecation": "^2.3.1" + "@octokit/types": "^10.0.0" }, "engines": { "node": ">= 14" @@ -844,15 +1082,24 @@ "@octokit/core": ">=3" } }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz", + "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, "node_modules/@octokit/request": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz", - "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", "dev": true, "dependencies": { "@octokit/endpoint": "^7.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "is-plain-object": "^5.0.0", "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" @@ -862,12 +1109,12 @@ } }, "node_modules/@octokit/request-error": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz", - "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^9.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" }, @@ -876,27 +1123,72 @@ } }, "node_modules/@octokit/rest": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.5.tgz", - "integrity": "sha512-+4qdrUFq2lk7Va+Qff3ofREQWGBeoTKNqlJO+FGjFP35ZahP+nBenhZiGdu8USSgmq4Ky3IJ/i4u0xbLqHaeow==", + "version": "19.0.13", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.13.tgz", + "integrity": "sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==", "dev": true, "dependencies": { - "@octokit/core": "^4.1.0", - "@octokit/plugin-paginate-rest": "^5.0.0", + "@octokit/core": "^4.2.1", + "@octokit/plugin-paginate-rest": "^6.1.2", "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^6.7.0" + "@octokit/plugin-rest-endpoint-methods": "^7.1.2" }, "engines": { "node": ">= 14" } }, + "node_modules/@octokit/tsconfig": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", + "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==", + "dev": true + }, "node_modules/@octokit/types": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.0.0.tgz", - "integrity": "sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/utils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^14.0.0" + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "dev": true, + "engines": { + "node": ">=12.22.0" } }, "node_modules/@pnpm/network.ca-file": { @@ -911,12 +1203,19 @@ "node": ">=12.22.0" } }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, "node_modules/@pnpm/npm-conf": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz", - "integrity": "sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", + "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", "dev": true, "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", "@pnpm/network.ca-file": "^1.0.1", "config-chain": "^1.1.11" }, @@ -925,33 +1224,33 @@ } }, "node_modules/@release-it/conventional-changelog": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@release-it/conventional-changelog/-/conventional-changelog-5.1.1.tgz", - "integrity": "sha512-QtbDBe36dQfzexAfDYrbLPvd5Cb5bMWmLcjcGhCOWBss7fe1/gCjoxDULVz+7N7G5Nu2UMeBwHcUp/w8RDh5VQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@release-it/conventional-changelog/-/conventional-changelog-7.0.2.tgz", + "integrity": "sha512-rsUKWNnU39xivgC2IanjRkEOPsTu2X2jgJGpNHF+mndpOUr1WAROmIaix1o3ne2zseT+GLyZII2NC8FgYaM7xA==", "dev": true, "dependencies": { "concat-stream": "^2.0.0", - "conventional-changelog": "^3.1.25", - "conventional-recommended-bump": "^6.1.0", - "semver": "7.3.8" + "conventional-changelog": "^5.1.0", + "conventional-recommended-bump": "^8.0.0", + "semver": "^7.5.4" }, "engines": { - "node": ">=14" + "node": ">=16" }, "peerDependencies": { - "release-it": "^15.4.1" + "release-it": "^16.0.0" } }, "node_modules/@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", "dev": true }, "node_modules/@sindresorhus/is": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", - "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", "dev": true, "engines": { "node": ">=14.16" @@ -972,74 +1271,78 @@ "node": ">=14.16" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true }, "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz", + "integrity": "sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw==", "dev": true }, "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", "dev": true }, "node_modules/@types/mdast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz", - "integrity": "sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz", + "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==", "dev": true, "dependencies": { "@types/unist": "*" } }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", "dev": true }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "node_modules/@types/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", "dev": true }, "node_modules/@types/unist": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", - "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", + "dev": true + }, + "node_modules/@types/yoga-layout": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz", + "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==", "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.47.1.tgz", - "integrity": "sha512-9Vb+KIv29r6GPu4EboWOnQM7T+UjpjXvjCPhNORlgm40a9Ia9bvaPJswvtae1gip2QEeVeGh6YquqAzEgoRAlw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.47.1", - "@typescript-eslint/types": "5.47.1", - "@typescript-eslint/typescript-estree": "5.47.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -1047,52 +1350,53 @@ } } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.47.1.tgz", - "integrity": "sha512-9hsFDsgUwrdOoW1D97Ewog7DYSHaq4WKuNs0LHF9RiCmqB0Z+XRR4Pf7u7u9z/8CciHuJ6yxNws1XznI3ddjEw==", + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.47.1", - "@typescript-eslint/visitor-keys": "5.47.1" + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.47.1.tgz", - "integrity": "sha512-CmALY9YWXEpwuu6377ybJBZdtSAnzXLSQcxLSqSQSbC7VfpMu/HLVdrnVJj7ycI138EHqocW02LPJErE35cE9A==", + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.1.tgz", - "integrity": "sha512-4+ZhFSuISAvRi2xUszEj0xXbNTHceV9GbH9S8oAD2a/F9SW57aJNQVOCxG8GPfSWH/X4eOPdMEU2jYVuWKEpWA==", + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.47.1", - "@typescript-eslint/visitor-keys": "5.47.1", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -1104,38 +1408,55 @@ } } }, - "node_modules/@typescript-eslint/utils": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.39.0.tgz", - "integrity": "sha512-+DnY5jkpOpgj+EBtYPyHRjXampJfC0yUZZzfzLuUWVZvCuKqSdJVC8UhdWipIw7VKNTfwfAPiOWzYkAwuIhiAg==", + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.39.0", - "@typescript-eslint/types": "5.39.0", - "@typescript-eslint/typescript-estree": "5.39.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.39.0.tgz", - "integrity": "sha512-/I13vAqmG3dyqMVSZPjsbuNQlYS082Y7OMkwhCfLXYsmlI0ca4nkL7wJ/4gjX70LD4P8Hnw1JywUVVAwepURBw==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.60.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.60.1.tgz", + "integrity": "sha512-Dn/LnN7fEoRD+KspEOV0xDMynEmR3iSHdgNsarlXNLGGtcUok8L4N71dxUgt3YvlO8si7E+BJ5Fe3wb5yUw7DQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.39.0", - "@typescript-eslint/visitor-keys": "5.39.0" + "@typescript-eslint/types": "5.60.1", + "@typescript-eslint/visitor-keys": "5.60.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1145,10 +1466,10 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.39.0.tgz", - "integrity": "sha512-gQMZrnfEBFXK38hYqt8Lkwt8f4U6yq+2H5VDSgP/qiTzC8Nw8JO3OuSUOQ2qW37S/dlwdkHDntkZM6SQhKyPhw==", + "node_modules/@typescript-eslint/types": { + "version": "5.60.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.60.1.tgz", + "integrity": "sha512-zDcDx5fccU8BA0IDZc71bAtYIcG9PowaOwaD8rjYbqwK7dpe/UMQl3inJ4UtUK42nOCT41jTSCwg76E62JpMcg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1158,14 +1479,14 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.39.0.tgz", - "integrity": "sha512-qLFQP0f398sdnogJoLtd43pUgB18Q50QSA+BTE5h3sUxySzbWDpTSdgt4UyxNSozY/oDK2ta6HVAzvGgq8JYnA==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.60.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.1.tgz", + "integrity": "sha512-hkX70J9+2M2ZT6fhti5Q2FoU9zb+GeZK2SLP1WZlvUDqdMbEKhexZODD1WodNRyO8eS+4nScvT0dts8IdaBzfw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.39.0", - "@typescript-eslint/visitor-keys": "5.39.0", + "@typescript-eslint/types": "5.60.1", + "@typescript-eslint/visitor-keys": "5.60.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1185,14 +1506,20 @@ } } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.39.0.tgz", - "integrity": "sha512-yyE3RPwOG+XJBLrhvsxAidUgybJVQ/hG8BhiJo0k8JSAYfk/CshVcxf0HwP4Jt7WZZ6vLmxdo1p6EyN3tzFTkg==", + "node_modules/@typescript-eslint/utils": { + "version": "5.60.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.60.1.tgz", + "integrity": "sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.39.0", - "eslint-visitor-keys": "^3.3.0" + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.60.1", + "@typescript-eslint/types": "5.60.1", + "@typescript-eslint/typescript-estree": "5.60.1", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1200,24 +1527,40 @@ "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-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "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": "^12.22.0 || ^14.17.0 || >=16.0.0" + "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/visitor-keys": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.1.tgz", - "integrity": "sha512-rF3pmut2JCCjh6BLRhNKdYjULMb1brvoaiWDlHfLNVgmnZ0sBVJrs3SyaKE1XoDDnJuAx/hDQryHYmPUuNq0ig==", + "version": "5.60.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.1.tgz", + "integrity": "sha512-xEYIxKcultP6E/RMKqube11pGjXH1DCo60mQoWhVYyKfLkwbIVVjYxmOenNMxILx0TjCujPTjjnTIVzm09TXIw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.47.1", + "@typescript-eslint/types": "5.60.1", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -1228,19 +1571,15 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } + "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==" }, "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "bin": { "acorn": "bin/acorn" }, @@ -1256,15 +1595,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/add-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", @@ -1272,15 +1602,15 @@ "dev": true }, "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==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, "dependencies": { - "debug": "4" + "debug": "^4.3.4" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 14" } }, "node_modules/aggregate-error": { @@ -1312,9 +1642,9 @@ } }, "node_modules/all-contributors-cli": { - "version": "6.24.0", - "resolved": "https://registry.npmjs.org/all-contributors-cli/-/all-contributors-cli-6.24.0.tgz", - "integrity": "sha512-7oSKr2PnqxsOotuSwciltcFTS1eVRdjR0cn99hbElfff7gRQBShVhsf/XBprY41sLcgqTk0l0MKgKv6QNgZdMg==", + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/all-contributors-cli/-/all-contributors-cli-6.26.1.tgz", + "integrity": "sha512-Ymgo3FJACRBEd1eE653FD1J/+uD0kqpUNYfr9zNC1Qby0LgbhDBzB3EF6uvkAbYpycStkk41J+0oo37Lc02yEw==", "dev": true, "dependencies": { "@babel/runtime": "^7.7.6", @@ -1333,6 +1663,25 @@ }, "engines": { "node": ">=4" + }, + "optionalDependencies": { + "prettier": "^2" + } + }, + "node_modules/all-contributors-cli/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/ansi-align": { @@ -1403,9 +1752,9 @@ } }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "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", @@ -1430,7 +1779,7 @@ "node_modules/archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", "dev": true }, "node_modules/argparse": { @@ -1442,6 +1791,19 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-ify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", @@ -1458,14 +1820,14 @@ } }, "node_modules/array.prototype.map": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.5.tgz", - "integrity": "sha512-gfaKntvwqYIuC7mLLyv2wzZIJqrRhn5PZ9EfFejSx6a78sV7iDsGpG9P+3oUPtm1Rerqm6nrKS4FYuTIvWfo3g==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.6.tgz", + "integrity": "sha512-nK1psgF2cXqP3wSyCSq0Hc7zwNq3sfljQqaG27r/7a7ooNUnn5nGq6yYWyks9jMO5EoFQ0ax80hSg6oXSRNXaw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-array-method-boxes-properly": "^1.0.0", "is-string": "^1.0.7" }, @@ -1476,19 +1838,31 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, "dependencies": { "safer-buffer": "~2.1.0" @@ -1497,7 +1871,7 @@ "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "dev": true, "engines": { "node": ">=0.8" @@ -1524,16 +1898,19 @@ "node": ">=4" } }, - "node_modules/ast-types/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, "node_modules/async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", "dev": true }, "node_modules/async-retry": { @@ -1548,25 +1925,49 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "node_modules/auto-bind": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", + "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", "dev": true, "engines": { - "node": "*" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "node_modules/balanced-match": { + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, + "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==" @@ -1591,10 +1992,19 @@ } ] }, + "node_modules/basic-ftp": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz", + "integrity": "sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, "dependencies": { "tweetnacl": "^0.14.3" @@ -1606,6 +2016,15 @@ "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", "dev": true }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -1633,19 +2052,19 @@ "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==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", + "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", "dev": true, "dependencies": { "ansi-align": "^3.0.1", - "camelcase": "^7.0.0", - "chalk": "^5.0.1", + "camelcase": "^7.0.1", + "chalk": "^5.2.0", "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" + "wrap-ansi": "^8.1.0" }, "engines": { "node": ">=14.16" @@ -1666,22 +2085,10 @@ "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.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.0.tgz", - "integrity": "sha512-JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ==", + "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" @@ -1691,9 +2098,9 @@ } }, "node_modules/boxen/node_modules/chalk": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.1.2.tgz", - "integrity": "sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==", + "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" @@ -1726,9 +2133,9 @@ } }, "node_modules/boxen/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "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" @@ -1752,21 +2159,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/boxen/node_modules/wrap-ansi": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz", - "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==", + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", "dev": true, "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "big-integer": "^1.6.44" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">= 5.10.0" } }, "node_modules/brace-expansion": { @@ -1797,26 +2199,35 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", + "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", "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.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" + "caniuse-lite": "^1.0.30001580", + "electron-to-chromium": "^1.4.648", + "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" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" } }, "node_modules/buffer": { @@ -1861,13 +2272,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cacheable-lookup": { @@ -1880,17 +2297,17 @@ } }, "node_modules/cacheable-request": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.2.tgz", - "integrity": "sha512-KxjQZM3UIo7/J6W4sLpwFvu1GB3Whv8NtZ8ZrUL284eiQjiXeeqWTdhixNrp/NLZ/JNuFBo6BD4ZaO8ZJ5BN8Q==", + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", "dev": true, "dependencies": { - "@types/http-cache-semantics": "^4.0.1", + "@types/http-cache-semantics": "^4.0.2", "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.0", - "keyv": "^4.5.0", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", "mimic-response": "^4.0.0", - "normalize-url": "^7.2.0", + "normalize-url": "^8.0.0", "responselike": "^3.0.0" }, "engines": { @@ -1942,27 +2359,10 @@ "node": ">=6" } }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/caniuse-lite": { - "version": "1.0.30001441", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz", - "integrity": "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==", + "version": "1.0.30001585", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001585.tgz", + "integrity": "sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==", "dev": true, "funding": [ { @@ -1972,37 +2372,41 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", "dev": true }, "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "type-detect": "^4.0.8" }, "engines": { "node": ">=4" } }, "node_modules/chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2051,10 +2455,13 @@ "dev": true }, "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, "engines": { "node": "*" } @@ -2086,11 +2493,29 @@ "fsevents": "~2.3.2" } }, + "node_modules/chokidar/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/ci-info": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz", - "integrity": "sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], "engines": { "node": ">=8" } @@ -2098,7 +2523,7 @@ "node_modules/clean-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", - "integrity": "sha1-jffHquUf02h06PjQW5GAvBGj/tc=", + "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", "dev": true, "dependencies": { "escape-string-regexp": "^1.0.5" @@ -2110,7 +2535,7 @@ "node_modules/clean-regexp/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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -2150,9 +2575,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz", + "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==", "dev": true, "engines": { "node": ">=6" @@ -2161,6 +2586,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", @@ -2181,6 +2622,20 @@ "wrap-ansi": "^6.2.0" } }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", @@ -2190,6 +2645,18 @@ "node": ">=0.8" } }, + "node_modules/code-excerpt": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-3.0.0.tgz", + "integrity": "sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==", + "dev": true, + "dependencies": { + "convert-to-spaces": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2206,12 +2673,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -2225,18 +2686,18 @@ } }, "node_modules/commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, "engines": { - "node": "^12.20.0 || >=14" + "node": ">=14" } }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, "node_modules/compare-func": { @@ -2252,7 +2713,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/concat-stream": { "version": "2.0.0", @@ -2320,395 +2781,356 @@ } }, "node_modules/conventional-changelog": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz", - "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-5.1.0.tgz", + "integrity": "sha512-aWyE/P39wGYRPllcCEZDxTVEmhyLzTc9XA6z6rVfkuCD2UBnhV/sgSOKbQrEG5z9mEZJjnopjgQooTKxEg8mAg==", "dev": true, "dependencies": { - "conventional-changelog-angular": "^5.0.12", - "conventional-changelog-atom": "^2.0.8", - "conventional-changelog-codemirror": "^2.0.8", - "conventional-changelog-conventionalcommits": "^4.5.0", - "conventional-changelog-core": "^4.2.1", - "conventional-changelog-ember": "^2.0.9", - "conventional-changelog-eslint": "^3.0.9", - "conventional-changelog-express": "^2.0.6", - "conventional-changelog-jquery": "^3.0.11", - "conventional-changelog-jshint": "^2.0.9", - "conventional-changelog-preset-loader": "^2.3.4" + "conventional-changelog-angular": "^7.0.0", + "conventional-changelog-atom": "^4.0.0", + "conventional-changelog-codemirror": "^4.0.0", + "conventional-changelog-conventionalcommits": "^7.0.2", + "conventional-changelog-core": "^7.0.0", + "conventional-changelog-ember": "^4.0.0", + "conventional-changelog-eslint": "^5.0.0", + "conventional-changelog-express": "^4.0.0", + "conventional-changelog-jquery": "^5.0.0", + "conventional-changelog-jshint": "^4.0.0", + "conventional-changelog-preset-loader": "^4.1.0" }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", "dev": true, "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "compare-func": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/conventional-changelog-atom": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", - "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-4.0.0.tgz", + "integrity": "sha512-q2YtiN7rnT1TGwPTwjjBSIPIzDJCRE+XAUahWxnh+buKK99Kks4WLMHoexw38GXx9OUxAsrp44f9qXe5VEMYhw==", "dev": true, - "dependencies": { - "q": "^1.5.1" - }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/conventional-changelog-codemirror": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", - "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-4.0.0.tgz", + "integrity": "sha512-hQSojc/5imn1GJK3A75m9hEZZhc3urojA5gMpnar4JHmgLnuM3CUIARPpEk86glEKr3c54Po3WV/vCaO/U8g3Q==", "dev": true, - "dependencies": { - "q": "^1.5.1" - }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/conventional-changelog-conventionalcommits": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", - "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz", + "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==", "dev": true, "dependencies": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" + "compare-func": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/conventional-changelog-core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", - "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-7.0.0.tgz", + "integrity": "sha512-UYgaB1F/COt7VFjlYKVE/9tTzfU3VUq47r6iWf6lM5T7TlOxr0thI63ojQueRLIpVbrtHK4Ffw+yQGduw2Bhdg==", "dev": true, "dependencies": { + "@hutson/parse-repository-url": "^5.0.0", "add-stream": "^1.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-parser": "^3.2.0", - "dateformat": "^3.0.0", - "get-pkg-repo": "^4.0.0", - "git-raw-commits": "^2.0.8", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^4.1.1", - "lodash": "^4.17.15", - "normalize-package-data": "^3.0.0", - "q": "^1.5.1", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^4.0.0" + "conventional-changelog-writer": "^7.0.0", + "conventional-commits-parser": "^5.0.0", + "git-raw-commits": "^4.0.0", + "git-semver-tags": "^7.0.0", + "hosted-git-info": "^7.0.0", + "normalize-package-data": "^6.0.0", + "read-pkg": "^8.0.0", + "read-pkg-up": "^10.0.0" }, "engines": { - "node": ">=10" + "node": ">=16" } }, - "node_modules/conventional-changelog-core/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "node_modules/conventional-changelog-core/node_modules/json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, "engines": { - "node": ">=4" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/conventional-changelog-core/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "node_modules/conventional-changelog-core/node_modules/lines-and-columns": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/conventional-changelog-core/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "node_modules/conventional-changelog-core/node_modules/parse-json": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.0.tgz", + "integrity": "sha512-ihtdrgbqdONYD156Ap6qTcaGcGdkdAxodO1wLqQ/j7HP1u2sFYppINiq4jyC8F+Nm+4fVufylCV00QmkTHkSUg==", "dev": true, "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" + "node": ">=16" }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-changelog-core/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "node_modules/conventional-changelog-core/node_modules/read-pkg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", + "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==", "dev": true, "dependencies": { - "p-try": "^1.0.0" + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^6.0.0", + "parse-json": "^7.0.0", + "type-fest": "^4.2.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" + "node": ">=16" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/conventional-changelog-core/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "node_modules/conventional-changelog-core/node_modules/read-pkg/node_modules/type-fest": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.4.0.tgz", + "integrity": "sha512-HT3RRs7sTfY22KuPQJkD/XjbTbxgP2Je5HPt6H6JEGvcjHd5Lqru75EbrP3tb4FYjNJ+DjLp+MNQTFQU0mhXNw==", "dev": true, "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "node": ">=16" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/conventional-changelog-ember": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", - "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-4.0.0.tgz", + "integrity": "sha512-D0IMhwcJUg1Y8FSry6XAplEJcljkHVlvAZddhhsdbL1rbsqRsMfGx/PIkPYq0ru5aDgn+OxhQ5N5yR7P9mfsvA==", "dev": true, - "dependencies": { - "q": "^1.5.1" - }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/conventional-changelog-eslint": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", - "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-5.0.0.tgz", + "integrity": "sha512-6JtLWqAQIeJLn/OzUlYmzd9fKeNSWmQVim9kql+v4GrZwLx807kAJl3IJVc3jTYfVKWLxhC3BGUxYiuVEcVjgA==", "dev": true, - "dependencies": { - "q": "^1.5.1" - }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/conventional-changelog-express": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", - "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-4.0.0.tgz", + "integrity": "sha512-yWyy5c7raP9v7aTvPAWzqrztACNO9+FEI1FSYh7UP7YT1AkWgv5UspUeB5v3Ibv4/o60zj2o9GF2tqKQ99lIsw==", "dev": true, - "dependencies": { - "q": "^1.5.1" - }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/conventional-changelog-jquery": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", - "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-5.0.0.tgz", + "integrity": "sha512-slLjlXLRNa/icMI3+uGLQbtrgEny3RgITeCxevJB+p05ExiTgHACP5p3XiMKzjBn80n+Rzr83XMYfRInEtCPPw==", "dev": true, - "dependencies": { - "q": "^1.5.1" - }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/conventional-changelog-jshint": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", - "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-4.0.0.tgz", + "integrity": "sha512-LyXq1bbl0yG0Ai1SbLxIk8ZxUOe3AjnlwE6sVRQmMgetBk+4gY9EO3d00zlEt8Y8gwsITytDnPORl8al7InTjg==", "dev": true, "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "compare-func": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/conventional-changelog-preset-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-4.1.0.tgz", + "integrity": "sha512-HozQjJicZTuRhCRTq4rZbefaiCzRM2pr6u2NL3XhrmQm4RMnDXfESU6JKu/pnKwx5xtdkYfNCsbhN5exhiKGJA==", "dev": true, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz", + "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==", "dev": true, "dependencies": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", + "conventional-commits-filter": "^4.0.0", "handlebars": "^4.7.7", "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" + "meow": "^12.0.1", + "semver": "^7.5.2", + "split2": "^4.0.0" }, "bin": { - "conventional-changelog-writer": "cli.js" + "conventional-changelog-writer": "cli.mjs" }, "engines": { - "node": ">=10" + "node": ">=16" } }, - "node_modules/conventional-changelog-writer/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/conventional-commits-filter": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz", + "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=16" } }, - "node_modules/conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "node_modules/conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", "dev": true, "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" + "is-text-path": "^2.0.0", + "JSONStream": "^1.3.5", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.mjs" }, "engines": { - "node": ">=10" + "node": ">=16" } }, - "node_modules/conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "node_modules/conventional-recommended-bump": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-8.0.0.tgz", + "integrity": "sha512-yvGN+VMy00WIe/pJufpmN+I4B2cM/WFK+CFCmDcjyVLyQR6J1KT2iecmA4NQ58gQAiNkvStEjcZp/W9h1JDM1A==", "dev": true, "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^4.0.0", + "conventional-commits-filter": "^4.0.0", + "conventional-commits-parser": "^5.0.0", + "git-raw-commits": "^4.0.0", + "git-semver-tags": "^6.0.0", + "meow": "^12.0.1" }, "bin": { - "conventional-commits-parser": "cli.js" + "conventional-recommended-bump": "cli.mjs" }, "engines": { - "node": ">=10" + "node": ">=16" } }, - "node_modules/conventional-recommended-bump": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", - "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", + "node_modules/conventional-recommended-bump/node_modules/git-semver-tags": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-6.0.0.tgz", + "integrity": "sha512-v5BL6psuUy+Ftuo99141XlOIDoJtKw5+YyDANS7fknSP0iT4cVIanc3toDsH4K+VpIWc19l2/xkwQmXMfloeUA==", "dev": true, "dependencies": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^2.3.4", - "conventional-commits-filter": "^2.0.7", - "conventional-commits-parser": "^3.2.0", - "git-raw-commits": "^2.0.8", - "git-semver-tags": "^4.1.1", - "meow": "^8.0.0", - "q": "^1.5.1" + "meow": "^12.0.1", + "semver": "^7.5.2" }, "bin": { - "conventional-recommended-bump": "cli.js" + "git-semver-tags": "cli.mjs" }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/convert-to-spaces": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz", + "integrity": "sha512-cj09EBuObp9gZNQCzc7hByQyrs6jVGE+o9kSJmeUoj+GiPiJvi5LYqEH/Hmme4+MTLHM+Ejtq+FChpjjEnsPdQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/core-js-compat": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.1.tgz", + "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.1" + "browserslist": "^4.22.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true }, "node_modules/cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, "dependencies": { - "import-fresh": "^3.2.1", + "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", + "parse-json": "^5.2.0", "path-type": "^4.0.0" }, "engines": { "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/cosmiconfig/node_modules/argparse": { @@ -2729,24 +3151,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/cosmiconfig/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/coveralls": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.1.tgz", @@ -2807,18 +3211,21 @@ } }, "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", + "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, "dependencies": { "assert-plus": "^1.0.0" @@ -2828,21 +3235,12 @@ } }, "node_modules/data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.1.tgz", + "integrity": "sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==", "dev": true, "engines": { - "node": "*" + "node": ">= 14" } }, "node_modules/debug": { @@ -2864,32 +3262,7 @@ "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2923,9 +3296,9 @@ } }, "node_modules/deep-eql": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.2.tgz", - "integrity": "sha512-gT18+YW4CcW/DBNTwAmqTtkJh7f9qqScu2qFVlx7kCoeY9tlBu9cUcr7+I+Z/noG8INehS3xQgLpTtd/QUTn4w==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "dependencies": { "type-detect": "^4.0.0" @@ -2944,29 +3317,66 @@ } }, "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + "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==" }, "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "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/default-require-extensions": { + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-require-extensions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", "dev": true, "dependencies": { "strip-bom": "^4.0.0" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/defaults": { @@ -2990,19 +3400,36 @@ "node": ">=10" } }, + "node_modules/define-data-property": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", + "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", "dev": true, "dependencies": { "has-property-descriptors": "^1.0.0", @@ -3016,38 +3443,28 @@ } }, "node_modules/degenerator": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz", - "integrity": "sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", "dev": true, "dependencies": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.8" + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, "engines": { "node": ">=0.4.0" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", @@ -3070,9 +3487,9 @@ } }, "node_modules/diff-sequences": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.2.0.tgz", - "integrity": "sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -3122,7 +3539,7 @@ "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, "dependencies": { "jsbn": "~0.1.0", @@ -3130,9 +3547,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.759", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.759.tgz", - "integrity": "sha512-nM76xH0t2FBH5iMEZDVc3S/qbdKjGH7TThezxC8k1Q7w7WHvIAyJh8lAe2UamGfdRqBTjHfPDn82LJ0ksCiB9g==", + "version": "1.4.665", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.665.tgz", + "integrity": "sha512-UpyCWObBoD+nSZgOC2ToaIdZB0r9GhqT2WahPKiSki6ckkSuKhQNso8V2PrFcHBMleI/eqbKgVQgVC4Wni4ilw==", "dev": true }, "node_modules/emoji-regex": { @@ -3142,9 +3559,9 @@ "dev": true }, "node_modules/entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "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" @@ -3163,35 +3580,50 @@ } }, "node_modules/es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", "dev": true, "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -3207,24 +3639,39 @@ "dev": true }, "node_modules/es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", "is-map": "^2.0.2", "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -3281,131 +3728,68 @@ } }, "node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "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": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" + "estraverse": "^5.2.0", + "esutils": "^2.0.2" }, "bin": { "escodegen": "bin/escodegen.js", "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": ">=4.0" + "node": ">=6.0" }, "optionalDependencies": { "source-map": "~0.6.1" } }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/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, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/eslint": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz", - "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==", - "dependencies": { - "@eslint/eslintrc": "^1.4.1", - "@humanwhocodes/config-array": "^0.11.8", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "@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.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.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", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -3418,16 +3802,28 @@ "url": "https://opencollective.com/eslint" } }, + "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-doc-generator": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/eslint-doc-generator/-/eslint-doc-generator-1.4.1.tgz", - "integrity": "sha512-OXYdpT3atpY+sKZVwdYs7CYjj51Q0Vm+A4EKc4h6zsgjicq+7S5HOhf8Ps3apWfWNaYzV0RsdKIBhi3ZruL14w==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/eslint-doc-generator/-/eslint-doc-generator-1.6.2.tgz", + "integrity": "sha512-wqaRDZgeaQQK/7IypBUgkV/q8BV9KnZed7K1YWG+kKVRQKX4LWgGoWZlBYhyO3Ye1uV8exuWIYIlNfbZVR10fw==", "dev": true, "dependencies": { "@typescript-eslint/utils": "^5.38.1", "ajv": "^8.11.2", "boolean": "^3.2.0", - "commander": "^9.4.0", + "commander": "^10.0.0", "cosmiconfig": "^8.0.0", "deepmerge": "^4.2.2", "dot-prop": "^7.2.0", @@ -3448,9 +3844,9 @@ } }, "node_modules/eslint-doc-generator/node_modules/ajv": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", - "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -3496,18 +3892,6 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "node_modules/eslint-doc-generator/node_modules/type-fest": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.1.0.tgz", - "integrity": "sha512-StmrZmK3eD9mDF9Vt7UhqthrDSk66O9iYl5t5a0TSoVkHjl0XZx/xuc/BRz4urAXXGHOY5OLsE0RdJFIApSFmw==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint-plugin-es": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", @@ -3573,16 +3957,16 @@ "node_modules/eslint-plugin-eslint-comments/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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" } }, "node_modules/eslint-plugin-eslint-plugin": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-5.0.7.tgz", - "integrity": "sha512-hcz4Bze1ECwv3Q/Bi/ZMZZNiuvI2YclNuxjnczkblQ0skrlPhdO83rSM7felf5n+7ZJOZi4GS8y8gNiRtvI0hA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-5.3.0.tgz", + "integrity": "sha512-mRMH3WwewpZjbdOFbE0Vr0EJ4Q6oIXLRGkFQyRM+HWhpNIhYWy/3solQ+blVS8noSkD2/jq7iW3Ke3N0viUJ/w==", "dev": true, "dependencies": { "eslint-utils": "^3.0.0", @@ -3595,19 +3979,10 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-plugin-eslint-plugin/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/eslint-plugin-markdown": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.0.tgz", - "integrity": "sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.1.tgz", + "integrity": "sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==", "dev": true, "dependencies": { "mdast-util-from-markdown": "^0.8.5" @@ -3620,13 +3995,13 @@ } }, "node_modules/eslint-plugin-mocha": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.1.0.tgz", - "integrity": "sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.2.0.tgz", + "integrity": "sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==", "dev": true, "dependencies": { "eslint-utils": "^3.0.0", - "rambda": "^7.1.0" + "rambda": "^7.4.0" }, "engines": { "node": ">=14.0.0" @@ -3680,70 +4055,268 @@ } }, "node_modules/eslint-plugin-node/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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/eslint-plugin-unicorn": { - "version": "45.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-45.0.2.tgz", - "integrity": "sha512-Y0WUDXRyGDMcKLiwgL3zSMpHrXI00xmdyixEGIg90gHnj0PcHY4moNv3Ppje/kDivdAy5vUeUr7z211ImPv2gw==", + "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": { - "@babel/helper-validator-identifier": "^7.19.1", - "@eslint-community/eslint-utils": "^4.1.2", - "ci-info": "^3.6.1", - "clean-regexp": "^1.0.0", - "esquery": "^1.4.0", - "indent-string": "^4.0.0", - "is-builtin-module": "^3.2.0", - "jsesc": "^3.0.2", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "read-pkg-up": "^7.0.1", - "regexp-tree": "^0.1.24", - "regjsparser": "^0.9.1", - "safe-regex": "^2.1.1", - "semver": "^7.3.8", - "strip-indent": "^3.0.0" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" }, "engines": { - "node": ">=14.18" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + "url": "https://opencollective.com/eslint-plugin-prettier" }, "peerDependencies": { - "eslint": ">=8.28.0" + "@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-plugin-unicorn/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "node_modules/eslint-plugin-qunit": { + "resolved": "", + "link": true + }, + "node_modules/eslint-plugin-unicorn": { + "version": "51.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-51.0.1.tgz", + "integrity": "sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "@eslint-community/eslint-utils": "^4.4.0", + "@eslint/eslintrc": "^2.1.4", + "ci-info": "^4.0.0", + "clean-regexp": "^1.0.0", + "core-js-compat": "^3.34.0", + "esquery": "^1.5.0", + "indent-string": "^4.0.0", + "is-builtin-module": "^3.2.1", + "jsesc": "^3.0.2", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.27", + "regjsparser": "^0.10.0", + "semver": "^7.5.4", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + }, + "peerDependencies": { + "eslint": ">=8.56.0" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/ci-info": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz", + "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-plugin-unicorn/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/eslint-plugin-unicorn/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/eslint-plugin-unicorn/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/eslint-plugin-unicorn/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { - "jsesc": "bin/jsesc" + "semver": "bin/semver" + } + }, + "node_modules/eslint-plugin-unicorn/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/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==", + "node_modules/eslint-plugin-unicorn/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/eslint-plugin-unicorn/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-remote-tester": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-remote-tester/-/eslint-remote-tester-3.0.1.tgz", + "integrity": "sha512-/jifRW0gJ5NmrWGD8mn2imvafO0fS6KBKLzv8ZIdI1uMHZ2EriYN7Fw4cyOR7rfbt6Ve2tUrluSvVptW1PxEvg==", "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "chalk": "^4.1.2", + "ink": "^3.2.0", + "JSONStream": "^1.3.5", + "object-hash": "^3.0.0", + "react": "^17.0.2", + "simple-git": "^3.20.0" + }, + "bin": { + "eslint-remote-tester": "dist/index.js" + }, + "engines": { + "node": ">=12.11" + }, + "peerDependencies": { + "eslint": ">=7", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "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==", "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-utils": { @@ -3763,7 +4336,7 @@ "eslint": ">=5" } }, - "node_modules/eslint-visitor-keys": { + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", @@ -3771,48 +4344,34 @@ "node": ">=10" } }, + "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==", + "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==" }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "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==", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "type-fest": "^0.20.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/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==", - "dependencies": { - "is-glob": "^4.0.3" + "node": ">=8" }, - "engines": { - "node": ">=10.13.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/js-yaml": { @@ -3826,14 +4385,25 @@ "js-yaml": "bin/js-yaml.js" } }, + "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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3842,14 +4412,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -3864,9 +4426,9 @@ } }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dependencies": { "estraverse": "^5.1.0" }, @@ -3874,14 +4436,6 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -3893,19 +4447,10 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "engines": { "node": ">=4.0" } @@ -3919,14 +4464,14 @@ } }, "node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -3935,7 +4480,7 @@ "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -3953,32 +4498,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/execa/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/execa/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/execa/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/extend": { "version": "3.0.2", @@ -4003,7 +4527,7 @@ "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "dev": true, "engines": [ "node >=0.6.0" @@ -4014,10 +4538,16 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "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.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -4030,6 +4560,18 @@ "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", @@ -4038,12 +4580,12 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dependencies": { "reusify": "^1.0.4" } @@ -4089,7 +4631,7 @@ "node_modules/figures/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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -4106,15 +4648,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/file-uri-to-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -4128,9 +4661,9 @@ } }, "node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "dependencies": { "commondir": "^1.0.1", @@ -4181,27 +4714,39 @@ } }, "node_modules/flatted": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==" + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + }, + "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/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" + "signal-exit": "^4.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true, "engines": { "node": "*" @@ -4222,9 +4767,9 @@ } }, "node_modules/form-data-encoder": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.3.tgz", - "integrity": "sha512-KqU0nnPMgIJcCOFTNJFEA8epcseEaoox4XZffTgy8jlI6pL/5EFyR54NRG7CnCJN0biY7q52DO3MH6/sJ/TKlQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", "dev": true, "engines": { "node": ">= 14.17" @@ -4279,7 +4824,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.2", @@ -4295,43 +4840,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==", - "dev": true, - "dependencies": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ftp/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "node_modules/ftp/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ftp/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -4339,15 +4847,15 @@ "dev": true }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "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.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -4384,22 +4892,23 @@ } }, "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, "engines": { "node": "*" } }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" }, "funding": { @@ -4415,131 +4924,6 @@ "node": ">=8.0.0" } }, - "node_modules/get-pkg-repo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", - "dev": true, - "dependencies": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "get-pkg-repo": "src/cli.js" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-pkg-repo/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/get-pkg-repo/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/get-pkg-repo/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/get-pkg-repo/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/get-pkg-repo/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/get-pkg-repo/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/get-pkg-repo/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/get-pkg-repo/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/get-pkg-repo/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/get-stdin": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", @@ -4581,95 +4965,60 @@ } }, "node_modules/get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.2.tgz", + "integrity": "sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==", "dev": true, "dependencies": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.0", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, "dependencies": { "assert-plus": "^1.0.0" } }, "node_modules/git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", + "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", "dev": true, "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "dargs": "^8.0.0", + "meow": "^12.0.1", + "split2": "^4.0.0" }, "bin": { - "git-raw-commits": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", - "dev": true, - "dependencies": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" + "git-raw-commits": "cli.mjs" }, "engines": { - "node": ">=4" - } - }, - "node_modules/git-remote-origin-url/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">=16" } }, "node_modules/git-semver-tags": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", - "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-7.0.1.tgz", + "integrity": "sha512-NY0ZHjJzyyNXHTDZmj+GG7PyuAKtMsyWSwh07CR2hOZFa+/yoTsXci/nF2obzL8UDhakFNkD9gNdt/Ed+cxh2Q==", "dev": true, "dependencies": { - "meow": "^8.0.0", - "semver": "^6.0.0" + "meow": "^12.0.1", + "semver": "^7.5.2" }, "bin": { - "git-semver-tags": "cli.js" + "git-semver-tags": "cli.mjs" }, "engines": { - "node": ">=10" - } - }, - "node_modules/git-semver-tags/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node": ">=16" } }, "node_modules/git-up": { @@ -4691,50 +5040,61 @@ "git-up": "^7.0.0" } }, - "node_modules/gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", - "dev": true, - "dependencies": { - "ini": "^1.3.2" - } - }, - "node_modules/gitconfiglocal/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/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "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==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 6" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/global-dirs": { @@ -4752,27 +5112,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "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": { - "type-fest": "^0.20.2" + "define-properties": "^1.1.3" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/globby": { @@ -4795,16 +5159,28 @@ "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/got": { - "version": "12.5.3", - "resolved": "https://registry.npmjs.org/got/-/got-12.5.3.tgz", - "integrity": "sha512-8wKnb9MGU8IPGRIo+/ukTy9XLJBwDiCpIf5TVzQ9Cpol50eMTpBq2GAuDsuDIz7hTYmZgMgC1e9ydr6kSDWs3w==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", + "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", "dev": true, "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.1", + "cacheable-request": "^10.2.8", "decompress-response": "^6.0.0", "form-data-encoder": "^2.1.2", "get-stream": "^6.0.1", @@ -4814,31 +5190,31 @@ "responselike": "^3.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=16" }, "funding": { "url": "https://github.com/sindresorhus/got?sponsor=1" } }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "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/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" }, "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, "dependencies": { "minimist": "^1.2.5", - "neo-async": "^2.6.0", + "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, @@ -4852,19 +5228,10 @@ "uglify-js": "^3.1.4" } }, - "node_modules/handlebars/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/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "dev": true, "engines": { "node": ">=4" @@ -4884,15 +5251,6 @@ "node": ">=6" } }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -4934,6 +5292,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "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", @@ -5008,10 +5378,25 @@ } }, "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } }, "node_modules/html-escaper": { "version": "2.0.2", @@ -5020,45 +5405,28 @@ "dev": true }, "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", "dev": true, "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "dev": true, "dependencies": { "assert-plus": "^1.0.0", @@ -5083,38 +5451,26 @@ "node": ">=10.19.0" } }, - "node_modules/http2-wrapper/node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "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==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", "dev": true, "dependencies": { - "agent-base": "6", + "agent-base": "^7.0.2", "debug": "4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true, "engines": { - "node": ">=12.20.0" + "node": ">=14.18.0" } }, "node_modules/iconv-lite": { @@ -5150,9 +5506,9 @@ ] }, "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "engines": { "node": ">= 4" } @@ -5184,7 +5540,7 @@ "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "engines": { "node": ">=0.8.19" } @@ -5201,7 +5557,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -5213,12 +5569,129 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", - "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ink": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ink/-/ink-3.2.0.tgz", + "integrity": "sha512-firNp1q3xxTzoItj/eOOSZQnYSlyrWks5llCTVX37nJ59K3eXbQ8PtzCguqo8YI19EELo5QxaKnJd4VxzhU8tg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "auto-bind": "4.0.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "code-excerpt": "^3.0.0", + "indent-string": "^4.0.0", + "is-ci": "^2.0.0", + "lodash": "^4.17.20", + "patch-console": "^1.0.0", + "react-devtools-core": "^4.19.1", + "react-reconciler": "^0.26.2", + "scheduler": "^0.20.2", + "signal-exit": "^3.0.2", + "slice-ansi": "^3.0.0", + "stack-utils": "^2.0.2", + "string-width": "^4.2.2", + "type-fest": "^0.12.0", + "widest-line": "^3.1.0", + "wrap-ansi": "^6.2.0", + "ws": "^7.5.5", + "yoga-layout-prebuilt": "^1.9.6" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": ">=16.8.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/ink/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/ink/node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ink/node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/ink/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/ink/node_modules/type-fest": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz", + "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ink/node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ink/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" } }, "node_modules/inquirer": { @@ -5246,12 +5719,12 @@ } }, "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" }, @@ -5314,10 +5787,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "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": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, "node_modules/is-bigint": { @@ -5361,9 +5848,9 @@ } }, "node_modules/is-builtin-module": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", - "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, "dependencies": { "builtin-modules": "^3.3.0" @@ -5400,9 +5887,9 @@ } }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -5412,10 +5899,13 @@ } }, "node_modules/is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", + "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" }, @@ -5434,15 +5924,15 @@ } }, "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "dev": true, "bin": { "is-docker": "cli.js" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5451,7 +5941,7 @@ "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "engines": { "node": ">=0.10.0" } @@ -5486,6 +5976,24 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -5588,15 +6096,6 @@ "node": ">=8" } }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -5653,12 +6152,15 @@ } }, "node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "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": { @@ -5692,21 +6194,36 @@ } }, "node_modules/is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", "dev": true, "dependencies": { - "text-extensions": "^1.0.0" + "text-extensions": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, "node_modules/is-unicode-supported": { @@ -5754,6 +6271,21 @@ "node": ">=8" } }, + "node_modules/is-wsl/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-yarn-global": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", @@ -5772,24 +6304,40 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", "dev": true }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "node_modules/issue-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", + "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", "dev": true, + "dependencies": { + "lodash.capitalize": "^4.2.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.uniqby": "^4.7.0" + }, "engines": { - "node": ">=8" + "node": ">=10.13" } }, - "node_modules/istanbul-lib-hook": { + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", @@ -5817,27 +6365,26 @@ } }, "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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/istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", "dev": true, "dependencies": { "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", "p-map": "^3.0.0", "rimraf": "^3.0.0", - "uuid": "^3.3.3" + "uuid": "^8.3.2" }, "engines": { "node": ">=8" @@ -5858,9 +6405,9 @@ } }, "node_modules/istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "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", @@ -5868,22 +6415,13 @@ "source-map": "^0.6.1" }, "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps/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": ">=10" } }, "node_modules/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -5915,35 +6453,48 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jest-diff": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.2.1.tgz", - "integrity": "sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", + "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^29.2.0", - "jest-get-type": "^29.2.0", - "pretty-format": "^29.2.1" + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-get-type": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", - "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/js-sdsl": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", - "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==" - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -5966,19 +6517,19 @@ "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", "dev": true }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { @@ -5988,13 +6539,13 @@ "dev": true }, "node_modules/json-fixer": { - "version": "1.6.10", - "resolved": "https://registry.npmjs.org/json-fixer/-/json-fixer-1.6.10.tgz", - "integrity": "sha512-Q63bfy46LGJHPtjjB/t4+6d427K0RWgOy3bgUHXCl1ztNdMxiLxkHwOxD5U08cPiro4+iC1kBYf+HLlc1J4a6w==", + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/json-fixer/-/json-fixer-1.6.15.tgz", + "integrity": "sha512-TuDuZ5KrgyjoCIppdPXBMqiGfota55+odM+j2cQ5rt/XKyKmqGB3Whz1F8SN8+60yYGy/Nu5lbRZ+rx8kBIvBw==", "dev": true, "dependencies": { - "@babel/runtime": "^7.14.0", - "chalk": "^4.1.1", + "@babel/runtime": "^7.18.9", + "chalk": "^4.1.2", "pegjs": "^0.10.0" }, "engines": { @@ -6027,12 +6578,12 @@ "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, "node_modules/json5": { @@ -6048,9 +6599,9 @@ } }, "node_modules/jsonc-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", - "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", "dev": true }, "node_modules/jsonfile": { @@ -6103,23 +6654,14 @@ } }, "node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", "dev": true, "dependencies": { "json-buffer": "3.0.1" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/latest-version": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", @@ -6138,7 +6680,7 @@ "node_modules/lcov-parse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", - "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=", + "integrity": "sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ==", "dev": true, "bin": { "lcov-parse": "bin/cli.js" @@ -6157,24 +6699,24 @@ } }, "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "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/linkify-it": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", - "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, "dependencies": { - "uc.micro": "^1.0.1" + "uc.micro": "^2.0.0" } }, "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -6186,10 +6728,23 @@ "node": ">=4" } }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/load-json-file/node_modules/pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, "engines": { "node": ">=4" @@ -6198,7 +6753,7 @@ "node_modules/load-json-file/node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { "node": ">=4" @@ -6224,16 +6779,34 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "node_modules/lodash.capitalize": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", + "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", + "dev": true + }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", + "dev": true + }, "node_modules/lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", "dev": true }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", "dev": true }, "node_modules/lodash.merge": { @@ -6241,6 +6814,12 @@ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, + "node_modules/lodash.uniqby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", + "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", + "dev": true + }, "node_modules/log-driver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", @@ -6266,10 +6845,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, "node_modules/loupe": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", - "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", "dev": true, "dependencies": { "get-func-name": "^2.0.0" @@ -6284,12 +6875,6 @@ "tslib": "^2.0.3" } }, - "node_modules/lower-case/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - }, "node_modules/lowercase-keys": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", @@ -6315,9 +6900,9 @@ } }, "node_modules/macos-release": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.1.0.tgz", - "integrity": "sha512-/M/R0gCDgM+Cv1IuBG1XGdfTFnMEG6PZeT+KGWHO/OG+imqmaD9CH5vHBTycEM3+Kc4uG2Il+tFAuUWLqQOeUA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.2.0.tgz", + "integrity": "sha512-fSErXALFNsnowREYZ49XCdOHF8wOPWuFOGQrAhP7x5J/BqQv+B02cNsTykGpDgRVx43EKg++6ANmTaGTtW+hUA==", "dev": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -6342,40 +6927,29 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/markdown-it": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", - "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.0.0.tgz", + "integrity": "sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==", "dev": true, "dependencies": { "argparse": "^2.0.1", - "entities": "~3.0.1", - "linkify-it": "^4.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.0.0" }, "bin": { - "markdown-it": "bin/markdown-it.js" + "markdown-it": "bin/markdown-it.mjs" } }, "node_modules/markdown-it/node_modules/argparse": { @@ -6395,39 +6969,42 @@ } }, "node_modules/markdownlint": { - "version": "0.26.2", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.26.2.tgz", - "integrity": "sha512-2Am42YX2Ex5SQhRq35HxYWDfz1NLEOZWWN25nqd2h3AHRKsGRE+Qg1gt1++exW792eXTrR4jCNHfShfWk9Nz8w==", + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.33.0.tgz", + "integrity": "sha512-4lbtT14A3m0LPX1WS/3d1m7Blg+ZwiLq36WvjQqFGsX3Gik99NV+VXp/PW3n+Q62xyPdbvGOCfjPqjW+/SKMig==", "dev": true, "dependencies": { - "markdown-it": "13.0.1" + "markdown-it": "14.0.0", + "markdownlint-micromark": "0.1.8" }, "engines": { - "node": ">=14" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" } }, "node_modules/markdownlint-cli": { - "version": "0.32.2", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.32.2.tgz", - "integrity": "sha512-xmJT1rGueUgT4yGNwk6D0oqQr90UJ7nMyakXtqjgswAkEhYYqjHew9RY8wDbOmh2R270IWjuKSeZzHDEGPAUkQ==", + "version": "0.39.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.39.0.tgz", + "integrity": "sha512-ZuFN7Xpsbn1Nbp0YYkeLOfXOMOfLQBik2lKRy8pVI/llmKQ2uW7x+8k5OMgF6o7XCsTDSYC/OOmeJ+3qplvnJQ==", "dev": true, "dependencies": { - "commander": "~9.4.0", + "commander": "~11.1.0", "get-stdin": "~9.0.0", - "glob": "~8.0.3", - "ignore": "~5.2.0", + "glob": "~10.3.10", + "ignore": "~5.3.0", "js-yaml": "^4.1.0", - "jsonc-parser": "~3.1.0", - "markdownlint": "~0.26.2", - "markdownlint-rule-helpers": "~0.17.2", - "minimatch": "~5.1.0", - "run-con": "~1.2.11" + "jsonc-parser": "~3.2.1", + "markdownlint": "~0.33.0", + "minimatch": "~9.0.3", + "run-con": "~1.3.2" }, "bin": { "markdownlint": "markdownlint.js" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/markdownlint-cli/node_modules/argparse": { @@ -6445,23 +7022,13 @@ "balanced-match": "^1.0.0" } }, - "node_modules/markdownlint-cli/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "node_modules/markdownlint-cli/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=16" } }, "node_modules/markdownlint-cli/node_modules/js-yaml": { @@ -6477,24 +7044,30 @@ } }, "node_modules/markdownlint-cli/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/markdownlint-rule-helpers": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.17.2.tgz", - "integrity": "sha512-XaeoW2NYSlWxMCZM2B3H7YTG6nlaLfkEZWMBhr4hSPlq9MuY2sy83+Xr89jXOqZMZYjvi5nBCGoFh7hHoPKZmA==", + "node_modules/markdownlint-micromark": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.8.tgz", + "integrity": "sha512-1ouYkMRo9/6gou9gObuMDnvZM8jC/ly3QCFQyoSPCS2XV1ZClU0xpKbL1Ar3bWWRT1RnBZkWUEiNKrI2CwiBQA==", "dev": true, "engines": { - "node": ">=12" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" } }, "node_modules/mdast-util-from-markdown": { @@ -6525,79 +7098,27 @@ } }, "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "dev": true }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", "dev": true, "engines": { "node": ">= 0.10.0" } }, "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/meow/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", "dev": true, "engines": { - "node": ">=10" + "node": ">=16.10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6673,12 +7194,15 @@ } }, "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==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mimic-response": { @@ -6714,38 +7238,27 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minimist-options/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=16 || 14 >=14.17" } }, "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz", + "integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==", "dev": true, "dependencies": { "ansi-colors": "4.1.1", @@ -6755,13 +7268,12 @@ "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.2.0", + "glob": "8.1.0", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -6776,16 +7288,12 @@ }, "engines": { "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" } }, "node_modules/mocha-lcov-reporter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz", - "integrity": "sha1-Rpve9PivyaEWBW8HnfYYLQr7A4Q=", + "integrity": "sha512-/5zI2tW4lq/ft8MGpYQ1nIH6yePPtIzdGeUEwFMKfMRdLfAQ1QW2c68eEJop32tNdN5srHa/E2TzB+erm3YMYA==", "dev": true, "engines": { "node": ">= 0.6.0" @@ -6797,15 +7305,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/mocha/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -6817,6 +7316,25 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/mocha/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/mocha/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -6841,6 +7359,15 @@ "node": ">=10" } }, + "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -6906,13 +7433,13 @@ "node": ">=10" } }, - "node_modules/modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "node_modules/mocha/node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, "node_modules/ms": { @@ -6926,22 +7453,10 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "node_modules/neo-async": { "version": "2.6.2", @@ -7001,12 +7516,6 @@ "tslib": "^2.0.3" } }, - "node_modules/no-case/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - }, "node_modules/node-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", @@ -7027,9 +7536,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", "dev": true, "dependencies": { "whatwg-url": "^5.0.0" @@ -7059,48 +7568,42 @@ } }, "node_modules/node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", + "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-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", "dev": true, "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "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==", + "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/normalize-url": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-7.2.0.tgz", - "integrity": "sha512-uhXOdZry0L6M2UIo9BTt7FdpBDiAGN/7oItedQwPKh8jh31ZlvC8U9Xl/EJ3aijDHaywXTW3QbZ6LuCocur1YA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", "dev": true, "engines": { - "node": ">=12.20" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7169,7 +7672,7 @@ "node_modules/npm-run-all/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/npm-run-all/node_modules/cross-spawn": { @@ -7191,7 +7694,7 @@ "node_modules/npm-run-all/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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -7200,7 +7703,7 @@ "node_modules/npm-run-all/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" @@ -7209,16 +7712,16 @@ "node_modules/npm-run-all/node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -7227,7 +7730,7 @@ "node_modules/npm-run-all/node_modules/shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, "dependencies": { "shebang-regex": "^1.0.0" @@ -7239,7 +7742,7 @@ "node_modules/npm-run-all/node_modules/shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7350,6 +7853,39 @@ "node": ">=8" } }, + "node_modules/nyc/node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/nyc/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/nyc/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -7398,6 +7934,12 @@ "node": ">=8" } }, + "node_modules/nyc/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/oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", @@ -7407,10 +7949,28 @@ "node": "*" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7446,77 +8006,78 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "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==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, "dependencies": { - "mimic-fn": "^2.1.0" + "mimic-fn": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", "dev": true, "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", "is-wsl": "^2.2.0" }, "engines": { - "node": ">=12" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "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", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/ora": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/ora/-/ora-6.1.2.tgz", - "integrity": "sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-7.0.1.tgz", + "integrity": "sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==", "dev": true, "dependencies": { - "bl": "^5.0.0", - "chalk": "^5.0.0", + "chalk": "^5.3.0", "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", + "cli-spinners": "^2.9.0", "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", + "is-unicode-supported": "^1.3.0", "log-symbols": "^5.1.0", - "strip-ansi": "^7.0.1", - "wcwidth": "^1.0.1" + "stdin-discarder": "^0.1.0", + "string-width": "^6.1.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7535,9 +8096,9 @@ } }, "node_modules/ora/node_modules/chalk": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.1.2.tgz", - "integrity": "sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==", + "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" @@ -7561,6 +8122,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ora/node_modules/emoji-regex": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.2.1.tgz", + "integrity": "sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==", + "dev": true + }, "node_modules/ora/node_modules/is-unicode-supported": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", @@ -7589,6 +8156,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ora/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/ora/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/ora/node_modules/restore-cursor": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", @@ -7605,10 +8196,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ora/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/ora/node_modules/string-width": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz", + "integrity": "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^10.2.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ora/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "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" @@ -7621,12 +8235,12 @@ } }, "node_modules/os-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-5.0.1.tgz", - "integrity": "sha512-0EQpaHUHq7olp2/YFUr+0vZi9tMpDTblHGz+Ch5RntKxiRXOAY0JOz1UlxhSjMSksHvkm13eD6elJj3M8Ht/kw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-5.1.0.tgz", + "integrity": "sha512-YEIoAnM6zFmzw3PQ201gCVCIWbXNyKObGlVvpAVvraAeOHnlYVKFssbA/riRX5R40WA6kKrZ7Dr7dWzO3nKSeQ==", "dev": true, "dependencies": { - "macos-release": "^3.0.1", + "macos-release": "^3.1.0", "windows-release": "^5.0.1" }, "engines": { @@ -7639,7 +8253,7 @@ "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7710,37 +8324,36 @@ } }, "node_modules/pac-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", - "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", + "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", "dev": true, "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "pac-resolver": "^7.0.0", + "socks-proxy-agent": "^8.0.2" }, "engines": { - "node": ">= 8" + "node": ">= 14" } }, "node_modules/pac-resolver": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.1.tgz", - "integrity": "sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz", + "integrity": "sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==", "dev": true, "dependencies": { - "degenerator": "^3.0.2", - "ip": "^1.1.5", + "degenerator": "^5.0.0", + "ip": "^1.1.8", "netmask": "^2.0.2" }, "engines": { - "node": ">= 8" + "node": ">= 14" } }, "node_modules/package-hash": { @@ -7759,9 +8372,9 @@ } }, "node_modules/package-json": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.0.tgz", - "integrity": "sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", + "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", "dev": true, "dependencies": { "got": "^12.1.0", @@ -7776,6 +8389,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json/node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -7806,16 +8444,21 @@ } }, "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "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-better-errors": "^1.0.1" + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/parse-path": { @@ -7836,6 +8479,15 @@ "parse-path": "^7.0.0" } }, + "node_modules/patch-console": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/patch-console/-/patch-console-1.0.0.tgz", + "integrity": "sha512-nxl9nrnLQmh64iTzMfyylSlRozL7kAXIaxw1fVcLYdyhNkJCRUzirRZTikXGJsg+hc4fqpneTK6iU2H1Q8THSA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -7847,7 +8499,7 @@ "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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "engines": { "node": ">=0.10.0" } @@ -7866,6 +8518,31 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -7887,7 +8564,7 @@ "node_modules/pegjs": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", - "integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=", + "integrity": "sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow==", "dev": true, "bin": { "pegjs": "bin/pegjs" @@ -7899,7 +8576,13 @@ "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "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": { @@ -8019,13 +8702,40 @@ "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/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.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz", - "integrity": "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", + "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", "dev": true, "dependencies": { - "@jest/schemas": "^29.0.0", + "@jest/schemas": "^29.4.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -8045,12 +8755,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, "node_modules/process-on-spawn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", @@ -8064,16 +8768,16 @@ } }, "node_modules/promise.allsettled": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.6.tgz", - "integrity": "sha512-22wJUOD3zswWFqgwjNHa1965LvqTX87WPu/lreY2KSd7SVcERfuZ4GfUaOnJNnvtoIv2yXT/W00YIGMetXtFXg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.7.tgz", + "integrity": "sha512-hezvKvQQmsFkOdrZfYxUxkyxl8mgFQeT259Ajj9PXdbg9VzBCWrItOev72JyWxkCD5VSSqAeHmlN3tWx4DlmsA==", "dev": true, "dependencies": { "array.prototype.map": "^1.0.5", "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "iterate-value": "^1.0.2" }, "engines": { @@ -8096,39 +8800,33 @@ "dev": true }, "node_modules/proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", - "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.1.tgz", + "integrity": "sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==", "dev": true, "dependencies": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.1", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.2" }, "engines": { - "node": ">= 8" + "node": ">= 14" } }, "node_modules/proxy-agent/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==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, - "dependencies": { - "yallist": "^3.0.2" + "engines": { + "node": ">=12" } }, - "node_modules/proxy-agent/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/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -8136,15 +8834,24 @@ "dev": true }, "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "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.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, "engines": { "node": ">=6" } @@ -8164,16 +8871,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, "node_modules/qs": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", @@ -8203,18 +8900,21 @@ ] }, "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/rambda": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.1.4.tgz", - "integrity": "sha512-bPK8sSiVHIC7CqdWga8R+hRi5hfc4hK6S01lZW4KrLwSNryQoKaCOJA9GNiF20J7Nbe1vejRfR37/ASQXFL5EA==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", + "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", "dev": true }, "node_modules/randombytes": { @@ -8226,21 +8926,6 @@ "safe-buffer": "^5.1.0" } }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -8271,16 +8956,56 @@ "node": ">=0.10.0" } }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-devtools-core": { + "version": "4.28.4", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.4.tgz", + "integrity": "sha512-IUZKLv3CimeM07G3vX4H4loxVpByrzq3HvfTX7v9migalwvLs9ZY5D3S3pKR33U+GguYfBBdMMZyToFhsSE/iQ==", + "dev": true, + "dependencies": { + "shell-quote": "^1.6.1", + "ws": "^7" + } + }, "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/react-reconciler": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.26.2.tgz", + "integrity": "sha512-nK6kgY28HwrMNwDnMui3dvm3rCFjZrcGiuwLc5COUipBK5hWHLOxMJhSnSomirqWwjPBJKV1QcbkI0VJr7Gl1Q==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "react": "^17.0.2" + } + }, "node_modules/read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", "dev": true, "dependencies": { "load-json-file": "^4.0.0", @@ -8292,123 +9017,199 @@ } }, "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz", + "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==", "dev": true, "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "find-up": "^6.3.0", + "read-pkg": "^8.1.0", + "type-fest": "^4.2.0" }, "engines": { - "node": ">=8" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-pkg-up/node_modules/lines-and-columns": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^6.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "p-limit": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg-up/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==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.0.tgz", + "integrity": "sha512-ihtdrgbqdONYD156Ap6qTcaGcGdkdAxodO1wLqQ/j7HP1u2sFYppINiq4jyC8F+Nm+4fVufylCV00QmkTHkSUg==", "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" + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" }, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/parse-json/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "dev": true, + "engines": { + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/read-pkg-up/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", + "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==", "dev": true, "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^6.0.0", + "parse-json": "^7.0.0", + "type-fest": "^4.2.0" }, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.4.0.tgz", + "integrity": "sha512-HT3RRs7sTfY22KuPQJkD/XjbTbxgP2Je5HPt6H6JEGvcjHd5Lqru75EbrP3tb4FYjNJ+DjLp+MNQTFQU0mhXNw==", "dev": true, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "node_modules/read-pkg-up/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "node_modules/read-pkg/node_modules/path-type": { @@ -8426,16 +9227,25 @@ "node_modules/read-pkg/node_modules/pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, "engines": { "node": ">=4" } }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -8461,7 +9271,7 @@ "node_modules/rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, "dependencies": { "resolve": "^1.1.6" @@ -8470,43 +9280,30 @@ "node": ">= 0.10" } }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "dev": true }, "node_modules/regexp-tree": { - "version": "0.1.24", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", - "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", "dev": true, "bin": { "regexp-tree": "bin/regexp-tree" } }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -8519,6 +9316,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, "engines": { "node": ">=8" }, @@ -8527,12 +9325,12 @@ } }, "node_modules/registry-auth-token": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.1.tgz", - "integrity": "sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", + "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", "dev": true, "dependencies": { - "@pnpm/npm-conf": "^1.0.4" + "@pnpm/npm-conf": "^2.1.0" }, "engines": { "node": ">=14" @@ -8554,9 +9352,9 @@ } }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz", + "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==", "dev": true, "dependencies": { "jsesc": "~0.5.0" @@ -8575,32 +9373,33 @@ } }, "node_modules/release-it": { - "version": "15.6.0", - "resolved": "https://registry.npmjs.org/release-it/-/release-it-15.6.0.tgz", - "integrity": "sha512-NXewgzO8QV1LOFjn2K7/dgE1Y1cG+2JiLOU/x9X/Lq9UdFn2hTH1r9SSrufCxG+y/Rp+oN8liYTsNptKrj92kg==", + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/release-it/-/release-it-16.3.0.tgz", + "integrity": "sha512-CP+WwKbgEvXreq6Iz9po3BtcyELtTxrt5RXRGnazQ0eCphPxFZR29+8sEZRCsJq2IKvlwb5mFUbf92u426oQog==", "dev": true, "dependencies": { "@iarna/toml": "2.2.5", - "@octokit/rest": "19.0.5", + "@octokit/rest": "19.0.13", "async-retry": "1.3.3", - "chalk": "5.1.2", - "cosmiconfig": "8.0.0", - "execa": "6.1.0", + "chalk": "5.3.0", + "cosmiconfig": "8.3.6", + "execa": "7.2.0", "git-url-parse": "13.1.0", - "globby": "13.1.2", - "got": "12.5.3", - "inquirer": "9.1.4", + "globby": "13.2.2", + "got": "13.0.0", + "inquirer": "9.2.11", "is-ci": "3.0.1", + "issue-parser": "6.0.0", "lodash": "4.17.21", "mime-types": "2.1.35", "new-github-release-url": "2.0.0", - "node-fetch": "3.3.0", - "open": "8.4.0", - "ora": "6.1.2", - "os-name": "5.0.1", - "promise.allsettled": "1.0.6", - "proxy-agent": "5.0.0", - "semver": "7.3.8", + "node-fetch": "3.3.2", + "open": "9.1.0", + "ora": "7.0.1", + "os-name": "5.1.0", + "promise.allsettled": "1.0.7", + "proxy-agent": "6.3.1", + "semver": "7.5.4", "shelljs": "0.8.5", "update-notifier": "6.0.2", "url-join": "5.0.0", @@ -8611,52 +9410,48 @@ "release-it": "bin/release-it.js" }, "engines": { - "node": ">=14.9" + "node": ">=16" } }, - "node_modules/release-it/node_modules/ansi-escapes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.0.0.tgz", - "integrity": "sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==", + "node_modules/release-it/node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "dependencies": { - "type-fest": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/release-it/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" + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "node_modules/release-it/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==", + "node_modules/release-it/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, "node_modules/release-it/node_modules/chalk": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.1.2.tgz", - "integrity": "sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==", + "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" @@ -8665,45 +9460,24 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/release-it/node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/release-it/node_modules/cli-width": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz", - "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, "engines": { "node": ">= 12" } }, "node_modules/release-it/node_modules/data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", "dev": true, "engines": { "node": ">= 12" } }, - "node_modules/release-it/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/release-it/node_modules/escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", @@ -8732,15 +9506,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/release-it/node_modules/figures/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/release-it/node_modules/globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, "dependencies": { "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", "merge2": "^1.4.1", "slash": "^4.0.0" }, @@ -8752,47 +9538,92 @@ } }, "node_modules/release-it/node_modules/inquirer": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.4.tgz", - "integrity": "sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==", + "version": "9.2.11", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz", + "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", "dev": true, "dependencies": { - "ansi-escapes": "^6.0.0", - "chalk": "^5.1.2", - "cli-cursor": "^4.0.0", - "cli-width": "^4.0.0", - "external-editor": "^3.0.3", + "@ljharb/through": "^2.3.9", + "ansi-escapes": "^4.3.2", + "chalk": "^5.3.0", + "cli-cursor": "^3.1.0", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", "figures": "^5.0.0", "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^6.1.2", - "run-async": "^2.4.0", - "rxjs": "^7.5.7", - "string-width": "^5.1.2", - "strip-ansi": "^7.0.1", - "through": "^2.3.6", - "wrap-ansi": "^8.0.1" + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.18.0" } }, - "node_modules/release-it/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "node_modules/release-it/node_modules/inquirer/node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/release-it/node_modules/inquirer/node_modules/ora/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/release-it/node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/release-it/node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/release-it/node_modules/node-fetch": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", - "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "dev": true, "dependencies": { "data-uri-to-buffer": "^4.0.0", @@ -8807,123 +9638,69 @@ "url": "https://opencollective.com/node-fetch" } }, - "node_modules/release-it/node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "node_modules/release-it/node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.12.0" } }, "node_modules/release-it/node_modules/rxjs": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.6.0.tgz", - "integrity": "sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "dependencies": { "tslib": "^2.1.0" } }, - "node_modules/release-it/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/release-it/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==", + "node_modules/release-it/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" + "lru-cache": "^6.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/release-it/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=10" } }, - "node_modules/release-it/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - }, - "node_modules/release-it/node_modules/type-fest": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.3.0.tgz", - "integrity": "sha512-gezeeOIZyQLGW5uuCeEnXF1aXmtt2afKspXz3YqoOcZ3l/YMJq1pujvgT+cz/Nw1O/7q/kSav5fihJHsC/AOUg==", + "node_modules/release-it/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, "engines": { - "node": ">=14.16" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/release-it/node_modules/wrap-ansi": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz", - "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/release-it/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": ">=8" } }, "node_modules/release-zalgo": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", "dev": true, "dependencies": { "es6-error": "^4.0.1" @@ -8964,10 +9741,20 @@ "node": ">= 6" } }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -8997,13 +9784,17 @@ } }, "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dev": true, "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9051,6 +9842,36 @@ "node": ">=8" } }, + "node_modules/restore-cursor/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/restore-cursor/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/restore-cursor/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/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -9083,84 +9904,239 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, "engines": { - "node": ">=0.12.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/run-con": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.11.tgz", - "integrity": "sha512-NEMGsUT+cglWkzEr4IFK21P4Jca45HqiAbIIZIBdX5+UZTB24Mb/21iNGgz9xZa8tL6vbW7CXmq7MFN42+VjNQ==", + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", "dev": true, "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~3.0.0", - "minimist": "^1.2.6", - "strip-json-comments": "~3.1.1" + "execa": "^5.0.0" }, - "bin": { - "run-con": "cli.js" - } - }, - "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==", - "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" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "node_modules/run-applescript/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": { - "tslib": "^1.9.0" + "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": { - "npm": ">=2.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "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": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", - "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "node_modules/run-applescript/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, - "dependencies": { - "regexp-tree": "~0.1.1" + "engines": { + "node": ">=10.17.0" } }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, + "node_modules/run-applescript/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/run-applescript/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/run-applescript/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/run-applescript/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/run-applescript/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/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-con": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz", + "integrity": "sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~4.1.0", + "minimist": "^1.2.8", + "strip-json-comments": "~3.1.1" + }, + "bin": { + "run-con": "cli.js" + } + }, + "node_modules/run-con/node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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==", + "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/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/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/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -9176,10 +10152,20 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "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" @@ -9218,14 +10204,22 @@ "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/shebang-command": { "version": "2.0.0", @@ -9247,10 +10241,13 @@ } }, "node_modules/shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", - "dev": true + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/shelljs": { "version": "0.8.5", @@ -9269,6 +10266,26 @@ "node": ">=4" } }, + "node_modules/shelljs/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/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -9284,10 +10301,31 @@ } }, "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 + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-git": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.20.0.tgz", + "integrity": "sha512-ozK8tl2hvLts8ijTs18iFruE+RoqmC/mqZhjs/+V7gS5W68JpJ3+FCTmLVqmR59MaUQ52MfGQuWsIqfsTbbJ0Q==", + "dev": true, + "dependencies": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.3.4" + }, + "funding": { + "type": "github", + "url": "https://github.com/steveukx/git-js?sponsor=1" + } }, "node_modules/slash": { "version": "3.0.0", @@ -9298,6 +10336,20 @@ "node": ">=8" } }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -9323,17 +10375,17 @@ } }, "node_modules/socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", "dev": true, "dependencies": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/socks/node_modules/ip": { @@ -9343,9 +10395,9 @@ "dev": true }, "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "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" @@ -9368,10 +10420,29 @@ "node": ">=8" } }, + "node_modules/spawn-wrap/node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/spawn-wrap/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/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -9395,42 +10466,30 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", "dev": true }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" + "engines": { + "node": ">= 10.x" } }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", "dev": true, "dependencies": { "asn1": "~0.2.3", @@ -9452,13 +10511,52 @@ "node": ">=0.10.0" } }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "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": ">= 0.8" + "node": ">=10" + } + }, + "node_modules/stack-utils/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/stdin-discarder": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", + "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", + "dev": true, + "dependencies": { + "bl": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/string_decoder": { @@ -9470,49 +10568,61 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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, - "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": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/string.prototype.padend": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz", - "integrity": "sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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.1.3", - "es-abstract": "^1.18.0-next.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -9522,28 +10632,28 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "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.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "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.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9560,6 +10670,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "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", @@ -9615,6 +10738,34 @@ "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/synckit": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.6.tgz", + "integrity": "sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA==", + "dev": true, + "dependencies": { + "@pkgr/utils": "^2.4.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -9629,33 +10780,59 @@ "node": ">=8" } }, + "node_modules/test-exclude/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/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", + "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", "dev": true, "engines": { - "node": ">=0.10" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", "dev": true, - "dependencies": { - "readable-stream": "3" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/tmp": { @@ -9673,7 +10850,7 @@ "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": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, "engines": { "node": ">=4" @@ -9691,15 +10868,6 @@ "node": ">=8.0" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -9716,22 +10884,25 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "node_modules/ts-api-utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", + "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" } }, "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "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/tsutils": { @@ -9749,10 +10920,16 @@ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, "dependencies": { "safe-buffer": "^5.0.1" @@ -9764,7 +10941,7 @@ "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", "dev": true }, "node_modules/type-check": { @@ -9788,16 +10965,82 @@ } }, "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==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.12.0.tgz", + "integrity": "sha512-qj9wWsnFvVEMUDbESiilKeXeHL7FwwiFcogfhfyjmvT968RXSvnl23f1JOClTHYItsi7o501C/7qVllscUP3oA==", + "dev": true, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -9814,22 +11057,22 @@ } }, "node_modules/typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.0.0.tgz", + "integrity": "sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig==", "dev": true }, "node_modules/uglify-js": { @@ -9903,13 +11146,43 @@ "node": ">= 4.0.0" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=8" + } + }, + "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/update-notifier": { @@ -9941,9 +11214,9 @@ } }, "node_modules/update-notifier/node_modules/chalk": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.1.2.tgz", - "integrity": "sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==", + "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" @@ -9976,13 +11249,12 @@ "dev": true }, "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, "bin": { - "uuid": "bin/uuid" + "uuid": "dist/bin/uuid" } }, "node_modules/validate-npm-package-license": { @@ -9998,7 +11270,7 @@ "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, "engines": [ "node >=0.6.0" @@ -10009,22 +11281,6 @@ "extsprintf": "^1.2.0" } }, - "node_modules/vm2": { - "version": "3.9.11", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.11.tgz", - "integrity": "sha512-PFG8iJRSjvvBdisowQ7iVF580DXb1uCIiGaXgm7tynMR1uTBlv7UJlB1zdv5KJ+Tmq1f0Upnj3fayoEOPpCBKg==", - "dev": true, - "dependencies": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - }, - "bin": { - "vm2": "bin/vm2" - }, - "engines": { - "node": ">=6.0" - } - }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -10046,13 +11302,13 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "dependencies": { "tr46": "~0.0.3", @@ -10090,21 +11346,40 @@ } }, "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "dev": true }, - "node_modules/widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", "dev": true, "dependencies": { - "string-width": "^5.0.1" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "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" @@ -10146,9 +11421,9 @@ } }, "node_modules/widest-line/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "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" @@ -10167,9 +11442,9 @@ "dev": true }, "node_modules/windows-release": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-5.0.1.tgz", - "integrity": "sha512-y1xFdFvdMiDXI3xiOhMbJwt1Y7dUxidha0CWPs1NgjZIjZANTcX7+7bMqNjuezhzb8s5JGEiBAbQjQQYYy7ulw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-5.1.1.tgz", + "integrity": "sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw==", "dev": true, "dependencies": { "execa": "^5.1.1" @@ -10213,6 +11488,15 @@ "node": ">=10.17.0" } }, + "node_modules/windows-release/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/windows-release/node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -10225,6 +11509,27 @@ "node": ">=8" } }, + "node_modules/windows-release/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/windows-release/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/windows-release/node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -10234,14 +11539,6 @@ "node": ">=6" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -10255,9 +11552,27 @@ "dev": true }, "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "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/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", @@ -10265,13 +11580,78 @@ "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/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/wrap-ansi/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/wrap-ansi/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/wrap-ansi/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/wrap-ansi/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/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { "version": "3.0.3", @@ -10285,6 +11665,33 @@ "typedarray-to-buffer": "^3.1.5" } }, + "node_modules/write-file-atomic/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/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xdg-basedir": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", @@ -10297,24 +11704,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, "node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", @@ -10350,12 +11739,12 @@ } }, "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "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": ">=10" + "node": ">=12" } }, "node_modules/yargs-unparser": { @@ -10374,9 +11763,9 @@ } }, "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "engines": { "node": ">=10" @@ -10397,6 +11786,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yargs-unparser/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/yargs/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -10472,7642 +11870,18 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/compat-data": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", - "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", - "dev": true - }, - "@babel/core": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz", - "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helpers": "^7.14.6", - "@babel/parser": "^7.14.6", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } }, - "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", - "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", + "node_modules/yoga-layout-prebuilt": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.10.0.tgz", + "integrity": "sha512-YnOmtSbv4MTf7RGJMK0FvZ+KD8OEe/J5BNnR0GHhD8J/XcG/Qvxgszm0Un6FTHWW4uHlTgP0IztiXQnGyIR45g==", "dev": true, - "requires": { - "@babel/compat-data": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", - "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", - "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-replace-supers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", - "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", - "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true - }, - "@babel/helpers": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz", - "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==", - "dev": true, - "requires": { - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@types/yoga-layout": "1.9.2" }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", - "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", - "dev": true - }, - "@babel/runtime": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz", - "integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" + "engines": { + "node": ">=8" } - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - } - } - }, - "@babel/traverse": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", - "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.7", - "@babel/types": "^7.14.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "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 - } - } - }, - "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - } - }, - "@eslint-community/eslint-utils": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.1.2.tgz", - "integrity": "sha512-7qELuQWWjVDdVsFQ5+beUl+KPczrEDA7S3zM4QUd/bJl7oXgsmpXaEVqrRTnOBqenOV4rWf2kVZk2Ot085zPWA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } - } - }, - "@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.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" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" - }, - "@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", - "dev": true - }, - "@iarna/toml": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", - "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", - "dev": true - }, - "@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, - "requires": { - "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" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "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 - } - } - }, - "@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 - }, - "@jest/schemas": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", - "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.24.1" - } - }, - "@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==", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@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==" - }, - "@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==", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@octokit/auth-token": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz", - "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==", - "dev": true, - "requires": { - "@octokit/types": "^8.0.0" - } - }, - "@octokit/core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz", - "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==", - "dev": true, - "requires": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/endpoint": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz", - "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==", - "dev": true, - "requires": { - "@octokit/types": "^8.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/graphql": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz", - "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==", - "dev": true, - "requires": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^8.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", - "dev": true - }, - "@octokit/plugin-paginate-rest": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz", - "integrity": "sha512-7A+rEkS70pH36Z6JivSlR7Zqepz3KVucEFVDnSrgHXzG7WLAzYwcHZbKdfTXHwuTHbkT1vKvz7dHl1+HNf6Qyw==", - "dev": true, - "requires": { - "@octokit/types": "^8.0.0" - } - }, - "@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "dev": true, - "requires": {} - }, - "@octokit/plugin-rest-endpoint-methods": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz", - "integrity": "sha512-orxQ0fAHA7IpYhG2flD2AygztPlGYNAdlzYz8yrD8NDgelPfOYoRPROfEyIe035PlxvbYrgkfUZIhSBKju/Cvw==", - "dev": true, - "requires": { - "@octokit/types": "^8.0.0", - "deprecation": "^2.3.1" - } - }, - "@octokit/request": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz", - "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==", - "dev": true, - "requires": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/request-error": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz", - "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==", - "dev": true, - "requires": { - "@octokit/types": "^8.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "@octokit/rest": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.5.tgz", - "integrity": "sha512-+4qdrUFq2lk7Va+Qff3ofREQWGBeoTKNqlJO+FGjFP35ZahP+nBenhZiGdu8USSgmq4Ky3IJ/i4u0xbLqHaeow==", - "dev": true, - "requires": { - "@octokit/core": "^4.1.0", - "@octokit/plugin-paginate-rest": "^5.0.0", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^6.7.0" - } - }, - "@octokit/types": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.0.0.tgz", - "integrity": "sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg==", - "dev": true, - "requires": { - "@octokit/openapi-types": "^14.0.0" - } - }, - "@pnpm/network.ca-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "dev": true, - "requires": { - "graceful-fs": "4.2.10" - } - }, - "@pnpm/npm-conf": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz", - "integrity": "sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A==", - "dev": true, - "requires": { - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - } - }, - "@release-it/conventional-changelog": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@release-it/conventional-changelog/-/conventional-changelog-5.1.1.tgz", - "integrity": "sha512-QtbDBe36dQfzexAfDYrbLPvd5Cb5bMWmLcjcGhCOWBss7fe1/gCjoxDULVz+7N7G5Nu2UMeBwHcUp/w8RDh5VQ==", - "dev": true, - "requires": { - "concat-stream": "^2.0.0", - "conventional-changelog": "^3.1.25", - "conventional-recommended-bump": "^6.1.0", - "semver": "7.3.8" - } - }, - "@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", - "dev": true - }, - "@sindresorhus/is": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", - "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/mdast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz", - "integrity": "sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==", - "dev": true, - "requires": { - "@types/unist": "*" - } - }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "dev": true - }, - "@types/unist": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", - "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==", - "dev": true - }, - "@typescript-eslint/parser": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.47.1.tgz", - "integrity": "sha512-9Vb+KIv29r6GPu4EboWOnQM7T+UjpjXvjCPhNORlgm40a9Ia9bvaPJswvtae1gip2QEeVeGh6YquqAzEgoRAlw==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.47.1", - "@typescript-eslint/types": "5.47.1", - "@typescript-eslint/typescript-estree": "5.47.1", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.47.1.tgz", - "integrity": "sha512-9hsFDsgUwrdOoW1D97Ewog7DYSHaq4WKuNs0LHF9RiCmqB0Z+XRR4Pf7u7u9z/8CciHuJ6yxNws1XznI3ddjEw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.47.1", - "@typescript-eslint/visitor-keys": "5.47.1" - } - }, - "@typescript-eslint/types": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.47.1.tgz", - "integrity": "sha512-CmALY9YWXEpwuu6377ybJBZdtSAnzXLSQcxLSqSQSbC7VfpMu/HLVdrnVJj7ycI138EHqocW02LPJErE35cE9A==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.1.tgz", - "integrity": "sha512-4+ZhFSuISAvRi2xUszEj0xXbNTHceV9GbH9S8oAD2a/F9SW57aJNQVOCxG8GPfSWH/X4eOPdMEU2jYVuWKEpWA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.47.1", - "@typescript-eslint/visitor-keys": "5.47.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.39.0.tgz", - "integrity": "sha512-+DnY5jkpOpgj+EBtYPyHRjXampJfC0yUZZzfzLuUWVZvCuKqSdJVC8UhdWipIw7VKNTfwfAPiOWzYkAwuIhiAg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.39.0", - "@typescript-eslint/types": "5.39.0", - "@typescript-eslint/typescript-estree": "5.39.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.39.0.tgz", - "integrity": "sha512-/I13vAqmG3dyqMVSZPjsbuNQlYS082Y7OMkwhCfLXYsmlI0ca4nkL7wJ/4gjX70LD4P8Hnw1JywUVVAwepURBw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.39.0", - "@typescript-eslint/visitor-keys": "5.39.0" - } - }, - "@typescript-eslint/types": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.39.0.tgz", - "integrity": "sha512-gQMZrnfEBFXK38hYqt8Lkwt8f4U6yq+2H5VDSgP/qiTzC8Nw8JO3OuSUOQ2qW37S/dlwdkHDntkZM6SQhKyPhw==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.39.0.tgz", - "integrity": "sha512-qLFQP0f398sdnogJoLtd43pUgB18Q50QSA+BTE5h3sUxySzbWDpTSdgt4UyxNSozY/oDK2ta6HVAzvGgq8JYnA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.39.0", - "@typescript-eslint/visitor-keys": "5.39.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.39.0.tgz", - "integrity": "sha512-yyE3RPwOG+XJBLrhvsxAidUgybJVQ/hG8BhiJo0k8JSAYfk/CshVcxf0HwP4Jt7WZZ6vLmxdo1p6EyN3tzFTkg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.39.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.47.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.1.tgz", - "integrity": "sha512-rF3pmut2JCCjh6BLRhNKdYjULMb1brvoaiWDlHfLNVgmnZ0sBVJrs3SyaKE1XoDDnJuAx/hDQryHYmPUuNq0ig==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.47.1", - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } - } - }, - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==" - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "requires": {} - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "add-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", - "dev": true - }, - "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, - "requires": { - "debug": "4" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "all-contributors-cli": { - "version": "6.24.0", - "resolved": "https://registry.npmjs.org/all-contributors-cli/-/all-contributors-cli-6.24.0.tgz", - "integrity": "sha512-7oSKr2PnqxsOotuSwciltcFTS1eVRdjR0cn99hbElfff7gRQBShVhsf/XBprY41sLcgqTk0l0MKgKv6QNgZdMg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.6", - "async": "^3.1.0", - "chalk": "^4.0.0", - "didyoumean": "^1.2.1", - "inquirer": "^7.3.3", - "json-fixer": "^1.6.8", - "lodash": "^4.11.2", - "node-fetch": "^2.6.0", - "pify": "^5.0.0", - "yargs": "^15.0.1" - } - }, - "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, - "requires": { - "string-width": "^4.1.0" - } - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "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, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "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 - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "requires": { - "default-require-extensions": "^3.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true - }, - "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 - }, - "array.prototype.map": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.5.tgz", - "integrity": "sha512-gfaKntvwqYIuC7mLLyv2wzZIJqrRhn5PZ9EfFejSx6a78sV7iDsGpG9P+3oUPtm1Rerqm6nrKS4FYuTIvWfo3g==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - } - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dev": true, - "requires": { - "tslib": "^2.0.1" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - } - } - }, - "async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", - "dev": true - }, - "async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dev": true, - "requires": { - "retry": "0.13.1" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bl": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", - "dev": true, - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "boolean": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", - "dev": true - }, - "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, - "requires": { - "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" - }, - "dependencies": { - "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 - }, - "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 - }, - "camelcase": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.0.tgz", - "integrity": "sha512-JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ==", - "dev": true - }, - "chalk": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.1.2.tgz", - "integrity": "sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==", - "dev": true - }, - "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 - }, - "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, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "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 - }, - "wrap-ansi": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz", - "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==", - "dev": true, - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "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 - }, - "builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - }, - "cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true - }, - "cacheable-request": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.2.tgz", - "integrity": "sha512-KxjQZM3UIo7/J6W4sLpwFvu1GB3Whv8NtZ8ZrUL284eiQjiXeeqWTdhixNrp/NLZ/JNuFBo6BD4ZaO8ZJ5BN8Q==", - "dev": true, - "requires": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.0", - "keyv": "^4.5.0", - "mimic-response": "^4.0.0", - "normalize-url": "^7.2.0", - "responselike": "^3.0.0" - } - }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - } - }, - "caniuse-lite": { - "version": "1.0.30001441", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz", - "integrity": "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "dev": true - }, - "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "dev": true - }, - "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "dev": true - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "ci-info": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz", - "integrity": "sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==", - "dev": true - }, - "clean-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", - "integrity": "sha1-jffHquUf02h06PjQW5GAvBGj/tc=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "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 - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinners": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", - "dev": true - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true - }, - "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==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true - }, - "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, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - } - } - }, - "configstore": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", - "dev": true, - "requires": { - "dot-prop": "^6.0.1", - "graceful-fs": "^4.2.6", - "unique-string": "^3.0.0", - "write-file-atomic": "^3.0.3", - "xdg-basedir": "^5.0.1" - }, - "dependencies": { - "dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - } - } - }, - "conventional-changelog": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz", - "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==", - "dev": true, - "requires": { - "conventional-changelog-angular": "^5.0.12", - "conventional-changelog-atom": "^2.0.8", - "conventional-changelog-codemirror": "^2.0.8", - "conventional-changelog-conventionalcommits": "^4.5.0", - "conventional-changelog-core": "^4.2.1", - "conventional-changelog-ember": "^2.0.9", - "conventional-changelog-eslint": "^3.0.9", - "conventional-changelog-express": "^2.0.6", - "conventional-changelog-jquery": "^3.0.11", - "conventional-changelog-jshint": "^2.0.9", - "conventional-changelog-preset-loader": "^2.3.4" - } - }, - "conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", - "dev": true, - "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" - } - }, - "conventional-changelog-atom": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", - "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", - "dev": true, - "requires": { - "q": "^1.5.1" - } - }, - "conventional-changelog-codemirror": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", - "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", - "dev": true, - "requires": { - "q": "^1.5.1" - } - }, - "conventional-changelog-conventionalcommits": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", - "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", - "dev": true, - "requires": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" - } - }, - "conventional-changelog-core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", - "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", - "dev": true, - "requires": { - "add-stream": "^1.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-parser": "^3.2.0", - "dateformat": "^3.0.0", - "get-pkg-repo": "^4.0.0", - "git-raw-commits": "^2.0.8", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^4.1.1", - "lodash": "^4.17.15", - "normalize-package-data": "^3.0.0", - "q": "^1.5.1", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - } - } - }, - "conventional-changelog-ember": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", - "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", - "dev": true, - "requires": { - "q": "^1.5.1" - } - }, - "conventional-changelog-eslint": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", - "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", - "dev": true, - "requires": { - "q": "^1.5.1" - } - }, - "conventional-changelog-express": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", - "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", - "dev": true, - "requires": { - "q": "^1.5.1" - } - }, - "conventional-changelog-jquery": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", - "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", - "dev": true, - "requires": { - "q": "^1.5.1" - } - }, - "conventional-changelog-jshint": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", - "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", - "dev": true, - "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" - } - }, - "conventional-changelog-preset-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", - "dev": true - }, - "conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", - "dev": true, - "requires": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", - "dev": true, - "requires": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" - } - }, - "conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", - "dev": true, - "requires": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - } - }, - "conventional-recommended-bump": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", - "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", - "dev": true, - "requires": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^2.3.4", - "conventional-commits-filter": "^2.0.7", - "conventional-commits-parser": "^3.2.0", - "git-raw-commits": "^2.0.8", - "git-semver-tags": "^4.1.1", - "meow": "^8.0.0", - "q": "^1.5.1" - } - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "requires": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, - "dependencies": { - "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 - }, - "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, - "requires": { - "argparse": "^2.0.1" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - } - } - }, - "coveralls": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.1.tgz", - "integrity": "sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww==", - "dev": true, - "requires": { - "js-yaml": "^3.13.1", - "lcov-parse": "^1.0.0", - "log-driver": "^1.2.7", - "minimist": "^1.2.5", - "request": "^2.88.2" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "dev": true, - "requires": { - "type-fest": "^1.0.1" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true - } - } - }, - "dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", - "dev": true - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true - } - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true - } - } - }, - "deep-eql": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.2.tgz", - "integrity": "sha512-gT18+YW4CcW/DBNTwAmqTtkJh7f9qqScu2qFVlx7kCoeY9tlBu9cUcr7+I+Z/noG8INehS3xQgLpTtd/QUTn4w==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "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 - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", - "dev": true, - "requires": { - "strip-bom": "^4.0.0" - } - }, - "defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "degenerator": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz", - "integrity": "sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==", - "dev": true, - "requires": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.8" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true - }, - "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "diff-sequences": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.2.0.tgz", - "integrity": "sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw==", - "dev": true - }, - "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, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "requires": { - "esutils": "^2.0.2" - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "electron-to-chromium": { - "version": "1.3.759", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.759.tgz", - "integrity": "sha512-nM76xH0t2FBH5iMEZDVc3S/qbdKjGH7TThezxC8k1Q7w7WHvIAyJh8lAe2UamGfdRqBTjHfPDn82LJ0ksCiB9g==", - "dev": true - }, - "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 - }, - "entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "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 - }, - "es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-goat": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", - "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", - "dev": true - }, - "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==" - }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true - }, - "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, - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "eslint": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz", - "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==", - "requires": { - "@eslint/eslintrc": "^1.4.1", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - }, - "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==", - "requires": { - "is-glob": "^4.0.3" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "eslint-doc-generator": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/eslint-doc-generator/-/eslint-doc-generator-1.4.1.tgz", - "integrity": "sha512-OXYdpT3atpY+sKZVwdYs7CYjj51Q0Vm+A4EKc4h6zsgjicq+7S5HOhf8Ps3apWfWNaYzV0RsdKIBhi3ZruL14w==", - "dev": true, - "requires": { - "@typescript-eslint/utils": "^5.38.1", - "ajv": "^8.11.2", - "boolean": "^3.2.0", - "commander": "^9.4.0", - "cosmiconfig": "^8.0.0", - "deepmerge": "^4.2.2", - "dot-prop": "^7.2.0", - "jest-diff": "^29.2.1", - "json-schema-traverse": "^1.0.0", - "markdown-table": "^3.0.3", - "no-case": "^3.0.4", - "type-fest": "^3.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", - "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "dot-prop": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz", - "integrity": "sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==", - "dev": true, - "requires": { - "type-fest": "^2.11.2" - }, - "dependencies": { - "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 - } - } - }, - "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 - }, - "type-fest": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.1.0.tgz", - "integrity": "sha512-StmrZmK3eD9mDF9Vt7UhqthrDSk66O9iYl5t5a0TSoVkHjl0XZx/xuc/BRz4urAXXGHOY5OLsE0RdJFIApSFmw==", - "dev": true - } - } - }, - "eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-plugin-eslint-comments": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", - "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "ignore": "^5.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - } - } - }, - "eslint-plugin-eslint-plugin": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-5.0.7.tgz", - "integrity": "sha512-hcz4Bze1ECwv3Q/Bi/ZMZZNiuvI2YclNuxjnczkblQ0skrlPhdO83rSM7felf5n+7ZJOZi4GS8y8gNiRtvI0hA==", - "dev": true, - "requires": { - "eslint-utils": "^3.0.0", - "estraverse": "^5.3.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "eslint-plugin-markdown": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.0.tgz", - "integrity": "sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==", - "dev": true, - "requires": { - "mdast-util-from-markdown": "^0.8.5" - } - }, - "eslint-plugin-mocha": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.1.0.tgz", - "integrity": "sha512-xLqqWUF17llsogVOC+8C6/jvQ+4IoOREbN7ZCHuOHuD6cT5cDD4h7f2LgsZuzMAiwswWE21tO7ExaknHVDrSkw==", - "dev": true, - "requires": { - "eslint-utils": "^3.0.0", - "rambda": "^7.1.0" - } - }, - "eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "requires": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "eslint-plugin-unicorn": { - "version": "45.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-45.0.2.tgz", - "integrity": "sha512-Y0WUDXRyGDMcKLiwgL3zSMpHrXI00xmdyixEGIg90gHnj0PcHY4moNv3Ppje/kDivdAy5vUeUr7z211ImPv2gw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.19.1", - "@eslint-community/eslint-utils": "^4.1.2", - "ci-info": "^3.6.1", - "clean-regexp": "^1.0.0", - "esquery": "^1.4.0", - "indent-string": "^4.0.0", - "is-builtin-module": "^3.2.0", - "jsesc": "^3.0.2", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "read-pkg-up": "^7.0.1", - "regexp-tree": "^0.1.24", - "regjsparser": "^0.9.1", - "safe-regex": "^2.1.1", - "semver": "^7.3.8", - "strip-indent": "^3.0.0" - }, - "dependencies": { - "jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "dev": true - } - } - }, - "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, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "requires": { - "eslint-visitor-keys": "^2.0.0" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" - }, - "espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" - } - } - }, - "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 - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "dependencies": { - "is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true - }, - "mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "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==" - }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "requires": { - "@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" - } - }, - "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==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "requires": { - "reusify": "^1.0.4" - } - }, - "fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "dev": true, - "requires": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - } - } - }, - "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==", - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-uri-to-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", - "dev": true - }, - "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, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "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==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==" - }, - "foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "form-data-encoder": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.3.tgz", - "integrity": "sha512-KqU0nnPMgIJcCOFTNJFEA8epcseEaoox4XZffTgy8jlI6pL/5EFyR54NRG7CnCJN0biY7q52DO3MH6/sJ/TKlQ==", - "dev": true - }, - "formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dev": true, - "requires": { - "fetch-blob": "^3.1.2" - } - }, - "fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==", - "dev": true, - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "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 - }, - "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 - }, - "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 - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "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 - }, - "get-pkg-repo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", - "dev": true, - "requires": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "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, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", - "dev": true - }, - "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 - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", - "dev": true, - "requires": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - } - }, - "git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", - "dev": true, - "requires": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - } - } - }, - "git-semver-tags": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", - "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", - "dev": true, - "requires": { - "meow": "^8.0.0", - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "git-up": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", - "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", - "dev": true, - "requires": { - "is-ssh": "^1.4.0", - "parse-url": "^8.1.0" - } - }, - "git-url-parse": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.0.tgz", - "integrity": "sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==", - "dev": true, - "requires": { - "git-up": "^7.0.0" - } - }, - "gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", - "dev": true, - "requires": { - "ini": "^1.3.2" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - } - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "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, - "requires": { - "is-glob": "^4.0.1" - } - }, - "global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", - "dev": true, - "requires": { - "ini": "2.0.0" - }, - "dependencies": { - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true - } - } - }, - "globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", - "requires": { - "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "got": { - "version": "12.5.3", - "resolved": "https://registry.npmjs.org/got/-/got-12.5.3.tgz", - "integrity": "sha512-8wKnb9MGU8IPGRIo+/ukTy9XLJBwDiCpIf5TVzQ9Cpol50eMTpBq2GAuDsuDIz7hTYmZgMgC1e9ydr6kSDWs3w==", - "dev": true, - "requires": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.1", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "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 - } - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "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 - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-yarn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", - "dev": true - }, - "hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "dependencies": { - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - } - } - }, - "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, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", - "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", - "dev": true - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - } - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "dev": true - }, - "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dev": true, - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-builtin-module": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", - "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", - "dev": true, - "requires": { - "builtin-modules": "^3.3.0" - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "requires": { - "ci-info": "^3.2.0" - } - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "dev": true - }, - "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "dev": true - }, - "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 - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "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 - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "dev": true - }, - "is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "requires": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - } - }, - "is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", - "dev": true - }, - "is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-npm": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", - "dev": true - }, - "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 - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "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==" - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-ssh": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", - "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", - "dev": true, - "requires": { - "protocols": "^2.0.1" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", - "dev": true, - "requires": { - "text-extensions": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "is-yarn-global": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", - "dev": true - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "requires": { - "append-transform": "^2.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "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 - } - } - }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "iterate-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.2.tgz", - "integrity": "sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==", - "dev": true - }, - "iterate-value": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", - "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", - "dev": true, - "requires": { - "es-get-iterator": "^1.0.2", - "iterate-iterator": "^1.0.1" - } - }, - "jest-diff": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.2.1.tgz", - "integrity": "sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^29.2.0", - "jest-get-type": "^29.2.0", - "pretty-format": "^29.2.1" - } - }, - "jest-get-type": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", - "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==", - "dev": true - }, - "js-sdsl": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", - "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==" - }, - "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 - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "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 - }, - "json-fixer": { - "version": "1.6.10", - "resolved": "https://registry.npmjs.org/json-fixer/-/json-fixer-1.6.10.tgz", - "integrity": "sha512-Q63bfy46LGJHPtjjB/t4+6d427K0RWgOy3bgUHXCl1ztNdMxiLxkHwOxD5U08cPiro4+iC1kBYf+HLlc1J4a6w==", - "dev": true, - "requires": { - "@babel/runtime": "^7.14.0", - "chalk": "^4.1.1", - "pegjs": "^0.10.0" - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "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==" - }, - "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "jsonc-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", - "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "latest-version": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", - "dev": true, - "requires": { - "package-json": "^8.1.0" - } - }, - "lcov-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", - "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "linkify-it": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", - "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } - } - }, - "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==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", - "dev": true - }, - "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==" - }, - "log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "loupe": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", - "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", - "dev": true, - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - } - } - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "macos-release": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.1.0.tgz", - "integrity": "sha512-/M/R0gCDgM+Cv1IuBG1XGdfTFnMEG6PZeT+KGWHO/OG+imqmaD9CH5vHBTycEM3+Kc4uG2Il+tFAuUWLqQOeUA==", - "dev": true - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true - }, - "markdown-it": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", - "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", - "dev": true, - "requires": { - "argparse": "^2.0.1", - "entities": "~3.0.1", - "linkify-it": "^4.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "dependencies": { - "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 - } - } - }, - "markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", - "dev": true - }, - "markdownlint": { - "version": "0.26.2", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.26.2.tgz", - "integrity": "sha512-2Am42YX2Ex5SQhRq35HxYWDfz1NLEOZWWN25nqd2h3AHRKsGRE+Qg1gt1++exW792eXTrR4jCNHfShfWk9Nz8w==", - "dev": true, - "requires": { - "markdown-it": "13.0.1" - } - }, - "markdownlint-cli": { - "version": "0.32.2", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.32.2.tgz", - "integrity": "sha512-xmJT1rGueUgT4yGNwk6D0oqQr90UJ7nMyakXtqjgswAkEhYYqjHew9RY8wDbOmh2R270IWjuKSeZzHDEGPAUkQ==", - "dev": true, - "requires": { - "commander": "~9.4.0", - "get-stdin": "~9.0.0", - "glob": "~8.0.3", - "ignore": "~5.2.0", - "js-yaml": "^4.1.0", - "jsonc-parser": "~3.1.0", - "markdownlint": "~0.26.2", - "markdownlint-rule-helpers": "~0.17.2", - "minimatch": "~5.1.0", - "run-con": "~1.2.11" - }, - "dependencies": { - "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 - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "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, - "requires": { - "argparse": "^2.0.1" - } - }, - "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "markdownlint-rule-helpers": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.17.2.tgz", - "integrity": "sha512-XaeoW2NYSlWxMCZM2B3H7YTG6nlaLfkEZWMBhr4hSPlq9MuY2sy83+Xr89jXOqZMZYjvi5nBCGoFh7hHoPKZmA==", - "dev": true - }, - "mdast-util-from-markdown": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", - "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, - "mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "dev": true - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, - "memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "dev": true - }, - "meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "dependencies": { - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - } - }, - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - } - } - }, - "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 - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromark": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", - "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", - "dev": true, - "requires": { - "debug": "^4.0.0", - "parse-entities": "^2.0.0" - } - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "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 - }, - "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, - "requires": { - "mime-db": "1.52.0" - } - }, - "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 - }, - "mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true - } - } - }, - "mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dev": true, - "requires": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "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 - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "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, - "requires": { - "argparse": "^2.0.1" - } - }, - "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "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, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "mocha-lcov-reporter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz", - "integrity": "sha1-Rpve9PivyaEWBW8HnfYYLQr7A4Q=", - "dev": true - }, - "modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "dev": true - }, - "new-github-release-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/new-github-release-url/-/new-github-release-url-2.0.0.tgz", - "integrity": "sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ==", - "dev": true, - "requires": { - "type-fest": "^2.5.1" - }, - "dependencies": { - "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 - } - } - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - } - } - }, - "node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "requires": { - "process-on-spawn": "^1.0.0" - } - }, - "node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "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 - }, - "normalize-url": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-7.2.0.tgz", - "integrity": "sha512-uhXOdZry0L6M2UIo9BTt7FdpBDiAGN/7oItedQwPKh8jh31ZlvC8U9Xl/EJ3aijDHaywXTW3QbZ6LuCocur1YA==", - "dev": true - }, - "npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - }, - "dependencies": { - "path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true - } - } - }, - "nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "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 - } - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dev": true, - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "ora": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/ora/-/ora-6.1.2.tgz", - "integrity": "sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==", - "dev": true, - "requires": { - "bl": "^5.0.0", - "chalk": "^5.0.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.1.0", - "strip-ansi": "^7.0.1", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "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 - }, - "chalk": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.1.2.tgz", - "integrity": "sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==", - "dev": true - }, - "cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, - "requires": { - "restore-cursor": "^4.0.0" - } - }, - "is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true - }, - "log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", - "dev": true, - "requires": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" - } - }, - "restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "os-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-5.0.1.tgz", - "integrity": "sha512-0EQpaHUHq7olp2/YFUr+0vZi9tMpDTblHGz+Ch5RntKxiRXOAY0JOz1UlxhSjMSksHvkm13eD6elJj3M8Ht/kw==", - "dev": true, - "requires": { - "macos-release": "^3.0.1", - "windows-release": "^5.0.1" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "outdent": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.8.0.tgz", - "integrity": "sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==", - "dev": true - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pac-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", - "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - } - }, - "pac-resolver": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.1.tgz", - "integrity": "sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==", - "dev": true, - "requires": { - "degenerator": "^3.0.2", - "ip": "^1.1.5", - "netmask": "^2.0.2" - } - }, - "package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, - "package-json": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.0.tgz", - "integrity": "sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==", - "dev": true, - "requires": { - "got": "^12.1.0", - "registry-auth-token": "^5.0.1", - "registry-url": "^6.0.0", - "semver": "^7.3.7" - } - }, - "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==", - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dev": true, - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse-path": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz", - "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==", - "dev": true, - "requires": { - "protocols": "^2.0.0" - } - }, - "parse-url": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", - "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", - "dev": true, - "requires": { - "parse-path": "^7.0.0" - } - }, - "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==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "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 - }, - "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 - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true - }, - "pegjs": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", - "integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true - }, - "pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" - }, - "pretty-format": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz", - "integrity": "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==", - "dev": true, - "requires": { - "@jest/schemas": "^29.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "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 - } - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "requires": { - "fromentries": "^1.2.0" - } - }, - "promise.allsettled": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.6.tgz", - "integrity": "sha512-22wJUOD3zswWFqgwjNHa1965LvqTX87WPu/lreY2KSd7SVcERfuZ4GfUaOnJNnvtoIv2yXT/W00YIGMetXtFXg==", - "dev": true, - "requires": { - "array.prototype.map": "^1.0.5", - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "iterate-value": "^1.0.2" - } - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true - }, - "protocols": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", - "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", - "dev": true - }, - "proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", - "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", - "dev": true, - "requires": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "dependencies": { - "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, - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "pupa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", - "dev": true, - "requires": { - "escape-goat": "^4.0.0" - } - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "dev": true - }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true - }, - "rambda": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.1.4.tgz", - "integrity": "sha512-bPK8sSiVHIC7CqdWga8R+hRi5hfc4hK6S01lZW4KrLwSNryQoKaCOJA9GNiF20J7Nbe1vejRfR37/ASQXFL5EA==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true - } - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - }, - "regexp-tree": { - "version": "0.1.24", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", - "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", - "dev": true - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" - }, - "registry-auth-token": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.1.tgz", - "integrity": "sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA==", - "dev": true, - "requires": { - "@pnpm/npm-conf": "^1.0.4" - } - }, - "registry-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", - "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", - "dev": true, - "requires": { - "rc": "1.2.8" - } - }, - "regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true - } - } - }, - "release-it": { - "version": "15.6.0", - "resolved": "https://registry.npmjs.org/release-it/-/release-it-15.6.0.tgz", - "integrity": "sha512-NXewgzO8QV1LOFjn2K7/dgE1Y1cG+2JiLOU/x9X/Lq9UdFn2hTH1r9SSrufCxG+y/Rp+oN8liYTsNptKrj92kg==", - "dev": true, - "requires": { - "@iarna/toml": "2.2.5", - "@octokit/rest": "19.0.5", - "async-retry": "1.3.3", - "chalk": "5.1.2", - "cosmiconfig": "8.0.0", - "execa": "6.1.0", - "git-url-parse": "13.1.0", - "globby": "13.1.2", - "got": "12.5.3", - "inquirer": "9.1.4", - "is-ci": "3.0.1", - "lodash": "4.17.21", - "mime-types": "2.1.35", - "new-github-release-url": "2.0.0", - "node-fetch": "3.3.0", - "open": "8.4.0", - "ora": "6.1.2", - "os-name": "5.0.1", - "promise.allsettled": "1.0.6", - "proxy-agent": "5.0.0", - "semver": "7.3.8", - "shelljs": "0.8.5", - "update-notifier": "6.0.2", - "url-join": "5.0.0", - "wildcard-match": "5.1.2", - "yargs-parser": "21.1.1" - }, - "dependencies": { - "ansi-escapes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.0.0.tgz", - "integrity": "sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==", - "dev": true, - "requires": { - "type-fest": "^3.0.0" - } - }, - "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 - }, - "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 - }, - "chalk": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.1.2.tgz", - "integrity": "sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==", - "dev": true - }, - "cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, - "requires": { - "restore-cursor": "^4.0.0" - } - }, - "cli-width": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz", - "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==", - "dev": true - }, - "data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", - "dev": true - }, - "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 - }, - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - }, - "figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", - "dev": true, - "requires": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - } - }, - "globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "inquirer": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.4.tgz", - "integrity": "sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==", - "dev": true, - "requires": { - "ansi-escapes": "^6.0.0", - "chalk": "^5.1.2", - "cli-cursor": "^4.0.0", - "cli-width": "^4.0.0", - "external-editor": "^3.0.3", - "figures": "^5.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^6.1.2", - "run-async": "^2.4.0", - "rxjs": "^7.5.7", - "string-width": "^5.1.2", - "strip-ansi": "^7.0.1", - "through": "^2.3.6", - "wrap-ansi": "^8.0.1" - } - }, - "is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true - }, - "node-fetch": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", - "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", - "dev": true, - "requires": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - } - }, - "restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "rxjs": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.6.0.tgz", - "integrity": "sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - }, - "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, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - }, - "type-fest": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.3.0.tgz", - "integrity": "sha512-gezeeOIZyQLGW5uuCeEnXF1aXmtt2afKspXz3YqoOcZ3l/YMJq1pujvgT+cz/Nw1O/7q/kSav5fihJHsC/AOUg==", - "dev": true - }, - "wrap-ansi": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz", - "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==", - "dev": true, - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } - }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "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 - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "requireindex": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", - "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==" - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "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==" - }, - "responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "requires": { - "lowercase-keys": "^3.0.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-con": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.11.tgz", - "integrity": "sha512-NEMGsUT+cglWkzEr4IFK21P4Jca45HqiAbIIZIBdX5+UZTB24Mb/21iNGgz9xZa8tL6vbW7CXmq7MFN42+VjNQ==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~3.0.0", - "minimist": "^1.2.6", - "strip-json-comments": "~3.1.1" - } - }, - "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==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "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 - }, - "safe-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", - "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", - "dev": true, - "requires": { - "regexp-tree": "~0.1.1" - } - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "semver-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", - "dev": true, - "requires": { - "semver": "^7.3.5" - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "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==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", - "dev": true - }, - "shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "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 - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true - }, - "socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dev": true, - "requires": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "dependencies": { - "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - } - } - }, - "socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "requires": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - } - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", - "dev": true - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "requires": { - "through": "2" - } - }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "requires": { - "readable-stream": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "string.prototype.padend": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz", - "integrity": "sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - } - }, - "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "requires": { - "min-indent": "^1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "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, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "requires": { - "readable-stream": "3" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "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, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true - }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "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 - }, - "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==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", - "dev": true - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "dev": true, - "requires": { - "crypto-random-string": "^4.0.0" - } - }, - "unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dev": true, - "requires": { - "@types/unist": "^2.0.2" - } - }, - "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true - }, - "update-notifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", - "dev": true, - "requires": { - "boxen": "^7.0.0", - "chalk": "^5.0.1", - "configstore": "^6.0.0", - "has-yarn": "^3.0.0", - "import-lazy": "^4.0.0", - "is-ci": "^3.0.1", - "is-installed-globally": "^0.4.0", - "is-npm": "^6.0.0", - "is-yarn-global": "^0.4.0", - "latest-version": "^7.0.0", - "pupa": "^3.1.0", - "semver": "^7.3.7", - "semver-diff": "^4.0.0", - "xdg-basedir": "^5.1.0" - }, - "dependencies": { - "chalk": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.1.2.tgz", - "integrity": "sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==", - "dev": true - } - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-join": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", - "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vm2": { - "version": "3.9.11", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.11.tgz", - "integrity": "sha512-PFG8iJRSjvvBdisowQ7iVF580DXb1uCIiGaXgm7tynMR1uTBlv7UJlB1zdv5KJ+Tmq1f0Upnj3fayoEOPpCBKg==", - "dev": true, - "requires": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "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, - "requires": { - "string-width": "^5.0.1" - }, - "dependencies": { - "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 - }, - "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 - }, - "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, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "wildcard-match": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/wildcard-match/-/wildcard-match-5.1.2.tgz", - "integrity": "sha512-qNXwI591Z88c8bWxp+yjV60Ch4F8Riawe3iGxbzquhy8Xs9m+0+SLFBGb/0yCTIDElawtaImC37fYZ+dr32KqQ==", - "dev": true - }, - "windows-release": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-5.0.1.tgz", - "integrity": "sha512-y1xFdFvdMiDXI3xiOhMbJwt1Y7dUxidha0CWPs1NgjZIjZANTcX7+7bMqNjuezhzb8s5JGEiBAbQjQQYYy7ulw==", - "dev": true, - "requires": { - "execa": "^5.1.1" - }, - "dependencies": { - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "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, - "requires": { - "path-key": "^3.0.0" - } - }, - "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 - } - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "xdg-basedir": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", - "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", - "dev": true - }, - "xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - } - } - }, - "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==" } } } diff --git a/package.json b/package.json index 0325abd9..eaa56a34 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,24 @@ { "name": "eslint-plugin-qunit", - "version": "7.3.4", + "version": "8.0.1", "description": "ESLint plugin containing rules useful for QUnit tests.", - "main": "index.js", + "exports": { + ".": "./index.js", + "./configs/*": "./lib/configs/*.js" + }, + "main": "./index.js", "scripts": { "lint": "npm-run-all --continue-on-error --aggregate-output --parallel lint:*", "lint:docs": "markdownlint \"**/*.md\"", "lint:eslint-docs": "npm-run-all \"update:eslint-docs -- --check\"", "lint:js": "eslint --cache --report-unused-disable-directives .", + "lint:remote": "eslint-remote-tester", "preversion": "npm test", "report-coverage-html": "nyc report --reporter=html --report-dir build/coverage", "release": "release-it", "test": "npm-run-all lint test:unit", "test:unit": "nyc mocha tests/**/*.js", - "update:eslint-docs": "eslint-doc-generator --url-configs \"https://github.com/platinumazure/eslint-plugin-qunit/blob/master/README.md#configurations\"" + "update:eslint-docs": "eslint-doc-generator --url-configs \"https://github.com/platinumazure/eslint-plugin-qunit/blob/main/README.md#configurations\"" }, "files": [ "index.js", @@ -24,31 +29,39 @@ "requireindex": "^1.2.0" }, "devDependencies": { - "@release-it/conventional-changelog": "^5.1.1", - "@typescript-eslint/parser": "^5.30.5", - "all-contributors-cli": "^6.20.0", - "chai": "^4.3.6", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "^8.55.0", + "@release-it/conventional-changelog": "^7.0.2", + "@typescript-eslint/parser": "^6.7.4", + "all-contributors-cli": "^6.26.1", + "chai": "^4.3.10", "coveralls": "^3.1.1", - "eslint": "^8.19.0", - "eslint-doc-generator": "^1.0.2", + "eslint": "^8.55.0", + "eslint-config-prettier": "^9.1.0", + "eslint-doc-generator": "^1.5.1", "eslint-plugin-eslint-comments": "^3.2.0", - "eslint-plugin-eslint-plugin": "^5.0.6", - "eslint-plugin-markdown": "^3.0.0", - "eslint-plugin-mocha": "^10.0.5", + "eslint-plugin-eslint-plugin": "^5.1.1", + "eslint-plugin-markdown": "^3.0.1", + "eslint-plugin-mocha": "^10.2.0", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-unicorn": "^45.0.0", - "markdownlint-cli": "^0.32.2", - "mocha": "^10.0.0", + "eslint-plugin-prettier": "^5.0.1", + "eslint-plugin-qunit": "file:./", + "eslint-plugin-unicorn": "^51.0.1", + "eslint-remote-tester": "^3.0.1", + "globals": "^14.0.0", + "markdownlint-cli": "^0.39.0", + "mocha": "^10.2.0", "mocha-lcov-reporter": "^1.3.0", "npm-run-all": "^4.1.5", "nyc": "^15.1.0", "outdent": "^0.8.0", - "release-it": "^15.5.0", - "semver": "^7.3.7", - "typescript": "^4.7.4" + "prettier": "^3.1.0", + "release-it": "^16.2.1", + "semver": "^7.5.4", + "typescript": "^5.2.2" }, "peerDepencencies": { - "eslint": ">=7.0.0 <9.0.0" + "eslint": ">=8.38.0 <9.0.0" }, "repository": { "type": "git", @@ -67,6 +80,8 @@ "branches": 100, "exclude": [ "build/**", + "eslint-remote-tester.config.js", + "eslint.config.js", "scripts/**", "tests/**" ], @@ -83,7 +98,7 @@ }, "homepage": "https://github.com/platinumazure/eslint-plugin-qunit", "engines": { - "node": "12.x || 14.x || >=16.0.0" + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" }, "release-it": { "github": { @@ -91,7 +106,39 @@ }, "plugins": { "@release-it/conventional-changelog": { - "preset": "eslint", + "preset": { + "name": "conventionalcommits", + "types": [ + { + "type": "feat", + "section": "Features" + }, + { + "type": "fix", + "section": "Bug Fixes" + }, + { + "type": "perf", + "section": "Performance" + }, + { + "type": "docs", + "section": "Documentation" + }, + { + "type": "chore", + "section": "Chores" + }, + { + "type": "refactor", + "section": "Chores" + }, + { + "type": "test", + "section": "Chores" + } + ] + }, "infile": "CHANGELOG.md" } } diff --git a/tests/.eslintrc b/tests/.eslintrc deleted file mode 100644 index 8a30ebae..00000000 --- a/tests/.eslintrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "env": { - "node": true, - "mocha": true - } -} diff --git a/tests/index.js b/tests/index.js index 98b959dc..d2654930 100644 --- a/tests/index.js +++ b/tests/index.js @@ -10,28 +10,39 @@ const assert = require("chai").assert, { rules, configs } = require("../index"), - fs = require("fs"), - path = require("path"); + fs = require("node:fs"), + path = require("node:path"), + requireIndex = require("requireindex"), + plugin = require("../index.js"); //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ -const ruleNames = fs.readdirSync("./lib/rules").map(rawFileName => path.basename(rawFileName, ".js")); +const ruleNames = fs + .readdirSync("./lib/rules") + .map((rawFileName) => path.basename(rawFileName, ".js")); describe("index.js", function () { describe("rules", function () { for (const ruleName of ruleNames) { describe(ruleName, function () { it("should appear in rule exports", function () { - assert.property(rules, ruleName, `Rule export for ${ruleName} not present`); + assert.property( + rules, + ruleName, + `Rule export for ${ruleName} not present`, + ); }); it("should appear in tests", function (done) { const path = `./tests/lib/rules/${ruleName}.js`; fs.access(path, function (err) { - assert.notOk(err, `tests/lib/rules/${ruleName}.js should exist`); + assert.notOk( + err, + `tests/lib/rules/${ruleName}.js should exist`, + ); done(); }); }); @@ -40,7 +51,10 @@ describe("index.js", function () { const path = `./docs/rules/${ruleName}.md`; fs.access(path, function (err) { - assert.notOk(err, `docs/rules/${ruleName}.md should exist`); + assert.notOk( + err, + `docs/rules/${ruleName}.md should exist`, + ); done(); }); }); @@ -50,8 +64,10 @@ describe("index.js", function () { const fileContents = fs.readFileSync(path, "utf8"); assert.ok( - fileContents.includes("/** @type {import('eslint').Rule.RuleModule} */"), - "includes jsdoc comment for rule type" + fileContents.includes( + "/** @type {import('eslint').Rule.RuleModule} */", + ), + "includes jsdoc comment for rule type", ); }); }); @@ -59,13 +75,31 @@ describe("index.js", function () { }); describe("configs", function () { - // eslint-disable-next-line mocha/no-setup-in-describe -- rule doesn't like function calls like `Object.entries()` - for (const [configName, config] of Object.entries(configs)) { - describe(configName, function () { - it("has the right plugins", function () { - assert.deepStrictEqual(config.plugins, ["qunit"]); + describe("legacy", function () { + // eslint-disable-next-line mocha/no-setup-in-describe -- rule doesn't like function calls like `Object.entries()` + for (const [configName, config] of Object.entries(configs)) { + describe(configName, function () { + it("has the right plugins", function () { + assert.deepStrictEqual(config.plugins, ["qunit"]); + }); }); - }); - } + } + }); + + describe("flat", function () { + // eslint-disable-next-line mocha/no-setup-in-describe -- rule doesn't like function calls like `Object.entries()` + for (const [configName, config] of Object.entries( + // eslint-disable-next-line mocha/no-setup-in-describe -- rule doesn't like function calls like `Object.entries()` + requireIndex(`${__dirname}/../lib/configs`), + )) { + describe(configName, function () { + it("has the right plugins", function () { + assert.deepStrictEqual(config.plugins, { + qunit: plugin, + }); + }); + }); + } + }); }); }); diff --git a/tests/lib/rules/assert-args.js b/tests/lib/rules/assert-args.js index 49e32616..cf973039 100644 --- a/tests/lib/rules/assert-args.js +++ b/tests/lib/rules/assert-args.js @@ -31,10 +31,14 @@ ruleTester.run("assert-args", rule, { // equal testUtils.wrapInTest("equal(result, expected);"), testUtils.wrapInTest("equal(result, expected, 'Message');"), - testUtils.wrapInTest("equal(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "equal(obj[key], expected, key + ' value is true');", + ), testUtils.wrapInTest("assert.equal(result, expected);"), testUtils.wrapInTest("assert.equal(result, expected, 'Message');"), - testUtils.wrapInTest("assert.equal(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "assert.equal(obj[key], expected, key + ' value is true');", + ), // false testUtils.wrapInTest("assert.false(result);"), @@ -43,26 +47,40 @@ ruleTester.run("assert-args", rule, { // strictEqual testUtils.wrapInTest("strictEqual(result, expected);"), testUtils.wrapInTest("strictEqual(result, expected, 'Message');"), - testUtils.wrapInTest("strictEqual(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "strictEqual(obj[key], expected, key + ' value is true');", + ), testUtils.wrapInTest("assert.strictEqual(result, expected);"), - testUtils.wrapInTest("assert.strictEqual(result, expected, 'Message');"), - testUtils.wrapInTest("assert.strictEqual(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "assert.strictEqual(result, expected, 'Message');", + ), + testUtils.wrapInTest( + "assert.strictEqual(obj[key], expected, key + ' value is true');", + ), // deepEqual testUtils.wrapInTest("deepEqual(result, expected);"), testUtils.wrapInTest("deepEqual(result, expected, 'Message');"), - testUtils.wrapInTest("deepEqual(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "deepEqual(obj[key], expected, key + ' value is true');", + ), testUtils.wrapInTest("assert.deepEqual(result, expected);"), testUtils.wrapInTest("assert.deepEqual(result, expected, 'Message');"), - testUtils.wrapInTest("assert.deepEqual(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "assert.deepEqual(obj[key], expected, key + ' value is true');", + ), // propEqual testUtils.wrapInTest("propEqual(result, expected);"), testUtils.wrapInTest("propEqual(result, expected, 'Message');"), - testUtils.wrapInTest("propEqual(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "propEqual(obj[key], expected, key + ' value is true');", + ), testUtils.wrapInTest("assert.propEqual(result, expected);"), testUtils.wrapInTest("assert.propEqual(result, expected, 'Message');"), - testUtils.wrapInTest("assert.propEqual(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "assert.propEqual(obj[key], expected, key + ' value is true');", + ), // raises testUtils.wrapInTest("raises(function () {});"), @@ -71,13 +89,23 @@ ruleTester.run("assert-args", rule, { testUtils.wrapInTest("raises(function () {}, TypeError, 'Message');"), testUtils.wrapInTest("raises(function () {}, /error/, 'Message');"), testUtils.wrapInTest("raises(function () {}, 'Error', 'Message');"), - testUtils.wrapInTest("raises(function () {}, TypeError, expectedMessage);"), + testUtils.wrapInTest( + "raises(function () {}, TypeError, expectedMessage);", + ), testUtils.wrapInTest("assert.raises(function () {}, 'Message');"), - testUtils.wrapInTest("assert.raises(function () {}, TypeError, 'Message');"), + testUtils.wrapInTest( + "assert.raises(function () {}, TypeError, 'Message');", + ), testUtils.wrapInTest("assert.raises(function () {}, expectedMessage);"), - testUtils.wrapInTest("assert.raises(function () {}, /error/, 'Message');"), - testUtils.wrapInTest("assert.raises(function () {}, 'Error', 'Message');"), - testUtils.wrapInTest("assert.raises(function () {}, TypeError, expectedMessage);"), + testUtils.wrapInTest( + "assert.raises(function () {}, /error/, 'Message');", + ), + testUtils.wrapInTest( + "assert.raises(function () {}, 'Error', 'Message');", + ), + testUtils.wrapInTest( + "assert.raises(function () {}, TypeError, expectedMessage);", + ), // throws testUtils.wrapInTest("throws(function () {});"), @@ -86,13 +114,23 @@ ruleTester.run("assert-args", rule, { testUtils.wrapInTest("throws(function () {}, TypeError, 'Message');"), testUtils.wrapInTest("throws(function () {}, /error/, 'Message');"), testUtils.wrapInTest("throws(function () {}, 'Error', 'Message');"), - testUtils.wrapInTest("throws(function () {}, TypeError, expectedMessage);"), + testUtils.wrapInTest( + "throws(function () {}, TypeError, expectedMessage);", + ), testUtils.wrapInTest("assert.throws(function () {}, 'Message');"), - testUtils.wrapInTest("assert.throws(function () {}, TypeError, 'Message');"), + testUtils.wrapInTest( + "assert.throws(function () {}, TypeError, 'Message');", + ), testUtils.wrapInTest("assert.throws(function () {}, expectedMessage);"), - testUtils.wrapInTest("assert.throws(function () {}, /error/, 'Message');"), - testUtils.wrapInTest("assert.throws(function () {}, 'Error', 'Message');"), - testUtils.wrapInTest("assert.throws(function () {}, TypeError, expectedMessage);"), + testUtils.wrapInTest( + "assert.throws(function () {}, /error/, 'Message');", + ), + testUtils.wrapInTest( + "assert.throws(function () {}, 'Error', 'Message');", + ), + testUtils.wrapInTest( + "assert.throws(function () {}, TypeError, expectedMessage);", + ), // true testUtils.wrapInTest("assert.true(result);"), @@ -109,34 +147,56 @@ ruleTester.run("assert-args", rule, { // notEqual testUtils.wrapInTest("notEqual(result, expected);"), testUtils.wrapInTest("notEqual(result, expected, 'Message');"), - testUtils.wrapInTest("notEqual(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "notEqual(obj[key], expected, key + ' value is true');", + ), testUtils.wrapInTest("assert.notEqual(result, expected);"), testUtils.wrapInTest("assert.notEqual(result, expected, 'Message');"), - testUtils.wrapInTest("assert.notEqual(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "assert.notEqual(obj[key], expected, key + ' value is true');", + ), // notStrictEqual testUtils.wrapInTest("notStrictEqual(result, expected);"), testUtils.wrapInTest("notStrictEqual(result, expected, 'Message');"), - testUtils.wrapInTest("notStrictEqual(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "notStrictEqual(obj[key], expected, key + ' value is true');", + ), testUtils.wrapInTest("assert.notStrictEqual(result, expected);"), - testUtils.wrapInTest("assert.notStrictEqual(result, expected, 'Message');"), - testUtils.wrapInTest("assert.notStrictEqual(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "assert.notStrictEqual(result, expected, 'Message');", + ), + testUtils.wrapInTest( + "assert.notStrictEqual(obj[key], expected, key + ' value is true');", + ), // notDeepEqual testUtils.wrapInTest("notDeepEqual(result, expected);"), testUtils.wrapInTest("notDeepEqual(result, expected, 'Message');"), - testUtils.wrapInTest("notDeepEqual(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "notDeepEqual(obj[key], expected, key + ' value is true');", + ), testUtils.wrapInTest("assert.notDeepEqual(result, expected);"), - testUtils.wrapInTest("assert.notDeepEqual(result, expected, 'Message');"), - testUtils.wrapInTest("assert.notDeepEqual(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "assert.notDeepEqual(result, expected, 'Message');", + ), + testUtils.wrapInTest( + "assert.notDeepEqual(obj[key], expected, key + ' value is true');", + ), // notPropEqual testUtils.wrapInTest("notPropEqual(result, expected);"), testUtils.wrapInTest("notPropEqual(result, expected, 'Message');"), - testUtils.wrapInTest("notPropEqual(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "notPropEqual(obj[key], expected, key + ' value is true');", + ), testUtils.wrapInTest("assert.notPropEqual(result, expected);"), - testUtils.wrapInTest("assert.notPropEqual(result, expected, 'Message');"), - testUtils.wrapInTest("assert.notPropEqual(obj[key], expected, key + ' value is true');"), + testUtils.wrapInTest( + "assert.notPropEqual(result, expected, 'Message');", + ), + testUtils.wrapInTest( + "assert.notPropEqual(obj[key], expected, key + ' value is true');", + ), // not actually assertions testUtils.wrapInTest("notAnAssertion(result, expected);"), @@ -147,20 +207,22 @@ ruleTester.run("assert-args", rule, { testUtils.wrapInTest("assert.hasOwnProperty('prop');"), // unwrapped - "notAnAssertion(result, expected);" + "notAnAssertion(result, expected);", ], invalid: [ // ok { code: testUtils.wrapInTest("ok();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "ok", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "ok", + argCount: 0, + }, + }, + ], }, /* Allowed for now. { @@ -170,35 +232,41 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("ok(a, b, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "ok", - argCount: 3 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "ok", + argCount: 3, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.ok();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.ok", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.ok", + argCount: 0, + }, + }, + ], }, { // TypeScript: test callback is adding a type to `this` code: "QUnit.test('test', (this: LocalTestContext, assert) => { assert.ok(); });", parser: require.resolve("@typescript-eslint/parser"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.ok", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.ok", + argCount: 0, + }, + }, + ], }, /* Allowed for now. { @@ -208,35 +276,41 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("assert.ok(a, b, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "assert.ok", - argCount: 3 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "assert.ok", + argCount: 3, + }, + }, + ], }, // equal { code: testUtils.wrapInTest("equal();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "equal", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "equal", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("equal(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "equal", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "equal", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -246,33 +320,39 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("equal(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "equal", - argCount: 4 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "equal", + argCount: 4, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.equal();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.equal", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.equal", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.equal(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.equal", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.equal", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -282,79 +362,93 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("assert.equal(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "assert.equal", - argCount: 4 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "assert.equal", + argCount: 4, + }, + }, + ], }, // false { code: testUtils.wrapInTest("assert.false();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.false", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.false", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.false(a, b, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "assert.false", - argCount: 3 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "assert.false", + argCount: 3, + }, + }, + ], }, // true { code: testUtils.wrapInTest("assert.true();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.true", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.true", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.true(a, b, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "assert.true", - argCount: 3 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "assert.true", + argCount: 3, + }, + }, + ], }, // strictEqual { code: testUtils.wrapInTest("strictEqual();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "strictEqual", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "strictEqual", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("strictEqual(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "strictEqual", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "strictEqual", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -364,44 +458,52 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("strictEqual(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "strictEqual", - argCount: 4 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "strictEqual", + argCount: 4, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.strictEqual();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.strictEqual", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.strictEqual", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInArrowTest("assert.strictEqual();"), parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.strictEqual", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.strictEqual", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.strictEqual(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.strictEqual", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.strictEqual", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -410,36 +512,44 @@ ruleTester.run("assert-args", rule, { }, */ { - code: testUtils.wrapInTest("assert.strictEqual(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "assert.strictEqual", - argCount: 4 - } - }] + code: testUtils.wrapInTest( + "assert.strictEqual(a, b, c, 'Message');", + ), + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "assert.strictEqual", + argCount: 4, + }, + }, + ], }, // deepEqual { code: testUtils.wrapInTest("deepEqual();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "deepEqual", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "deepEqual", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("deepEqual(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "deepEqual", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "deepEqual", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -449,33 +559,39 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("deepEqual(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "deepEqual", - argCount: 4 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "deepEqual", + argCount: 4, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.deepEqual();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.deepEqual", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.deepEqual", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.deepEqual(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.deepEqual", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.deepEqual", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -485,35 +601,41 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("assert.deepEqual(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "assert.deepEqual", - argCount: 4 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "assert.deepEqual", + argCount: 4, + }, + }, + ], }, // propEqual { code: testUtils.wrapInTest("propEqual();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "propEqual", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "propEqual", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("propEqual(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "propEqual", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "propEqual", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -523,33 +645,39 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("propEqual(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "propEqual", - argCount: 4 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "propEqual", + argCount: 4, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.propEqual();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.propEqual", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.propEqual", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.propEqual(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.propEqual", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.propEqual", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -559,25 +687,29 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("assert.propEqual(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "assert.propEqual", - argCount: 4 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "assert.propEqual", + argCount: 4, + }, + }, + ], }, // raises { code: testUtils.wrapInTest("raises();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "raises", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "raises", + argCount: 0, + }, + }, + ], }, /* Allowed for now. { @@ -586,24 +718,30 @@ ruleTester.run("assert-args", rule, { }, */ { - code: testUtils.wrapInTest("raises(function () {}, TypeError, blah, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "raises", - argCount: 4 - } - }] + code: testUtils.wrapInTest( + "raises(function () {}, TypeError, blah, 'Message');", + ), + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "raises", + argCount: 4, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.raises();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.raises", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.raises", + argCount: 0, + }, + }, + ], }, /* Allowed for now. { @@ -612,26 +750,32 @@ ruleTester.run("assert-args", rule, { }, */ { - code: testUtils.wrapInTest("assert.raises(function () {}, TypeError, blah, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "assert.raises", - argCount: 4 - } - }] + code: testUtils.wrapInTest( + "assert.raises(function () {}, TypeError, blah, 'Message');", + ), + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "assert.raises", + argCount: 4, + }, + }, + ], }, // throws { code: testUtils.wrapInTest("throws();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "throws", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "throws", + argCount: 0, + }, + }, + ], }, /* Allowed for now. { @@ -640,24 +784,30 @@ ruleTester.run("assert-args", rule, { }, */ { - code: testUtils.wrapInTest("throws(function () {}, TypeError, blah, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "throws", - argCount: 4 - } - }] + code: testUtils.wrapInTest( + "throws(function () {}, TypeError, blah, 'Message');", + ), + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "throws", + argCount: 4, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.throws();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.throws", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.throws", + argCount: 0, + }, + }, + ], }, /* Allowed for now. { @@ -666,26 +816,32 @@ ruleTester.run("assert-args", rule, { }, */ { - code: testUtils.wrapInTest("assert.throws(function () {}, TypeError, blah, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "assert.throws", - argCount: 4 - } - }] + code: testUtils.wrapInTest( + "assert.throws(function () {}, TypeError, blah, 'Message');", + ), + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "assert.throws", + argCount: 4, + }, + }, + ], }, // notOk { code: testUtils.wrapInTest("notOk();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "notOk", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "notOk", + argCount: 0, + }, + }, + ], }, /* Allowed for now. { @@ -695,23 +851,27 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("notOk(a, b, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "notOk", - argCount: 3 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "notOk", + argCount: 3, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.notOk();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.notOk", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.notOk", + argCount: 0, + }, + }, + ], }, /* Allowed for now. { @@ -721,35 +881,41 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("assert.notOk(a, b, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "assert.notOk", - argCount: 3 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "assert.notOk", + argCount: 3, + }, + }, + ], }, // notEqual { code: testUtils.wrapInTest("notEqual();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "notEqual", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "notEqual", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("notEqual(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "notEqual", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "notEqual", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -759,33 +925,39 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("notEqual(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "notEqual", - argCount: 4 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "notEqual", + argCount: 4, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.notEqual();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.notEqual", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.notEqual", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.notEqual(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.notEqual", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.notEqual", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -795,35 +967,41 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("assert.notEqual(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "assert.notEqual", - argCount: 4 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "assert.notEqual", + argCount: 4, + }, + }, + ], }, // notStrictEqual { code: testUtils.wrapInTest("notStrictEqual();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "notStrictEqual", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "notStrictEqual", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("notStrictEqual(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "notStrictEqual", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "notStrictEqual", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -833,33 +1011,39 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("notStrictEqual(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "notStrictEqual", - argCount: 4 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "notStrictEqual", + argCount: 4, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.notStrictEqual();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.notStrictEqual", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.notStrictEqual", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.notStrictEqual(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.notStrictEqual", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.notStrictEqual", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -868,36 +1052,44 @@ ruleTester.run("assert-args", rule, { }, */ { - code: testUtils.wrapInTest("assert.notStrictEqual(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "assert.notStrictEqual", - argCount: 4 - } - }] + code: testUtils.wrapInTest( + "assert.notStrictEqual(a, b, c, 'Message');", + ), + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "assert.notStrictEqual", + argCount: 4, + }, + }, + ], }, // notDeepEqual { code: testUtils.wrapInTest("notDeepEqual();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "notDeepEqual", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "notDeepEqual", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("notDeepEqual(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "notDeepEqual", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "notDeepEqual", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -907,33 +1099,39 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("notDeepEqual(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "notDeepEqual", - argCount: 4 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "notDeepEqual", + argCount: 4, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.notDeepEqual();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.notDeepEqual", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.notDeepEqual", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.notDeepEqual(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.notDeepEqual", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.notDeepEqual", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -942,36 +1140,44 @@ ruleTester.run("assert-args", rule, { }, */ { - code: testUtils.wrapInTest("assert.notDeepEqual(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "assert.notDeepEqual", - argCount: 4 - } - }] + code: testUtils.wrapInTest( + "assert.notDeepEqual(a, b, c, 'Message');", + ), + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "assert.notDeepEqual", + argCount: 4, + }, + }, + ], }, // notPropEqual { code: testUtils.wrapInTest("notPropEqual();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "notPropEqual", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "notPropEqual", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("notPropEqual(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "notPropEqual", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "notPropEqual", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -981,33 +1187,39 @@ ruleTester.run("assert-args", rule, { */ { code: testUtils.wrapInTest("notPropEqual(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "notPropEqual", - argCount: 4 - } - }] + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "notPropEqual", + argCount: 4, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.notPropEqual();"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.notPropEqual", - argCount: 0 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.notPropEqual", + argCount: 0, + }, + }, + ], }, { code: testUtils.wrapInTest("assert.notPropEqual(a);"), - errors: [{ - messageId: "unexpectedArgCountNoMessage", - data: { - callee: "assert.notPropEqual", - argCount: 1 - } - }] + errors: [ + { + messageId: "unexpectedArgCountNoMessage", + data: { + callee: "assert.notPropEqual", + argCount: 1, + }, + }, + ], }, /* Allowed for now. { @@ -1016,14 +1228,18 @@ ruleTester.run("assert-args", rule, { }, */ { - code: testUtils.wrapInTest("assert.notPropEqual(a, b, c, 'Message');"), - errors: [{ - messageId: "unexpectedArgCount", - data: { - callee: "assert.notPropEqual", - argCount: 4 - } - }] - } - ] + code: testUtils.wrapInTest( + "assert.notPropEqual(a, b, c, 'Message');", + ), + errors: [ + { + messageId: "unexpectedArgCount", + data: { + callee: "assert.notPropEqual", + argCount: 4, + }, + }, + ], + }, + ], }); diff --git a/tests/lib/rules/literal-compare-order.js b/tests/lib/rules/literal-compare-order.js index 4af347aa..42e8186f 100644 --- a/tests/lib/rules/literal-compare-order.js +++ b/tests/lib/rules/literal-compare-order.js @@ -32,439 +32,621 @@ ruleTester.run("literal-compare-order", rule, { testUtils.wrapInTest("strictEqual(variable, 'Literal');"), testUtils.wrapInTest("strictEqual(variable, 'Literal', 'Message');"), testUtils.wrapInTest("assert.strictEqual(variable, 'Literal');"), - testUtils.wrapInTest("assert.strictEqual(variable, 'Literal', 'Message');"), + testUtils.wrapInTest( + "assert.strictEqual(variable, 'Literal', 'Message');", + ), // deepEqual testUtils.wrapInTest("deepEqual(variable, 'Literal');"), testUtils.wrapInTest("deepEqual(variable, 'Literal', 'Message');"), testUtils.wrapInTest("assert.deepEqual(variable, 'Literal');"), - testUtils.wrapInTest("assert.deepEqual(variable, 'Literal', 'Message');"), + testUtils.wrapInTest( + "assert.deepEqual(variable, 'Literal', 'Message');", + ), // propEqual testUtils.wrapInTest("propEqual(variable, 'Literal');"), testUtils.wrapInTest("propEqual(variable, 'Literal', 'Message');"), testUtils.wrapInTest("assert.propEqual(variable, 'Literal');"), - testUtils.wrapInTest("assert.propEqual(variable, 'Literal', 'Message');"), + testUtils.wrapInTest( + "assert.propEqual(variable, 'Literal', 'Message');", + ), // notEqual testUtils.wrapInTest("notEqual(variable, 'Literal');"), testUtils.wrapInTest("notEqual(variable, 'Literal', 'Message');"), testUtils.wrapInTest("assert.notEqual(variable, 'Literal');"), - testUtils.wrapInTest("assert.notEqual(variable, 'Literal', 'Message');"), + testUtils.wrapInTest( + "assert.notEqual(variable, 'Literal', 'Message');", + ), // notStrictEqual testUtils.wrapInTest("notStrictEqual(variable, 'Literal');"), testUtils.wrapInTest("notStrictEqual(variable, 'Literal', 'Message');"), testUtils.wrapInTest("assert.notStrictEqual(variable, 'Literal');"), - testUtils.wrapInTest("assert.notStrictEqual(variable, 'Literal', 'Message');"), + testUtils.wrapInTest( + "assert.notStrictEqual(variable, 'Literal', 'Message');", + ), // notDeepEqual testUtils.wrapInTest("notDeepEqual(variable, 'Literal');"), testUtils.wrapInTest("notDeepEqual(variable, 'Literal', 'Message');"), testUtils.wrapInTest("assert.notDeepEqual(variable, 'Literal');"), - testUtils.wrapInTest("assert.notDeepEqual(variable, 'Literal', 'Message');"), + testUtils.wrapInTest( + "assert.notDeepEqual(variable, 'Literal', 'Message');", + ), // notPropEqual testUtils.wrapInTest("notPropEqual(variable, 'Literal');"), testUtils.wrapInTest("notPropEqual(variable, 'Literal', 'Message');"), testUtils.wrapInTest("assert.notPropEqual(variable, 'Literal');"), - testUtils.wrapInTest("assert.notPropEqual(variable, 'Literal', 'Message');"), + testUtils.wrapInTest( + "assert.notPropEqual(variable, 'Literal', 'Message');", + ), // avoid crash in BDD-style assertions - "QUnit.test('Name', function() { expect(variable).to.equal('Literal'); });" + "QUnit.test('Name', function() { expect(variable).to.equal('Literal'); });", ], invalid: [ // equal { code: testUtils.wrapInTest("equal('Literal', variable);"), output: testUtils.wrapInTest("equal(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], }, { // TypeScript: test callback is adding a type to `this` - code: testUtils.wrapInTest("QUnit.test('test', (this: LocalTestContext) => { equal('Literal', variable); });"), - output: testUtils.wrapInTest("QUnit.test('test', (this: LocalTestContext) => { equal(variable, 'Literal'); });"), + code: testUtils.wrapInTest( + "QUnit.test('test', (this: LocalTestContext) => { equal('Literal', variable); });", + ), + output: testUtils.wrapInTest( + "QUnit.test('test', (this: LocalTestContext) => { equal(variable, 'Literal'); });", + ), parser: require.resolve("@typescript-eslint/parser"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("equal('Literal', variable, 'message');"), - output: testUtils.wrapInTest("equal(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "equal('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "equal(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], }, { code: testUtils.wrapInTest("assert.equal('Literal', variable);"), output: testUtils.wrapInTest("assert.equal(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInArrowTest("assert.equal('Literal', variable);"), - output: testUtils.wrapInArrowTest("assert.equal(variable, 'Literal');"), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInArrowTest( + "assert.equal('Literal', variable);", + ), + output: testUtils.wrapInArrowTest( + "assert.equal(variable, 'Literal');", + ), parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("assert.equal('Literal', variable, 'message');"), - output: testUtils.wrapInTest("assert.equal(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "assert.equal('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "assert.equal(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], }, // strictEqual { code: testUtils.wrapInTest("strictEqual('Literal', variable);"), output: testUtils.wrapInTest("strictEqual(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("strictEqual('Literal', variable, 'message');"), - output: testUtils.wrapInTest("strictEqual(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("assert.strictEqual('Literal', variable);"), - output: testUtils.wrapInTest("assert.strictEqual(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("assert.strictEqual('Literal', variable, 'message');"), - output: testUtils.wrapInTest("assert.strictEqual(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "strictEqual('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "strictEqual(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "assert.strictEqual('Literal', variable);", + ), + output: testUtils.wrapInTest( + "assert.strictEqual(variable, 'Literal');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "assert.strictEqual('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "assert.strictEqual(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], }, // deepEqual { code: testUtils.wrapInTest("deepEqual('Literal', variable);"), output: testUtils.wrapInTest("deepEqual(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("deepEqual('Literal', variable, 'message');"), - output: testUtils.wrapInTest("deepEqual(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("assert.deepEqual('Literal', variable);"), - output: testUtils.wrapInTest("assert.deepEqual(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("assert.deepEqual('Literal', variable, 'message');"), - output: testUtils.wrapInTest("assert.deepEqual(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "deepEqual('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "deepEqual(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "assert.deepEqual('Literal', variable);", + ), + output: testUtils.wrapInTest( + "assert.deepEqual(variable, 'Literal');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "assert.deepEqual('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "assert.deepEqual(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], }, // propEqual { code: testUtils.wrapInTest("propEqual('Literal', variable);"), output: testUtils.wrapInTest("propEqual(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("propEqual('Literal', variable, 'message');"), - output: testUtils.wrapInTest("propEqual(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("assert.propEqual('Literal', variable);"), - output: testUtils.wrapInTest("assert.propEqual(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("assert.propEqual('Literal', variable, 'message');"), - output: testUtils.wrapInTest("assert.propEqual(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "propEqual('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "propEqual(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "assert.propEqual('Literal', variable);", + ), + output: testUtils.wrapInTest( + "assert.propEqual(variable, 'Literal');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "assert.propEqual('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "assert.propEqual(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], }, // notEqual { code: testUtils.wrapInTest("notEqual('Literal', variable);"), output: testUtils.wrapInTest("notEqual(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("notEqual('Literal', variable, 'message');"), - output: testUtils.wrapInTest("notEqual(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "notEqual('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "notEqual(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], }, { code: testUtils.wrapInTest("assert.notEqual('Literal', variable);"), - output: testUtils.wrapInTest("assert.notEqual(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("assert.notEqual('Literal', variable, 'message');"), - output: testUtils.wrapInTest("assert.notEqual(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] + output: testUtils.wrapInTest( + "assert.notEqual(variable, 'Literal');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "assert.notEqual('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "assert.notEqual(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], }, // notStrictEqual { code: testUtils.wrapInTest("notStrictEqual('Literal', variable);"), - output: testUtils.wrapInTest("notStrictEqual(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("notStrictEqual('Literal', variable, 'message');"), - output: testUtils.wrapInTest("notStrictEqual(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("assert.notStrictEqual('Literal', variable);"), - output: testUtils.wrapInTest("assert.notStrictEqual(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("assert.notStrictEqual('Literal', variable, 'message');"), - output: testUtils.wrapInTest("assert.notStrictEqual(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] + output: testUtils.wrapInTest( + "notStrictEqual(variable, 'Literal');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "notStrictEqual('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "notStrictEqual(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "assert.notStrictEqual('Literal', variable);", + ), + output: testUtils.wrapInTest( + "assert.notStrictEqual(variable, 'Literal');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "assert.notStrictEqual('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "assert.notStrictEqual(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], }, // notDeepEqual { code: testUtils.wrapInTest("notDeepEqual('Literal', variable);"), output: testUtils.wrapInTest("notDeepEqual(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("notDeepEqual('Literal', variable, 'message');"), - output: testUtils.wrapInTest("notDeepEqual(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("assert.notDeepEqual('Literal', variable);"), - output: testUtils.wrapInTest("assert.notDeepEqual(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("assert.notDeepEqual('Literal', variable, 'message');"), - output: testUtils.wrapInTest("assert.notDeepEqual(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "notDeepEqual('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "notDeepEqual(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "assert.notDeepEqual('Literal', variable);", + ), + output: testUtils.wrapInTest( + "assert.notDeepEqual(variable, 'Literal');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "assert.notDeepEqual('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "assert.notDeepEqual(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], }, // notPropEqual { code: testUtils.wrapInTest("notPropEqual('Literal', variable);"), output: testUtils.wrapInTest("notPropEqual(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("notPropEqual('Literal', variable, 'message');"), - output: testUtils.wrapInTest("notPropEqual(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("assert.notPropEqual('Literal', variable);"), - output: testUtils.wrapInTest("assert.notPropEqual(variable, 'Literal');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - }, - { - code: testUtils.wrapInTest("assert.notPropEqual('Literal', variable, 'message');"), - output: testUtils.wrapInTest("assert.notPropEqual(variable, 'Literal', 'message');"), - errors: [{ - messageId: "actualFirst", - data: { - expected: "'Literal'", - actual: "variable" - } - }] - } - ] + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "notPropEqual('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "notPropEqual(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "assert.notPropEqual('Literal', variable);", + ), + output: testUtils.wrapInTest( + "assert.notPropEqual(variable, 'Literal');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + { + code: testUtils.wrapInTest( + "assert.notPropEqual('Literal', variable, 'message');", + ), + output: testUtils.wrapInTest( + "assert.notPropEqual(variable, 'Literal', 'message');", + ), + errors: [ + { + messageId: "actualFirst", + data: { + expected: "'Literal'", + actual: "variable", + }, + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-arrow-tests.js b/tests/lib/rules/no-arrow-tests.js index 88b137e4..4816678a 100644 --- a/tests/lib/rules/no-arrow-tests.js +++ b/tests/lib/rules/no-arrow-tests.js @@ -14,16 +14,14 @@ const rule = require("../../../lib/rules/no-arrow-tests"), RuleTester = require("eslint").RuleTester, outdent = require("outdent"); - //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ const ruleTester = new RuleTester({ - parserOptions: { ecmaVersion: 2017 } + parserOptions: { ecmaVersion: 2017 }, }); ruleTester.run("no-arrow-tests", rule, { - valid: [ // tests "QUnit.test('test', function (assert) { assert.ok(true); });", @@ -53,7 +51,7 @@ ruleTester.run("no-arrow-tests", rule, { beforeEach: () => {}, afterEach: () => {} }; - ` + `, ], invalid: [ @@ -61,228 +59,282 @@ ruleTester.run("no-arrow-tests", rule, { { code: "QUnit.test('test', (assert) => { assert.ok(true); });", output: "QUnit.test('test', function(assert) { assert.ok(true); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { // TypeScript: test callback is adding a type to `this` code: "QUnit.test('test', (this: LocalTestContext, assert) => { assert.ok(true); });", output: "QUnit.test('test', function(this: LocalTestContext, assert) { assert.ok(true); });", parser: require.resolve("@typescript-eslint/parser"), - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "QUnit.test('test', () => { ok(true); });", output: "QUnit.test('test', function() { ok(true); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "QUnit.asyncTest('test', (assert) => { assert.ok(true); });", output: "QUnit.asyncTest('test', function(assert) { assert.ok(true); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "QUnit.asyncTest('test', () => { ok(true); });", output: "QUnit.asyncTest('test', function() { ok(true); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "test('test', (assert) => { assert.ok(true); });", output: "test('test', function(assert) { assert.ok(true); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "test('test', () => { ok(true); });", output: "test('test', function() { ok(true); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "asyncTest('test', (assert) => { assert.ok(true); });", output: "asyncTest('test', function(assert) { assert.ok(true); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "asyncTest('test', () => { ok(true); });", output: "asyncTest('test', function() { ok(true); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, // modules { code: "QUnit.module('module', { setup: () => {} });", output: "QUnit.module('module', { setup: function() {} });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "QUnit.module('module', { teardown: () => {} });", output: "QUnit.module('module', { teardown: function() {} });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "QUnit.module('module', { beforeEach: () => {} });", output: "QUnit.module('module', { beforeEach: function() {} });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "QUnit.module('module', { afterEach: () => {} });", output: "QUnit.module('module', { afterEach: function() {} });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "module('module', { setup: () => {} });", output: "module('module', { setup: function() {} });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "module('module', { teardown: () => {} });", output: "module('module', { teardown: function() {} });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "module('module', { beforeEach: () => {} });", output: "module('module', { beforeEach: function() {} });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "module('module', { afterEach: () => {} });", output: "module('module', { afterEach: function() {} });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, // No function body { code: "QUnit.test('test', () => ok(true));", output: "QUnit.test('test', function() { return ok(true); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, // Async function { code: "QUnit.test('test', async () => { assert.ok(false) })", output: "QUnit.test('test', async function() { assert.ok(false) })", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, // Comment placement { code: "QUnit.test('a test 1', /* comment */ assert => { assert.ok(true); });", output: "QUnit.test('a test 1', /* comment */ function(assert) { assert.ok(true); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "QUnit.test('a test 2', (assert /* comment */) => { assert.ok(true); });", output: "QUnit.test('a test 2', function(assert /* comment */) { assert.ok(true); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "QUnit.test('a test 3', (assert) /* comment */ => { assert.ok(true); });", output: "QUnit.test('a test 3', function(assert)/* comment */ { assert.ok(true); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "QUnit.test('a test 4', (assert) => /* comment */ { assert.ok(true); });", output: "QUnit.test('a test 4', function(assert)/* comment */ { assert.ok(true); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "QUnit.test('a test 5', (/* assert */) => { noop(); });", output: "QUnit.test('a test 5', function(/* assert */) { noop(); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "QUnit.test('a test 6', assert /* comment */ =>\n{ assert.ok(true); }\n);", output: "QUnit.test('a test 6', function(assert/* comment */) { assert.ok(true); }\n);", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "QUnit.test('a test 7', assert /* comment */ => { assert.ok(true); });", output: "QUnit.test('a test 7', function(assert/* comment */) { assert.ok(true); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], }, { code: "QUnit.test('a test 8', assert => /* comment */ { assert.ok(true); });", output: "QUnit.test('a test 8', function(assert)/* comment */ { assert.ok(true); });", - errors: [{ - messageId: "noArrowFunction", - type: "ArrowFunctionExpression" - }] - } - ] + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-assert-equal-boolean.js b/tests/lib/rules/no-assert-equal-boolean.js index 6d0aad27..5534a58b 100644 --- a/tests/lib/rules/no-assert-equal-boolean.js +++ b/tests/lib/rules/no-assert-equal-boolean.js @@ -52,7 +52,7 @@ ruleTester.run("no-assert-equal-boolean", rule, { "QUnit.test('Name', function (assert) { assert.propEqual(a, true); });", // not within test context - "equal(a, true);" + "equal(a, true);", ], invalid: [ @@ -60,94 +60,94 @@ ruleTester.run("no-assert-equal-boolean", rule, { { code: "QUnit.test('Name', function (assert) { assert.equal(a, true); });", output: "QUnit.test('Name', function (assert) { assert.true(a); });", - errors: [{ messageId: "useAssertTrueOrFalse" }] + errors: [{ messageId: "useAssertTrueOrFalse" }], }, { code: "QUnit.test('Name', (assert) => { assert.equal(a, true); });", output: "QUnit.test('Name', (assert) => { assert.true(a); });", parserOptions: { ecmaVersion: 6 }, - errors: [{ messageId: "useAssertTrueOrFalse" }] + errors: [{ messageId: "useAssertTrueOrFalse" }], }, { code: "QUnit.test('Name', function (assert) { assert.equal(a, false); });", output: "QUnit.test('Name', function (assert) { assert.false(a); });", - errors: [{ messageId: "useAssertTrueOrFalse" }] + errors: [{ messageId: "useAssertTrueOrFalse" }], }, // deepEqual { code: "QUnit.test('Name', function (assert) { assert.deepEqual(a, true); });", output: "QUnit.test('Name', function (assert) { assert.true(a); });", - errors: [{ messageId: "useAssertTrueOrFalse" }] + errors: [{ messageId: "useAssertTrueOrFalse" }], }, // strictEqual { code: "QUnit.test('Name', function (assert) { assert.strictEqual(a, true); });", output: "QUnit.test('Name', function (assert) { assert.true(a); });", - errors: [{ messageId: "useAssertTrueOrFalse" }] + errors: [{ messageId: "useAssertTrueOrFalse" }], }, // with message param { code: "QUnit.test('Name', function (assert) { assert.equal(a, true, 'msg'); });", output: "QUnit.test('Name', function (assert) { assert.true(a, 'msg'); });", - errors: [{ messageId: "useAssertTrueOrFalse" }] + errors: [{ messageId: "useAssertTrueOrFalse" }], }, // Boolean as first parameter { code: "QUnit.test('Name', function (assert) { assert.equal(true, b); });", output: "QUnit.test('Name', function (assert) { assert.true(b); });", - errors: [{ messageId: "useAssertTrueOrFalse" }] + errors: [{ messageId: "useAssertTrueOrFalse" }], }, { code: "QUnit.test('Name', function (assert) { assert.equal(false, b); });", output: "QUnit.test('Name', function (assert) { assert.false(b); });", - errors: [{ messageId: "useAssertTrueOrFalse" }] + errors: [{ messageId: "useAssertTrueOrFalse" }], }, // multiple booleans { code: "QUnit.test('Name', function (assert) { assert.equal(true, true); });", output: "QUnit.test('Name', function (assert) { assert.true(true); });", - errors: [{ messageId: "useAssertTrueOrFalse" }] + errors: [{ messageId: "useAssertTrueOrFalse" }], }, { code: "QUnit.test('Name', function (assert) { assert.equal(false, true); });", output: "QUnit.test('Name', function (assert) { assert.false(true); });", - errors: [{ messageId: "useAssertTrueOrFalse" }] + errors: [{ messageId: "useAssertTrueOrFalse" }], }, { code: "QUnit.test('Name', function (assert) { assert.equal(true, false); });", output: "QUnit.test('Name', function (assert) { assert.true(false); });", - errors: [{ messageId: "useAssertTrueOrFalse" }] + errors: [{ messageId: "useAssertTrueOrFalse" }], }, { code: "QUnit.test('Name', function (assert) { assert.equal(false, false); });", output: "QUnit.test('Name', function (assert) { assert.false(false); });", - errors: [{ messageId: "useAssertTrueOrFalse" }] + errors: [{ messageId: "useAssertTrueOrFalse" }], }, // non-standard assert param { code: "QUnit.test('Name', function (foo) { foo.equal(true, b); });", output: "QUnit.test('Name', function (foo) { foo.true(b); });", - errors: [{ messageId: "useAssertTrueOrFalse" }] + errors: [{ messageId: "useAssertTrueOrFalse" }], }, // assert param but using global assert { code: "QUnit.test('Name', function (assert) { equal(a, true); });", output: "QUnit.test('Name', function (assert) { true(a); });", - errors: [{ messageId: "useAssertTrueOrFalse" }] + errors: [{ messageId: "useAssertTrueOrFalse" }], }, // using global assert { code: "QUnit.test('Name', function () { equal(a, true); });", output: "QUnit.test('Name', function () { true(a); });", - errors: [{ messageId: "useAssertTrueOrFalse" }] + errors: [{ messageId: "useAssertTrueOrFalse" }], }, // TypeScript: test callback is adding a type to `this` @@ -155,7 +155,7 @@ ruleTester.run("no-assert-equal-boolean", rule, { code: "QUnit.test('Name', function (this: LocalTestContext, assert) { assert.equal(a, true); });", output: "QUnit.test('Name', function (this: LocalTestContext, assert) { assert.true(a); });", parser: require.resolve("@typescript-eslint/parser"), - errors: [{ messageId: "useAssertTrueOrFalse" }] - } - ] + errors: [{ messageId: "useAssertTrueOrFalse" }], + }, + ], }); diff --git a/tests/lib/rules/no-assert-equal.js b/tests/lib/rules/no-assert-equal.js index 603e2251..c9598f7a 100644 --- a/tests/lib/rules/no-assert-equal.js +++ b/tests/lib/rules/no-assert-equal.js @@ -36,142 +36,154 @@ ruleTester.run("no-assert-equal", rule, { // global `equal` but not within test context { code: "equal(a, b);", - globals: { equal: true } + globals: { equal: true }, }, // `equal` but not the global - "function equal(a,b) {}; QUnit.test('Name', function () { equal(a, b); });" + "function equal(a,b) {}; QUnit.test('Name', function () { equal(a, b); });", ], invalid: [ { code: "QUnit.test('Name', function (assert) { assert.equal(a, b); });", - errors: [{ - messageId: "unexpectedAssertEqual", - data: { assertVar: "assert" }, - suggestions: [ - { - messageId: "switchToDeepEqual", - output: "QUnit.test('Name', function (assert) { assert.deepEqual(a, b); });" - }, - { - messageId: "switchToPropEqual", - output: "QUnit.test('Name', function (assert) { assert.propEqual(a, b); });" - }, - { - messageId: "switchToStrictEqual", - output: "QUnit.test('Name', function (assert) { assert.strictEqual(a, b); });" - } - ] - }] + errors: [ + { + messageId: "unexpectedAssertEqual", + data: { assertVar: "assert" }, + suggestions: [ + { + messageId: "switchToDeepEqual", + output: "QUnit.test('Name', function (assert) { assert.deepEqual(a, b); });", + }, + { + messageId: "switchToPropEqual", + output: "QUnit.test('Name', function (assert) { assert.propEqual(a, b); });", + }, + { + messageId: "switchToStrictEqual", + output: "QUnit.test('Name', function (assert) { assert.strictEqual(a, b); });", + }, + ], + }, + ], }, { code: "QUnit.test('Name', (assert) => { assert.equal(a, b); });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "unexpectedAssertEqual", - data: { assertVar: "assert" }, - suggestions: [ - { - messageId: "switchToDeepEqual", - output: "QUnit.test('Name', (assert) => { assert.deepEqual(a, b); });" - }, - { - messageId: "switchToPropEqual", - output: "QUnit.test('Name', (assert) => { assert.propEqual(a, b); });" - }, - { - messageId: "switchToStrictEqual", - output: "QUnit.test('Name', (assert) => { assert.strictEqual(a, b); });" - } - ] - }] + errors: [ + { + messageId: "unexpectedAssertEqual", + data: { assertVar: "assert" }, + suggestions: [ + { + messageId: "switchToDeepEqual", + output: "QUnit.test('Name', (assert) => { assert.deepEqual(a, b); });", + }, + { + messageId: "switchToPropEqual", + output: "QUnit.test('Name', (assert) => { assert.propEqual(a, b); });", + }, + { + messageId: "switchToStrictEqual", + output: "QUnit.test('Name', (assert) => { assert.strictEqual(a, b); });", + }, + ], + }, + ], }, { code: "QUnit.test('Name', function (foo) { foo.equal(a, b); });", - errors: [{ - messageId: "unexpectedAssertEqual", - data: { assertVar: "foo" }, - suggestions: [ - { - messageId: "switchToDeepEqual", - output: "QUnit.test('Name', function (foo) { foo.deepEqual(a, b); });" - }, - { - messageId: "switchToPropEqual", - output: "QUnit.test('Name', function (foo) { foo.propEqual(a, b); });" - }, - { - messageId: "switchToStrictEqual", - output: "QUnit.test('Name', function (foo) { foo.strictEqual(a, b); });" - } - ] - }] + errors: [ + { + messageId: "unexpectedAssertEqual", + data: { assertVar: "foo" }, + suggestions: [ + { + messageId: "switchToDeepEqual", + output: "QUnit.test('Name', function (foo) { foo.deepEqual(a, b); });", + }, + { + messageId: "switchToPropEqual", + output: "QUnit.test('Name', function (foo) { foo.propEqual(a, b); });", + }, + { + messageId: "switchToStrictEqual", + output: "QUnit.test('Name', function (foo) { foo.strictEqual(a, b); });", + }, + ], + }, + ], }, { code: "QUnit.test('Name', function (assert) { equal(a, b); });", globals: { equal: true }, - errors: [{ - messageId: "unexpectedGlobalEqual", - suggestions: [ - { - messageId: "switchToDeepEqual", - output: "QUnit.test('Name', function (assert) { deepEqual(a, b); });" - }, - { - messageId: "switchToPropEqual", - output: "QUnit.test('Name', function (assert) { propEqual(a, b); });" - }, - { - messageId: "switchToStrictEqual", - output: "QUnit.test('Name', function (assert) { strictEqual(a, b); });" - } - ] - }] + errors: [ + { + messageId: "unexpectedGlobalEqual", + suggestions: [ + { + messageId: "switchToDeepEqual", + output: "QUnit.test('Name', function (assert) { deepEqual(a, b); });", + }, + { + messageId: "switchToPropEqual", + output: "QUnit.test('Name', function (assert) { propEqual(a, b); });", + }, + { + messageId: "switchToStrictEqual", + output: "QUnit.test('Name', function (assert) { strictEqual(a, b); });", + }, + ], + }, + ], }, { code: "QUnit.test('Name', function () { equal(a, b); });", globals: { equal: true }, - errors: [{ - messageId: "unexpectedGlobalEqual", - suggestions: [ - { - messageId: "switchToDeepEqual", - output: "QUnit.test('Name', function () { deepEqual(a, b); });" - }, - { - messageId: "switchToPropEqual", - output: "QUnit.test('Name', function () { propEqual(a, b); });" - }, - { - messageId: "switchToStrictEqual", - output: "QUnit.test('Name', function () { strictEqual(a, b); });" - } - ] - }] + errors: [ + { + messageId: "unexpectedGlobalEqual", + suggestions: [ + { + messageId: "switchToDeepEqual", + output: "QUnit.test('Name', function () { deepEqual(a, b); });", + }, + { + messageId: "switchToPropEqual", + output: "QUnit.test('Name', function () { propEqual(a, b); });", + }, + { + messageId: "switchToStrictEqual", + output: "QUnit.test('Name', function () { strictEqual(a, b); });", + }, + ], + }, + ], }, { // TypeScript: test callback is adding a type to `this` code: "QUnit.test('Name', function (this: LocalTestContext, assert) { assert.equal(a, b); });", parser: require.resolve("@typescript-eslint/parser"), - errors: [{ - messageId: "unexpectedAssertEqual", - data: { assertVar: "assert" }, - suggestions: [ - { - messageId: "switchToDeepEqual", - output: "QUnit.test('Name', function (this: LocalTestContext, assert) { assert.deepEqual(a, b); });" - }, - { - messageId: "switchToPropEqual", - output: "QUnit.test('Name', function (this: LocalTestContext, assert) { assert.propEqual(a, b); });" - }, - { - messageId: "switchToStrictEqual", - output: "QUnit.test('Name', function (this: LocalTestContext, assert) { assert.strictEqual(a, b); });" - } - ] - }] - } - ] + errors: [ + { + messageId: "unexpectedAssertEqual", + data: { assertVar: "assert" }, + suggestions: [ + { + messageId: "switchToDeepEqual", + output: "QUnit.test('Name', function (this: LocalTestContext, assert) { assert.deepEqual(a, b); });", + }, + { + messageId: "switchToPropEqual", + output: "QUnit.test('Name', function (this: LocalTestContext, assert) { assert.propEqual(a, b); });", + }, + { + messageId: "switchToStrictEqual", + output: "QUnit.test('Name', function (this: LocalTestContext, assert) { assert.strictEqual(a, b); });", + }, + ], + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-assert-logical-expression.js b/tests/lib/rules/no-assert-logical-expression.js index c3f9d2d7..6338f9b4 100644 --- a/tests/lib/rules/no-assert-logical-expression.js +++ b/tests/lib/rules/no-assert-logical-expression.js @@ -18,7 +18,6 @@ const rule = require("../../../lib/rules/no-assert-logical-expression"), const ruleTester = new RuleTester(); ruleTester.run("no-assert-logical-expression", rule, { - valid: [ // Simple assertions testUtils.wrapInTest("assert.ok(foo);"), @@ -37,438 +36,538 @@ ruleTester.run("no-assert-logical-expression", rule, { testUtils.wrapInTest("assert.true(foo);"), // Logical expressions inside raises/throw blocks are fine - testUtils.wrapInTest("assert.raises(function () { throw (foo || bar); });"), - testUtils.wrapInTest("assert.throws(function () { throw (foo || bar); });"), + testUtils.wrapInTest( + "assert.raises(function () { throw (foo || bar); });", + ), + testUtils.wrapInTest( + "assert.throws(function () { throw (foo || bar); });", + ), // Messages can have logical expressions. - testUtils.wrapInTest("assert.ok(foo, message || 'alternative message');"), - testUtils.wrapInTest("assert.equal(foo, bar, message || 'alternative message');"), + testUtils.wrapInTest( + "assert.ok(foo, message || 'alternative message');", + ), + testUtils.wrapInTest( + "assert.equal(foo, bar, message || 'alternative message');", + ), // Not an assertion, not in a test - "doSomething(foo && bar);" + "doSomething(foo && bar);", ], invalid: [ { code: testUtils.wrapInTest("assert.ok(foo && bar);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 50 - }] + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 50, + }, + ], }, { // TypeScript: test callback is adding a type to `this` code: "QUnit.test('test', (this: LocalTestContext, assert) => { assert.ok(foo && bar); });", parser: require.resolve("@typescript-eslint/parser"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 68 - }] + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 68, + }, + ], }, { code: testUtils.wrapInArrowTest("assert.ok(foo && bar);"), parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 44 - }] + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 44, + }, + ], }, { code: testUtils.wrapInTest("assert.ok(foo || bar);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 50 - }] + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 50, + }, + ], }, { code: testUtils.wrapInTest("assert.notOk(foo && bar);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 53 - }] + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 53, + }, + ], }, { code: testUtils.wrapInTest("assert.notOk(foo || bar);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 53 - }] + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 53, + }, + ], }, { code: testUtils.wrapInTest("assert.equal(foo && bar, baz && lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 53 - }, { - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 65 - }] + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 53, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 65, + }, + ], }, { code: testUtils.wrapInTest("assert.equal(foo || bar, baz || lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 53 - }, { - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 65 - }] + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 53, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 65, + }, + ], }, { - code: testUtils.wrapInTest("assert.strictEqual(foo && bar, baz && lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 59 - }, { - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 71 - }] + code: testUtils.wrapInTest( + "assert.strictEqual(foo && bar, baz && lol);", + ), + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 59, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 71, + }, + ], }, { - code: testUtils.wrapInTest("assert.strictEqual(foo || bar, baz || lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 59 - }, { - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 71 - }] + code: testUtils.wrapInTest( + "assert.strictEqual(foo || bar, baz || lol);", + ), + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 59, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 71, + }, + ], }, { - code: testUtils.wrapInTest("assert.deepEqual(foo && bar, baz && lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 57 - }, { - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 69 - }] + code: testUtils.wrapInTest( + "assert.deepEqual(foo && bar, baz && lol);", + ), + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 57, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 69, + }, + ], }, { - code: testUtils.wrapInTest("assert.deepEqual(foo || bar, baz || lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 57 - }, { - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 69 - }] + code: testUtils.wrapInTest( + "assert.deepEqual(foo || bar, baz || lol);", + ), + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 57, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 69, + }, + ], }, { - code: testUtils.wrapInTest("assert.propEqual(foo && bar, baz && lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 57 - }, { - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 69 - }] + code: testUtils.wrapInTest( + "assert.propEqual(foo && bar, baz && lol);", + ), + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 57, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 69, + }, + ], }, { - code: testUtils.wrapInTest("assert.propEqual(foo || bar, baz || lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 57 - }, { - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 69 - }] + code: testUtils.wrapInTest( + "assert.propEqual(foo || bar, baz || lol);", + ), + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 57, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 69, + }, + ], }, { - code: testUtils.wrapInTest("assert.notEqual(foo && bar, baz && lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 56 - }, { - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 68 - }] + code: testUtils.wrapInTest( + "assert.notEqual(foo && bar, baz && lol);", + ), + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 56, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 68, + }, + ], }, { - code: testUtils.wrapInTest("assert.notEqual(foo || bar, baz || lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 56 - }, { - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 68 - }] + code: testUtils.wrapInTest( + "assert.notEqual(foo || bar, baz || lol);", + ), + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 56, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 68, + }, + ], }, { - code: testUtils.wrapInTest("assert.notStrictEqual(foo && bar, baz && lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 62 - }, { - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 74 - }] + code: testUtils.wrapInTest( + "assert.notStrictEqual(foo && bar, baz && lol);", + ), + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 62, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 74, + }, + ], }, { - code: testUtils.wrapInTest("assert.notStrictEqual(foo || bar, baz || lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 62 - }, { - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 74 - }] + code: testUtils.wrapInTest( + "assert.notStrictEqual(foo || bar, baz || lol);", + ), + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 62, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 74, + }, + ], }, { - code: testUtils.wrapInTest("assert.notDeepEqual(foo && bar, baz && lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 60 - }, { - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 72 - }] + code: testUtils.wrapInTest( + "assert.notDeepEqual(foo && bar, baz && lol);", + ), + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 60, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 72, + }, + ], }, { - code: testUtils.wrapInTest("assert.notDeepEqual(foo || bar, baz || lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 60 - }, { - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 72 - }] + code: testUtils.wrapInTest( + "assert.notDeepEqual(foo || bar, baz || lol);", + ), + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 60, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 72, + }, + ], }, { - code: testUtils.wrapInTest("assert.notPropEqual(foo && bar, baz && lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 60 - }, { - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 72 - }] + code: testUtils.wrapInTest( + "assert.notPropEqual(foo && bar, baz && lol);", + ), + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 60, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 72, + }, + ], }, { - code: testUtils.wrapInTest("assert.notPropEqual(foo || bar, baz || lol);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 60 - }, { - messageId: "noLogicalOperator", - data: { - operator: "||" - }, - type: "LogicalExpression", - line: 1, - column: 72 - }] + code: testUtils.wrapInTest( + "assert.notPropEqual(foo || bar, baz || lol);", + ), + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 60, + }, + { + messageId: "noLogicalOperator", + data: { + operator: "||", + }, + type: "LogicalExpression", + line: 1, + column: 72, + }, + ], }, // Boolean assertions { code: testUtils.wrapInTest("assert.true(foo && bar);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 52 - }] + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 52, + }, + ], }, { code: testUtils.wrapInTest("assert.false(foo && bar);"), - errors: [{ - messageId: "noLogicalOperator", - data: { - operator: "&&" - }, - type: "LogicalExpression", - line: 1, - column: 53 - }] - } - ] + errors: [ + { + messageId: "noLogicalOperator", + data: { + operator: "&&", + }, + type: "LogicalExpression", + line: 1, + column: 53, + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-assert-ok.js b/tests/lib/rules/no-assert-ok.js index 66545168..7c85b99c 100644 --- a/tests/lib/rules/no-assert-ok.js +++ b/tests/lib/rules/no-assert-ok.js @@ -33,88 +33,106 @@ ruleTester.run("no-assert-ok", rule, { "QUnit.test('Name', function () { propEqual(a, b); });", // equal is not within test context - "equal(a, b);" + "equal(a, b);", ], invalid: [ { code: "QUnit.test('Name', function (assert) { assert.ok(a); });", - errors: [{ - messageId: "unexpectedLocalOkNotOk", - data: { - assertVar: "assert", - assertion: "ok" - } - }] + errors: [ + { + messageId: "unexpectedLocalOkNotOk", + data: { + assertVar: "assert", + assertion: "ok", + }, + }, + ], }, { code: "QUnit.test('Name', (assert) => { assert.ok(a); });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "unexpectedLocalOkNotOk", - data: { - assertVar: "assert", - assertion: "ok" - } - }] + errors: [ + { + messageId: "unexpectedLocalOkNotOk", + data: { + assertVar: "assert", + assertion: "ok", + }, + }, + ], }, { code: "QUnit.test('Name', function (foo) { foo.ok(a); });", - errors: [{ - messageId: "unexpectedLocalOkNotOk", - data: { - assertVar: "foo", - assertion: "ok" - } - }] + errors: [ + { + messageId: "unexpectedLocalOkNotOk", + data: { + assertVar: "foo", + assertion: "ok", + }, + }, + ], }, { code: "QUnit.test('Name', function (assert) { assert.notOk(a); });", - errors: [{ - messageId: "unexpectedLocalOkNotOk", - data: { - assertVar: "assert", - assertion: "notOk" - } - }] + errors: [ + { + messageId: "unexpectedLocalOkNotOk", + data: { + assertVar: "assert", + assertion: "notOk", + }, + }, + ], }, { code: "QUnit.test('Name', function (foo) { foo.notOk(a); });", - errors: [{ - messageId: "unexpectedLocalOkNotOk", - data: { - assertVar: "foo", - assertion: "notOk" - } - }] + errors: [ + { + messageId: "unexpectedLocalOkNotOk", + data: { + assertVar: "foo", + assertion: "notOk", + }, + }, + ], }, { code: "QUnit.test('Name', function (assert) { ok(a, b); });", - errors: [{ - messageId: "unexpectedGlobalOkNotOk", - data: { assertion: "ok" } - }] + errors: [ + { + messageId: "unexpectedGlobalOkNotOk", + data: { assertion: "ok" }, + }, + ], }, { code: "QUnit.test('Name', function (assert) { notOk(a, b); });", - errors: [{ - messageId: "unexpectedGlobalOkNotOk", - data: { assertion: "notOk" } - }] + errors: [ + { + messageId: "unexpectedGlobalOkNotOk", + data: { assertion: "notOk" }, + }, + ], }, { code: "QUnit.test('Name', function () { ok(a, b); });", - errors: [{ - messageId: "unexpectedGlobalOkNotOk", - data: { assertion: "ok" } - }] + errors: [ + { + messageId: "unexpectedGlobalOkNotOk", + data: { assertion: "ok" }, + }, + ], }, { code: "QUnit.test('Name', function () { notOk(a, b); });", - errors: [{ - messageId: "unexpectedGlobalOkNotOk", - data: { assertion: "notOk" } - }] - } - ] + errors: [ + { + messageId: "unexpectedGlobalOkNotOk", + data: { assertion: "notOk" }, + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-async-in-loops.js b/tests/lib/rules/no-async-in-loops.js index 598a05f5..dc1a0756 100644 --- a/tests/lib/rules/no-async-in-loops.js +++ b/tests/lib/rules/no-async-in-loops.js @@ -18,7 +18,6 @@ const rule = require("../../../lib/rules/no-async-in-loops"), const ruleTester = new RuleTester(); ruleTester.run("no-async-in-loops", rule, { - valid: [ // stop()/start() "test('name', function () { stop(); start(); });", @@ -26,639 +25,748 @@ ruleTester.run("no-async-in-loops", rule, { // assert.async() "test('name', function (assert) { var done = assert.async(); });", - "asyncTest('name', function (assert) { var done = assert.async(); });" + "asyncTest('name', function (assert) { var done = assert.async(); });", ], invalid: [ // stop() { code: "test('name', function () { while (false) stop(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { while (false) { stop(); } });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { do stop(); while (false); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "do-while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "do-while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { do { stop(); } while (false); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "do-while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "do-while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (;;) stop(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "for loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "for loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (;;) { stop(); } });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "for loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "for loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i in x) stop(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "for-in loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "for-in loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i in x) { stop(); } });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "for-in loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "for-in loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i of x) stop(); });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "for-of loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "for-of loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i of x) { stop(); } });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "for-of loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "for-of loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, // QUnit.stop() { code: "test('name', function () { while (false) QUnit.stop(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { while (false) { QUnit.stop(); } });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { do QUnit.stop(); while (false); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "do-while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "do-while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { do { QUnit.stop(); } while (false); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "do-while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "do-while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (;;) QUnit.stop(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "for loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "for loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (;;) { QUnit.stop(); } });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "for loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "for loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i in x) QUnit.stop(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "for-in loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "for-in loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i in x) { QUnit.stop(); } });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "for-in loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "for-in loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i of x) QUnit.stop(); });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "for-of loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "for-of loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i of x) { QUnit.stop(); } });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "stop()", - loopTypeText: "for-of loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "stop()", + loopTypeText: "for-of loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, // start() { code: "test('name', function () { while (false) start(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { while (false) { start(); } });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { do start(); while (false); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "do-while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "do-while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { do { start(); } while (false); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "do-while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "do-while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (;;) start(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "for loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "for loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (;;) { start(); } });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "for loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "for loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i in x) start(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "for-in loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "for-in loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i in x) { start(); } });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "for-in loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "for-in loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i of x) start(); });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "for-of loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "for-of loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i of x) { start(); } });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "for-of loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "for-of loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, // QUnit.start() { code: "test('name', function () { while (false) QUnit.start(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { while (false) { QUnit.start(); } });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { do QUnit.start(); while (false); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "do-while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "do-while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { do { QUnit.start(); } while (false); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "do-while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "do-while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (;;) QUnit.start(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "for loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "for loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (;;) { QUnit.start(); } });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "for loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "for loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i in x) QUnit.start(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "for-in loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "for-in loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i in x) { QUnit.start(); } });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "for-in loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "for-in loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i of x) QUnit.start(); });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "for-of loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "for-of loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function () { for (i of x) { QUnit.start(); } });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "start()", - loopTypeText: "for-of loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "start()", + loopTypeText: "for-of loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, // assert.async() { code: "test('name', function (assert) { while (false) assert.async(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "assert.async()", - loopTypeText: "while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "assert.async()", + loopTypeText: "while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { // TypeScript: test callback is adding a type to `this` code: "test('name', function (this: LocalTestContext, assert) { while (false) assert.async(); });", parser: require.resolve("@typescript-eslint/parser"), - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "assert.async()", - loopTypeText: "while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "assert.async()", + loopTypeText: "while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', (assert) => { while (false) assert.async(); });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "assert.async()", - loopTypeText: "while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "assert.async()", + loopTypeText: "while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function (assert) { while (false) { assert.async(); } });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "assert.async()", - loopTypeText: "while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "assert.async()", + loopTypeText: "while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function (assert) { do assert.async(); while (false); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "assert.async()", - loopTypeText: "do-while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "assert.async()", + loopTypeText: "do-while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function (assert) { do { assert.async(); } while (false); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "assert.async()", - loopTypeText: "do-while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "assert.async()", + loopTypeText: "do-while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function (assert) { for (;;) assert.async(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "assert.async()", - loopTypeText: "for loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "assert.async()", + loopTypeText: "for loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function (assert) { for (;;) { assert.async(); } });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "assert.async()", - loopTypeText: "for loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "assert.async()", + loopTypeText: "for loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function (assert) { for (i in x) assert.async(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "assert.async()", - loopTypeText: "for-in loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "assert.async()", + loopTypeText: "for-in loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function (assert) { for (i of x) assert.async(); });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "assert.async()", - loopTypeText: "for-of loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "assert.async()", + loopTypeText: "for-of loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, // assert.async() with other assert context variable { code: "test('name', function (foo) { while (false) foo.async(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "foo.async()", - loopTypeText: "while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "foo.async()", + loopTypeText: "while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function (foo) { do foo.async(); while (false); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "foo.async()", - loopTypeText: "do-while loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "foo.async()", + loopTypeText: "do-while loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function (foo) { for (;;) foo.async(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "foo.async()", - loopTypeText: "for loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "foo.async()", + loopTypeText: "for loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function (foo) { for (i in {}) foo.async(); });", - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "foo.async()", - loopTypeText: "for-in loop" + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "foo.async()", + loopTypeText: "for-in loop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test('name', function (foo) { for (i of {}) foo.async(); });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "unexpectedAsyncInLoop", - data: { - call: "foo.async()", - loopTypeText: "for-of loop" - }, - type: "CallExpression" - }] - } - ] - + errors: [ + { + messageId: "unexpectedAsyncInLoop", + data: { + call: "foo.async()", + loopTypeText: "for-of loop", + }, + type: "CallExpression", + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-async-module-callbacks.js b/tests/lib/rules/no-async-module-callbacks.js index 89170ab7..787bc3bb 100644 --- a/tests/lib/rules/no-async-module-callbacks.js +++ b/tests/lib/rules/no-async-module-callbacks.js @@ -23,7 +23,6 @@ const messageId = "noAsyncModuleCallbacks"; const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 2017 } }); ruleTester.run("no-async-module-callbacks", rule, { - valid: [ "QUnit.module('single argument');", "module('single argument');", @@ -32,33 +31,41 @@ ruleTester.run("no-async-module-callbacks", rule, { "module('module-a', function() { });", "module('module-a', function(hooks) { hooks.beforeEach(function() {}); });", "QUnit.module('module-a', () => { });", - "module('module-a', () => { });" + "module('module-a', () => { });", ], invalid: [ { code: "QUnit.module('module-a', async function () {});", - errors: [{ - messageId - }] + errors: [ + { + messageId, + }, + ], }, { code: "module('module-a', async function () {});", - errors: [{ - messageId - }] + errors: [ + { + messageId, + }, + ], }, { code: "QUnit.module('module-a', async () => {});", - errors: [{ - messageId - }] + errors: [ + { + messageId, + }, + ], }, { code: "module('module-a', async () => {});", - errors: [{ - messageId - }] - } - ] + errors: [ + { + messageId, + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-async-test.js b/tests/lib/rules/no-async-test.js index 10b70221..97dd836f 100644 --- a/tests/lib/rules/no-async-test.js +++ b/tests/lib/rules/no-async-test.js @@ -20,23 +20,27 @@ const ruleTester = new RuleTester(); ruleTester.run("no-async-test", rule, { valid: [ "QUnit.test('a test', function () { });", - "QUnit.test('a test', function () { var done = assert.async(); done(); });" + "QUnit.test('a test', function () { var done = assert.async(); done(); });", ], invalid: [ { code: "asyncTest('a test', function () { });", - errors: [{ - messageId: "unexpectedAsyncTest", - type: "CallExpression" - }] + errors: [ + { + messageId: "unexpectedAsyncTest", + type: "CallExpression", + }, + ], }, { code: "QUnit.asyncTest('a test', function () { });", - errors: [{ - messageId: "unexpectedAsyncTest", - type: "CallExpression" - }] - } - ] + errors: [ + { + messageId: "unexpectedAsyncTest", + type: "CallExpression", + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-commented-tests.js b/tests/lib/rules/no-commented-tests.js index f296ad66..b0139b66 100644 --- a/tests/lib/rules/no-commented-tests.js +++ b/tests/lib/rules/no-commented-tests.js @@ -18,12 +18,15 @@ const rule = require("../../../lib/rules/no-commented-tests"), const ruleTester = new RuleTester(); ruleTester.run("no-commented-tests", rule, { - valid: [ "QUnit.skip('Name', function () { ok(true); });", // shebang comments - "#!/some-test()" + "#!/some-test()", + + // Allow test, parentheses, no quote (https://github.com/platinumazure/eslint-plugin-qunit/issues/61) + "// TODO: refactor with a Component test (instead of an Acceptance test)", + "// Run actual test (without context).", ], invalid: [ @@ -34,12 +37,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "test" + callee: "test", }, line: 1, - column: 4 - } - ] + column: 4, + }, + ], }, { code: "// asyncTest('Name', function () { ok(true); });", @@ -47,12 +50,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "asyncTest" + callee: "asyncTest", }, line: 1, - column: 4 - } - ] + column: 4, + }, + ], }, { code: "// QUnit.test('Name', function () { ok(true); });", @@ -60,12 +63,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "QUnit.test" + callee: "QUnit.test", }, line: 1, - column: 4 - } - ] + column: 4, + }, + ], }, { code: "// QUnit.asyncTest('Name', function () { ok(true); });", @@ -73,12 +76,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "QUnit.asyncTest" + callee: "QUnit.asyncTest", }, line: 1, - column: 4 - } - ] + column: 4, + }, + ], }, { code: "// QUnit.skip('Name', function () { ok(true); });", @@ -86,12 +89,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "QUnit.skip" + callee: "QUnit.skip", }, line: 1, - column: 4 - } - ] + column: 4, + }, + ], }, // Single-line block comments @@ -101,12 +104,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "test" + callee: "test", }, line: 1, - column: 4 - } - ] + column: 4, + }, + ], }, { code: "/* asyncTest('Name', function () { ok(true); }); */", @@ -114,12 +117,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "asyncTest" + callee: "asyncTest", }, line: 1, - column: 4 - } - ] + column: 4, + }, + ], }, { code: "/* QUnit.test('Name', function () { ok(true); }); */", @@ -127,12 +130,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "QUnit.test" + callee: "QUnit.test", }, line: 1, - column: 4 - } - ] + column: 4, + }, + ], }, { code: "/* QUnit.asyncTest('Name', function () { ok(true); }); */", @@ -140,12 +143,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "QUnit.asyncTest" + callee: "QUnit.asyncTest", }, line: 1, - column: 4 - } - ] + column: 4, + }, + ], }, { code: "/* QUnit.skip('Name', function () { ok(true); }); */", @@ -153,12 +156,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "QUnit.skip" + callee: "QUnit.skip", }, line: 1, - column: 4 - } - ] + column: 4, + }, + ], }, // Block comments with line offset (\n) @@ -168,12 +171,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "test" + callee: "test", }, line: 2, - column: 2 - } - ] + column: 2, + }, + ], }, { code: "/**\n\tasyncTest('Name', function () { ok(true); }); */", @@ -181,12 +184,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "asyncTest" + callee: "asyncTest", }, line: 2, - column: 2 - } - ] + column: 2, + }, + ], }, { code: "/**\n\tQUnit.test('Name', function () { ok(true); }); */", @@ -194,12 +197,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "QUnit.test" + callee: "QUnit.test", }, line: 2, - column: 2 - } - ] + column: 2, + }, + ], }, { code: "/**\n\tQUnit.asyncTest('Name', function () { ok(true); }); */", @@ -207,12 +210,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "QUnit.asyncTest" + callee: "QUnit.asyncTest", }, line: 2, - column: 2 - } - ] + column: 2, + }, + ], }, { code: "/**\n\tQUnit.skip('Name', function () { ok(true); }); */", @@ -220,12 +223,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "QUnit.skip" + callee: "QUnit.skip", }, line: 2, - column: 2 - } - ] + column: 2, + }, + ], }, // Block comments with line offset (\r) @@ -235,12 +238,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "test" + callee: "test", }, line: 2, - column: 2 - } - ] + column: 2, + }, + ], }, { code: "/**\r\tasyncTest('Name', function () { ok(true); }); */", @@ -248,12 +251,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "asyncTest" + callee: "asyncTest", }, line: 2, - column: 2 - } - ] + column: 2, + }, + ], }, { code: "/**\r\tQUnit.test('Name', function () { ok(true); }); */", @@ -261,12 +264,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "QUnit.test" + callee: "QUnit.test", }, line: 2, - column: 2 - } - ] + column: 2, + }, + ], }, { code: "/**\r\tQUnit.asyncTest('Name', function () { ok(true); }); */", @@ -274,12 +277,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "QUnit.asyncTest" + callee: "QUnit.asyncTest", }, line: 2, - column: 2 - } - ] + column: 2, + }, + ], }, { code: "/**\r\tQUnit.skip('Name', function () { ok(true); }); */", @@ -287,12 +290,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "QUnit.skip" + callee: "QUnit.skip", }, line: 2, - column: 2 - } - ] + column: 2, + }, + ], }, // Block comments with line offset (\r\n) @@ -302,12 +305,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "test" + callee: "test", }, line: 2, - column: 2 - } - ] + column: 2, + }, + ], }, { code: "/**\r\n\tasyncTest('Name', function () { ok(true); }); */", @@ -315,12 +318,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "asyncTest" + callee: "asyncTest", }, line: 2, - column: 2 - } - ] + column: 2, + }, + ], }, { code: "/**\r\n\tQUnit.test('Name', function () { ok(true); }); */", @@ -328,12 +331,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "QUnit.test" + callee: "QUnit.test", }, line: 2, - column: 2 - } - ] + column: 2, + }, + ], }, { code: "/**\r\n\tQUnit.asyncTest('Name', function () { ok(true); }); */", @@ -341,12 +344,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "QUnit.asyncTest" + callee: "QUnit.asyncTest", }, line: 2, - column: 2 - } - ] + column: 2, + }, + ], }, { code: "/**\r\n\tQUnit.skip('Name', function () { ok(true); }); */", @@ -354,13 +357,12 @@ ruleTester.run("no-commented-tests", rule, { { messageId: "unexpectedTestInComment", data: { - callee: "QUnit.skip" + callee: "QUnit.skip", }, line: 2, - column: 2 - } - ] - } - ] - + column: 2, + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-compare-relation-boolean.js b/tests/lib/rules/no-compare-relation-boolean.js index b6689225..7dc4ffc7 100644 --- a/tests/lib/rules/no-compare-relation-boolean.js +++ b/tests/lib/rules/no-compare-relation-boolean.js @@ -17,12 +17,17 @@ const rule = require("../../../lib/rules/no-compare-relation-boolean"), //------------------------------------------------------------------------------ function addErrors(testCase) { - return Object.assign({ - errors: [{ - messageId: "redundantComparison", - type: "CallExpression" - }] - }, testCase); + return Object.assign( + { + errors: [ + { + messageId: "redundantComparison", + type: "CallExpression", + }, + ], + }, + testCase, + ); } //------------------------------------------------------------------------------ @@ -49,182 +54,194 @@ ruleTester.run("no-compare-relation-boolean", rule, { // Not enough arguments "assert.strictEqual();", - "assert.strictEqual(a);" - ].map(code => testUtils.wrapInTest(code)), + "assert.strictEqual(a);", + ].map((code) => testUtils.wrapInTest(code)), invalid: [ { code: testUtils.wrapInTest("assert.equal(a === b, true);"), - output: testUtils.wrapInTest("assert.ok(a === b);") + output: testUtils.wrapInTest("assert.ok(a === b);"), }, { // TypeScript: test callback is adding a type to `this` code: "QUnit.test('test', (this: LocalTestContext, assert) => { assert.equal(a === b, true); });", output: "QUnit.test('test', (this: LocalTestContext, assert) => { assert.ok(a === b); });", - parser: require.resolve("@typescript-eslint/parser") + parser: require.resolve("@typescript-eslint/parser"), }, { code: testUtils.wrapInArrowTest("assert.equal(a === b, true);"), output: testUtils.wrapInArrowTest("assert.ok(a === b);"), - parserOptions: { ecmaVersion: 6 } + parserOptions: { ecmaVersion: 6 }, }, { code: testUtils.wrapInTest("assert.equal(a === b, false);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { - code: testUtils.wrapInTest("assert.equal(a === b, true, 'message');"), // With message - output: testUtils.wrapInTest("assert.ok(a === b, 'message');") + code: testUtils.wrapInTest( + "assert.equal(a === b, true, 'message');", + ), // With message + output: testUtils.wrapInTest("assert.ok(a === b, 'message');"), }, { - code: testUtils.wrapInTest("assert.equal(a === b, false, 'message');"), // With message - output: testUtils.wrapInTest("assert.notOk(a === b, 'message');") + code: testUtils.wrapInTest( + "assert.equal(a === b, false, 'message');", + ), // With message + output: testUtils.wrapInTest("assert.notOk(a === b, 'message');"), }, { code: testUtils.wrapInTest("assert.strictEqual(a === b, true);"), - output: testUtils.wrapInTest("assert.ok(a === b);") + output: testUtils.wrapInTest("assert.ok(a === b);"), }, { code: testUtils.wrapInTest("assert.strictEqual(a === b, false);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { code: testUtils.wrapInTest("assert.deepEqual(a === b, true);"), - output: testUtils.wrapInTest("assert.ok(a === b);") + output: testUtils.wrapInTest("assert.ok(a === b);"), }, { code: testUtils.wrapInTest("assert.deepEqual(a === b, false);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { code: testUtils.wrapInTest("assert.propEqual(a === b, true);"), - output: testUtils.wrapInTest("assert.ok(a === b);") + output: testUtils.wrapInTest("assert.ok(a === b);"), }, { code: testUtils.wrapInTest("assert.propEqual(a === b, false);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { code: testUtils.wrapInTest("assert.notEqual(a === b, true);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { code: testUtils.wrapInTest("assert.notEqual(a === b, false);"), - output: testUtils.wrapInTest("assert.ok(a === b);") + output: testUtils.wrapInTest("assert.ok(a === b);"), }, { code: testUtils.wrapInTest("assert.notStrictEqual(a === b, true);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { - code: testUtils.wrapInTest("assert.notStrictEqual(a === b, false);"), - output: testUtils.wrapInTest("assert.ok(a === b);") + code: testUtils.wrapInTest( + "assert.notStrictEqual(a === b, false);", + ), + output: testUtils.wrapInTest("assert.ok(a === b);"), }, { code: testUtils.wrapInTest("assert.notDeepEqual(a === b, true);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { code: testUtils.wrapInTest("assert.notDeepEqual(a === b, false);"), - output: testUtils.wrapInTest("assert.ok(a === b);") + output: testUtils.wrapInTest("assert.ok(a === b);"), }, { code: testUtils.wrapInTest("assert.notPropEqual(a === b, true);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { code: testUtils.wrapInTest("assert.notPropEqual(a === b, false);"), - output: testUtils.wrapInTest("assert.ok(a === b);") + output: testUtils.wrapInTest("assert.ok(a === b);"), }, // Argument order does not matter for this rule { code: testUtils.wrapInTest("assert.equal(true, a === b);"), - output: testUtils.wrapInTest("assert.ok(a === b);") + output: testUtils.wrapInTest("assert.ok(a === b);"), }, { code: testUtils.wrapInTest("assert.equal(false, a === b);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { - code: testUtils.wrapInTest("assert.equal(true, a === b, 'message');"), // With message - output: testUtils.wrapInTest("assert.ok(a === b, 'message');") + code: testUtils.wrapInTest( + "assert.equal(true, a === b, 'message');", + ), // With message + output: testUtils.wrapInTest("assert.ok(a === b, 'message');"), }, { - code: testUtils.wrapInTest("assert.equal(false, a === b, 'message');"), // With message - output: testUtils.wrapInTest("assert.notOk(a === b, 'message');") + code: testUtils.wrapInTest( + "assert.equal(false, a === b, 'message');", + ), // With message + output: testUtils.wrapInTest("assert.notOk(a === b, 'message');"), }, { code: testUtils.wrapInTest("assert.strictEqual(true, a === b);"), - output: testUtils.wrapInTest("assert.ok(a === b);") + output: testUtils.wrapInTest("assert.ok(a === b);"), }, { code: testUtils.wrapInTest("assert.strictEqual(false, a === b);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { code: testUtils.wrapInTest("assert.deepEqual(true, a === b);"), - output: testUtils.wrapInTest("assert.ok(a === b);") + output: testUtils.wrapInTest("assert.ok(a === b);"), }, { code: testUtils.wrapInTest("assert.deepEqual(false, a === b);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { code: testUtils.wrapInTest("assert.propEqual(true, a === b);"), - output: testUtils.wrapInTest("assert.ok(a === b);") + output: testUtils.wrapInTest("assert.ok(a === b);"), }, { code: testUtils.wrapInTest("assert.propEqual(false, a === b);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { code: testUtils.wrapInTest("assert.notEqual(true, a === b);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { code: testUtils.wrapInTest("assert.notEqual(false, a === b);"), - output: testUtils.wrapInTest("assert.ok(a === b);") + output: testUtils.wrapInTest("assert.ok(a === b);"), }, { code: testUtils.wrapInTest("assert.notStrictEqual(true, a === b);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { - code: testUtils.wrapInTest("assert.notStrictEqual(false, a === b);"), - output: testUtils.wrapInTest("assert.ok(a === b);") + code: testUtils.wrapInTest( + "assert.notStrictEqual(false, a === b);", + ), + output: testUtils.wrapInTest("assert.ok(a === b);"), }, { code: testUtils.wrapInTest("assert.notDeepEqual(true, a === b);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { code: testUtils.wrapInTest("assert.notDeepEqual(false, a === b);"), - output: testUtils.wrapInTest("assert.ok(a === b);") + output: testUtils.wrapInTest("assert.ok(a === b);"), }, { code: testUtils.wrapInTest("assert.notPropEqual(true, a === b);"), - output: testUtils.wrapInTest("assert.notOk(a === b);") + output: testUtils.wrapInTest("assert.notOk(a === b);"), }, { code: testUtils.wrapInTest("assert.notPropEqual(false, a === b);"), - output: testUtils.wrapInTest("assert.ok(a === b);") - } - ].map(testCase => addErrors(testCase)) + output: testUtils.wrapInTest("assert.ok(a === b);"), + }, + ].map((testCase) => addErrors(testCase)), }); diff --git a/tests/lib/rules/no-conditional-assertions.js b/tests/lib/rules/no-conditional-assertions.js index 2423791f..95e22606 100644 --- a/tests/lib/rules/no-conditional-assertions.js +++ b/tests/lib/rules/no-conditional-assertions.js @@ -19,10 +19,12 @@ const rule = require("../../../lib/rules/no-conditional-assertions"), function wrapInInvalidTestObject(code) { return { code: code, - errors: [{ - messageId: "noAssertionInsideConditional", - type: "CallExpression" - }] + errors: [ + { + messageId: "noAssertionInsideConditional", + type: "CallExpression", + }, + ], }; } @@ -32,7 +34,6 @@ function wrapInInvalidTestObject(code) { const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 6 } }); ruleTester.run("no-conditional-assertions", rule, { - valid: [ ...[ // Unconditional assertions are good @@ -58,11 +59,11 @@ ruleTester.run("no-conditional-assertions", rule, { // Conditions around non-assertions are okay "if (foo) doSomething();", "foo ? doSomething() : false;", - "foo ? false : doSomething();" - ].map(code => testUtils.wrapInTest(code)), + "foo ? false : doSomething();", + ].map((code) => testUtils.wrapInTest(code)), // Conditional tests are okay - "if (foo) QUnit.test('test', function (assert) { assert.ok(true); });" + "if (foo) QUnit.test('test', function (assert) { assert.ok(true); });", ], invalid: [ @@ -73,6 +74,6 @@ ruleTester.run("no-conditional-assertions", rule, { testUtils.wrapInTest("if (foo) {} else if (bar) assert.ok(true);"), testUtils.wrapInTest("if (foo) {} else assert.ok(true);"), testUtils.wrapInTest("foo ? assert.ok(true) : false"), - testUtils.wrapInTest("foo ? false : assert.ok(true)") - ].map(code => wrapInInvalidTestObject(code)) + testUtils.wrapInTest("foo ? false : assert.ok(true)"), + ].map((code) => wrapInInvalidTestObject(code)), }); diff --git a/tests/lib/rules/no-early-return.js b/tests/lib/rules/no-early-return.js index 093caea7..eb6b8cdc 100644 --- a/tests/lib/rules/no-early-return.js +++ b/tests/lib/rules/no-early-return.js @@ -11,7 +11,6 @@ const rule = require("../../../lib/rules/no-early-return"), RuleTester = require("eslint").RuleTester; - //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ @@ -24,7 +23,7 @@ ruleTester.run("no-early-return", rule, { "QUnit.test('a test', function (assert) { (function () { return; })(); assert.ok(true); });", { code: "QUnit.test('a test', function (assert) { () => { return; }; assert.ok(true); });", - parserOptions: { ecmaVersion: 6 } + parserOptions: { ecmaVersion: 6 }, }, // Inside nested function (assertions inside nested function before return) @@ -32,7 +31,7 @@ ruleTester.run("no-early-return", rule, { "QUnit.test('a test', function (assert) { (function () { assert.ok(true); return; })(); });", { code: "QUnit.test('a test', function (assert) { () => { assert.ok(true); return; }; });", - parserOptions: { ecmaVersion: 6 } + parserOptions: { ecmaVersion: 6 }, }, // Conditionally run tests are okay @@ -40,67 +39,80 @@ ruleTester.run("no-early-return", rule, { "if (shouldRunTest()) { QUnit.test('a test', function (assert) { assert.ok(true); }); }", // Return statement outside of test is fine - "(function () { return true; }());" + "(function () { return true; }());", ], invalid: [ { code: "QUnit.test('a test', function (assert) { if (true) return; assert.ok(true); });", - errors: [{ - messageId: "noEarlyReturn", - type: "ReturnStatement" - }] + errors: [ + { + messageId: "noEarlyReturn", + type: "ReturnStatement", + }, + ], }, { // TypeScript: test callback is adding a type to `this` code: "QUnit.test('a test', function (this: LocalTestContext, assert) { if (true) return; assert.ok(true); });", parser: require.resolve("@typescript-eslint/parser"), - errors: [{ - messageId: "noEarlyReturn", - type: "ReturnStatement" - }] + errors: [ + { + messageId: "noEarlyReturn", + type: "ReturnStatement", + }, + ], }, { code: "QUnit.test('a test', (assert) => { if (true) return; assert.ok(true); });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "noEarlyReturn", - type: "ReturnStatement" - }] + errors: [ + { + messageId: "noEarlyReturn", + type: "ReturnStatement", + }, + ], }, // Return in nested function before assertion is considered early return { code: "QUnit.test('a test', function (assert) { setTimeout(function () { if (true) return; assert.ok(true); }, 0); });", - errors: [{ - messageId: "noEarlyReturn", - type: "ReturnStatement" - }] + errors: [ + { + messageId: "noEarlyReturn", + type: "ReturnStatement", + }, + ], }, { code: "QUnit.test('a test', function (assert) { setTimeout(function () { assert.ok(true); if (true) return; assert.ok(true); }, 0); });", - errors: [{ - messageId: "noEarlyReturn", - type: "ReturnStatement" - }] + errors: [ + { + messageId: "noEarlyReturn", + type: "ReturnStatement", + }, + ], }, // Report errors in multiple scopes with assertions { code: "QUnit.test('a test', function (assert) { setTimeout(function () { return; assert.ok(true); }, 0); return; assert.ok(true); });", - errors: [{ - messageId: "noEarlyReturn", - type: "ReturnStatement", - line: 1, - column: 67 - }, { - messageId: "noEarlyReturn", - type: "ReturnStatement", - line: 1, - column: 99 - }] - } - ] + errors: [ + { + messageId: "noEarlyReturn", + type: "ReturnStatement", + line: 1, + column: 67, + }, + { + messageId: "noEarlyReturn", + type: "ReturnStatement", + line: 1, + column: 99, + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-global-assertions.js b/tests/lib/rules/no-global-assertions.js index abddf9ff..d1680d03 100644 --- a/tests/lib/rules/no-global-assertions.js +++ b/tests/lib/rules/no-global-assertions.js @@ -12,7 +12,6 @@ const rule = require("../../../lib/rules/no-global-assertions"), RuleTester = require("eslint").RuleTester, testUtils = require("../../testUtils"); - //------------------------------------------------------------------------------ // Helpers //------------------------------------------------------------------------------ @@ -21,8 +20,8 @@ function createError(assertion) { return { messageId: "unexpectedGlobalAssertion", data: { - assertion - } + assertion, + }, }; } @@ -52,68 +51,68 @@ ruleTester.run("no-global-assertions", rule, { // Global overridden by local import/declaration. { code: "var strictEqual = require('foo'); strictEqual();", - globals: { strictEqual: true } + globals: { strictEqual: true }, }, // Intentionally not covered by this rule - testUtils.wrapInTest("expect(1);") + testUtils.wrapInTest("expect(1);"), ], invalid: [ { code: testUtils.wrapInTest("ok(true);"), globals: { ok: true }, - errors: [createError("ok")] + errors: [createError("ok")], }, { code: testUtils.wrapInTest("equal(a, b);"), globals: { equal: true }, - errors: [createError("equal")] + errors: [createError("equal")], }, { code: testUtils.wrapInTest("strictEqual(a, b);"), globals: { strictEqual: true }, - errors: [createError("strictEqual")] + errors: [createError("strictEqual")], }, { code: testUtils.wrapInTest("deepEqual(a, b);"), globals: { deepEqual: true }, - errors: [createError("deepEqual")] + errors: [createError("deepEqual")], }, { code: testUtils.wrapInTest("propEqual(a, b);"), globals: { propEqual: true }, - errors: [createError("propEqual")] + errors: [createError("propEqual")], }, { code: testUtils.wrapInTest("notEqual(a, b);"), globals: { notEqual: true }, - errors: [createError("notEqual")] + errors: [createError("notEqual")], }, { code: testUtils.wrapInTest("notStrictEqual(a, b);"), globals: { notStrictEqual: true }, - errors: [createError("notStrictEqual")] + errors: [createError("notStrictEqual")], }, { code: testUtils.wrapInTest("notDeepEqual(a, b);"), globals: { notDeepEqual: true }, - errors: [createError("notDeepEqual")] + errors: [createError("notDeepEqual")], }, { code: testUtils.wrapInTest("notPropEqual(a, b);"), globals: { notPropEqual: true }, - errors: [createError("notPropEqual")] + errors: [createError("notPropEqual")], }, { code: testUtils.wrapInTest("raises(function () {}, TypeError);"), globals: { raises: true }, - errors: [createError("raises")] + errors: [createError("raises")], }, { code: testUtils.wrapInTest("throws(function () {}, TypeError);"), globals: { throws: true }, - errors: [createError("throws")] - } - ] + errors: [createError("throws")], + }, + ], }); diff --git a/tests/lib/rules/no-global-expect.js b/tests/lib/rules/no-global-expect.js index 643ceec9..93117f5c 100644 --- a/tests/lib/rules/no-global-expect.js +++ b/tests/lib/rules/no-global-expect.js @@ -12,7 +12,6 @@ const rule = require("../../../lib/rules/no-global-expect"), RuleTester = require("eslint").RuleTester, testUtils = require("../../testUtils"); - //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ @@ -20,8 +19,8 @@ const rule = require("../../../lib/rules/no-global-expect"), const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 2015, - sourceType: "module" - } + sourceType: "module", + }, }); ruleTester.run("no-global-expect", rule, { @@ -29,40 +28,50 @@ ruleTester.run("no-global-expect", rule, { testUtils.wrapInTest("assert.expect(1);"), { code: testUtils.wrapInTest("assert.expect(1);"), - globals: { expect: true } + globals: { expect: true }, }, // Global overridden by local import/declaration. { - code: `import expect from 'foo'; ${testUtils.wrapInTest("expect(1);")}`, - globals: { expect: true } + code: `import expect from 'foo'; ${testUtils.wrapInTest( + "expect(1);", + )}`, + globals: { expect: true }, }, { - code: `import { expect } from 'foo'; ${testUtils.wrapInTest("expect(1);")}`, - globals: { expect: true } + code: `import { expect } from 'foo'; ${testUtils.wrapInTest( + "expect(1);", + )}`, + globals: { expect: true }, }, { - code: `var expect = require('foo'); ${testUtils.wrapInTest("expect(1);")}`, - globals: { expect: true } + code: `var expect = require('foo'); ${testUtils.wrapInTest( + "expect(1);", + )}`, + globals: { expect: true }, }, { - code: `var expect = () => {}; ${testUtils.wrapInTest("expect(1);")}`, - globals: { expect: true } + code: `var expect = () => {}; ${testUtils.wrapInTest( + "expect(1);", + )}`, + globals: { expect: true }, }, { code: `function expect() {}; ${testUtils.wrapInTest("expect(1);")}`, - globals: { expect: true } - } + globals: { expect: true }, + }, ], invalid: [ { code: testUtils.wrapInTest("expect(1)"), globals: { expect: true }, - errors: [{ - messageId: "unexpectedGlobalExpect", - type: "CallExpression" - }] - } - ] + errors: [ + { + messageId: "unexpectedGlobalExpect", + type: "CallExpression", + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-global-module-test.js b/tests/lib/rules/no-global-module-test.js index 53682be6..251b8348 100644 --- a/tests/lib/rules/no-global-module-test.js +++ b/tests/lib/rules/no-global-module-test.js @@ -29,43 +29,49 @@ ruleTester.run("no-global-module-test", rule, { // Global overridden by local import/declaration. { code: "var module = require('foo'); module();", - globals: { module: true } - } + globals: { module: true }, + }, ], invalid: [ { code: "module();", globals: { module: true }, - errors: [{ - messageId: "unexpectedGlobalModuleTest", - data: { - callee: "module" + errors: [ + { + messageId: "unexpectedGlobalModuleTest", + data: { + callee: "module", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "test();", globals: { test: true }, - errors: [{ - messageId: "unexpectedGlobalModuleTest", - data: { - callee: "test" + errors: [ + { + messageId: "unexpectedGlobalModuleTest", + data: { + callee: "test", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "asyncTest();", globals: { asyncTest: true }, - errors: [{ - messageId: "unexpectedGlobalModuleTest", - data: { - callee: "asyncTest" + errors: [ + { + messageId: "unexpectedGlobalModuleTest", + data: { + callee: "asyncTest", + }, + type: "CallExpression", }, - type: "CallExpression" - }] - } - ] + ], + }, + ], }); diff --git a/tests/lib/rules/no-global-stop-start.js b/tests/lib/rules/no-global-stop-start.js index e1c84dd4..c5facc8b 100644 --- a/tests/lib/rules/no-global-stop-start.js +++ b/tests/lib/rules/no-global-stop-start.js @@ -13,14 +13,12 @@ const rule = require("../../../lib/rules/no-global-stop-start"), RuleTester = require("eslint").RuleTester; - //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ const ruleTester = new RuleTester(); ruleTester.run("no-global-stop-start", rule, { - valid: [ "QUnit.stop();", "QUnit.start();", @@ -28,32 +26,36 @@ ruleTester.run("no-global-stop-start", rule, { // Global overridden by local import/declaration. { code: "var start = require('foo'); start();", - globals: { start: true } - } + globals: { start: true }, + }, ], invalid: [ { code: "stop();", globals: { stop: true }, - errors: [{ - messageId: "unexpectedGlobalStopStart", - data: { - callee: "stop" + errors: [ + { + messageId: "unexpectedGlobalStopStart", + data: { + callee: "stop", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "start();", globals: { start: true }, - errors: [{ - messageId: "unexpectedGlobalStopStart", - data: { - callee: "start" + errors: [ + { + messageId: "unexpectedGlobalStopStart", + data: { + callee: "start", + }, + type: "CallExpression", }, - type: "CallExpression" - }] - } - ] + ], + }, + ], }); diff --git a/tests/lib/rules/no-hooks-from-ancestor-modules.js b/tests/lib/rules/no-hooks-from-ancestor-modules.js index f4e44787..d85dfed1 100644 --- a/tests/lib/rules/no-hooks-from-ancestor-modules.js +++ b/tests/lib/rules/no-hooks-from-ancestor-modules.js @@ -20,9 +20,9 @@ function createError({ invokedMethodName, usedHooksIdentifierName }) { messageId: "noHooksFromAncestorModules", data: { invokedMethodName, - usedHooksIdentifierName + usedHooksIdentifierName, }, - type: "MemberExpression" + type: "MemberExpression", }; } @@ -32,7 +32,6 @@ function createError({ invokedMethodName, usedHooksIdentifierName }) { const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: "latest" } }); ruleTester.run("no-hooks-from-ancestor-modules", rule, { - valid: [ "QUnit.testDone(function() {});", ` @@ -131,9 +130,9 @@ ruleTester.run("no-hooks-from-ancestor-modules", rule, { { // TypeScript: module callback is adding a type to `this` - code: "QUnit.module(\"module\", function(this: LocalTestContext, hooks) { hooks.afterEach(function() {}); });", - parser: require.resolve("@typescript-eslint/parser") - } + code: 'QUnit.module("module", function(this: LocalTestContext, hooks) { hooks.afterEach(function() {}); });', + parser: require.resolve("@typescript-eslint/parser"), + }, ], invalid: [ @@ -148,9 +147,9 @@ ruleTester.run("no-hooks-from-ancestor-modules", rule, { errors: [ createError({ invokedMethodName: "beforeEach", - usedHooksIdentifierName: "hooks" - }) - ] + usedHooksIdentifierName: "hooks", + }), + ], }, { code: ` @@ -163,9 +162,9 @@ ruleTester.run("no-hooks-from-ancestor-modules", rule, { errors: [ createError({ invokedMethodName: "beforeEach", - usedHooksIdentifierName: "hooks" - }) - ] + usedHooksIdentifierName: "hooks", + }), + ], }, { code: ` @@ -178,9 +177,9 @@ ruleTester.run("no-hooks-from-ancestor-modules", rule, { errors: [ createError({ invokedMethodName: "beforeEach", - usedHooksIdentifierName: "hooks" - }) - ] + usedHooksIdentifierName: "hooks", + }), + ], }, { code: ` @@ -193,9 +192,9 @@ ruleTester.run("no-hooks-from-ancestor-modules", rule, { errors: [ createError({ invokedMethodName: "afterEach", - usedHooksIdentifierName: "firstHooks" - }) - ] + usedHooksIdentifierName: "firstHooks", + }), + ], }, { code: ` @@ -208,9 +207,9 @@ ruleTester.run("no-hooks-from-ancestor-modules", rule, { errors: [ createError({ invokedMethodName: "afterEach", - usedHooksIdentifierName: "hooks" - }) - ] + usedHooksIdentifierName: "hooks", + }), + ], }, { code: ` @@ -223,9 +222,9 @@ ruleTester.run("no-hooks-from-ancestor-modules", rule, { errors: [ createError({ invokedMethodName: "afterEach", - usedHooksIdentifierName: "hooks" - }) - ] + usedHooksIdentifierName: "hooks", + }), + ], }, { code: ` @@ -245,9 +244,9 @@ ruleTester.run("no-hooks-from-ancestor-modules", rule, { errors: [ createError({ invokedMethodName: "beforeEach", - usedHooksIdentifierName: "firstHooks" - }) - ] + usedHooksIdentifierName: "firstHooks", + }), + ], }, // https://github.com/platinumazure/eslint-plugin-qunit/issues/246 @@ -262,9 +261,9 @@ ruleTester.run("no-hooks-from-ancestor-modules", rule, { errors: [ createError({ invokedMethodName: "beforeEach", - usedHooksIdentifierName: "hooks" - }) - ] + usedHooksIdentifierName: "hooks", + }), + ], }, { code: ` @@ -277,9 +276,9 @@ ruleTester.run("no-hooks-from-ancestor-modules", rule, { errors: [ createError({ invokedMethodName: "beforeEach", - usedHooksIdentifierName: "hooks" - }) - ] + usedHooksIdentifierName: "hooks", + }), + ], }, { @@ -295,9 +294,9 @@ ruleTester.run("no-hooks-from-ancestor-modules", rule, { errors: [ createError({ invokedMethodName: "afterEach", - usedHooksIdentifierName: "hooks" - }) - ] - } - ] + usedHooksIdentifierName: "hooks", + }), + ], + }, + ], }); diff --git a/tests/lib/rules/no-identical-names.js b/tests/lib/rules/no-identical-names.js index b467666e..c8067511 100644 --- a/tests/lib/rules/no-identical-names.js +++ b/tests/lib/rules/no-identical-names.js @@ -15,7 +15,6 @@ const rule = require("../../../lib/rules/no-identical-names"), const ruleTester = new RuleTester(); ruleTester.run("no-identical-title", rule, { - valid: [ outdent` module("module"); @@ -83,13 +82,13 @@ ruleTester.run("no-identical-title", rule, { }); `, { - code: outdent ` + code: outdent` test(\`it$\{n\}\`, function() {}); test(\`it$\{n\}\`, function() {}); `, parserOptions: { - ecmaVersion: 6 - } + ecmaVersion: 6, + }, }, // Tests with identical names are allowed if they are in different modules. @@ -139,86 +138,96 @@ ruleTester.run("no-identical-title", rule, { }); }); }); - ` + `, ], invalid: [ { - code: outdent ` + code: outdent` module("module1"); test("it1", function() {}); test("it1", function() {}); `, - errors: [{ - messageId: "duplicateTest", - data: { - line: 2 + errors: [ + { + messageId: "duplicateTest", + data: { + line: 2, + }, + column: 6, + line: 3, }, - column: 6, - line: 3 - }] + ], }, { - code: outdent ` + code: outdent` test("it1", function() {}); test("it1", function() {}); `, - errors: [{ - messageId: "duplicateTest", - data: { - line: 1 + errors: [ + { + messageId: "duplicateTest", + data: { + line: 1, + }, + column: 6, + line: 2, }, - column: 6, - line: 2 - }] + ], }, { - code: outdent ` + code: outdent` module("module1", function() { test("it1", function() {}); test("it1", function() {}); }); `, - errors: [{ - messageId: "duplicateTest", - data: { - line: 2 + errors: [ + { + messageId: "duplicateTest", + data: { + line: 2, + }, + column: 8, + line: 3, }, - column: 8, - line: 3 - }] + ], }, { - code: outdent ` + code: outdent` module("module1"); module("module1"); `, - errors: [{ - messageId: "duplicateModule", - data: { - line: 1 + errors: [ + { + messageId: "duplicateModule", + data: { + line: 1, + }, + column: 8, + line: 2, }, - column: 8, - line: 2 - }] + ], }, { - code: outdent ` + code: outdent` module("module1"); test("it", function() {}); module("module1"); `, - errors: [{ - messageId: "duplicateModule", - data: { - line: 1 + errors: [ + { + messageId: "duplicateModule", + data: { + line: 1, + }, + column: 8, + line: 3, }, - column: 8, - line: 3 - }] + ], }, { - code: outdent ` + code: outdent` module("module1", function() { module("module2", function() { test("it", function() {}); @@ -226,15 +235,17 @@ ruleTester.run("no-identical-title", rule, { }); }); `, - errors: [{ - messageId: "duplicateTest", - data: { line: 3 }, - column: 14, - line: 4 - }] + errors: [ + { + messageId: "duplicateTest", + data: { line: 3 }, + column: 14, + line: 4, + }, + ], }, { - code: outdent ` + code: outdent` test("it", function() {}); // Module with test deep inside it. @@ -246,26 +257,30 @@ ruleTester.run("no-identical-title", rule, { test("it", function() {}); `, - errors: [{ - messageId: "duplicateTest", - data: { line: 1 }, - column: 6, - line: 10 - }] + errors: [ + { + messageId: "duplicateTest", + data: { line: 1 }, + column: 6, + line: 10, + }, + ], }, { - code: outdent ` + code: outdent` module("module1", function() { module("submodule1", function() {}); module("submodule1", function() {}); }); `, - errors: [{ - messageId: "duplicateModule", - data: { line: 2 }, - column: 12, - line: 3 - }] + errors: [ + { + messageId: "duplicateModule", + data: { line: 2 }, + column: 12, + line: 3, + }, + ], }, { code: outdent` @@ -273,12 +288,14 @@ ruleTester.run("no-identical-title", rule, { module("name1", function() {}); }); `, - errors: [{ - messageId: "duplicateModuleAncestor", - data: { line: 1 }, - column: 12, - line: 2 - }] - } - ] + errors: [ + { + messageId: "duplicateModuleAncestor", + data: { line: 1 }, + column: 12, + line: 2, + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-init.js b/tests/lib/rules/no-init.js index 453b758d..816918af 100644 --- a/tests/lib/rules/no-init.js +++ b/tests/lib/rules/no-init.js @@ -13,29 +13,29 @@ const rule = require("../../../lib/rules/no-init"), RuleTester = require("eslint").RuleTester; - //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ const ruleTester = new RuleTester(); ruleTester.run("no-init", rule, { - valid: [ // Only invocations are reported "QUnit.init", // Only QUnit.init() is reported - "QUnit.reset()" + "QUnit.reset()", ], invalid: [ { code: "QUnit.init();", - errors: [{ - messageId: "noInit", - type: "CallExpression" - }] - } - ] + errors: [ + { + messageId: "noInit", + type: "CallExpression", + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-jsdump.js b/tests/lib/rules/no-jsdump.js index a82e737b..e58d029e 100644 --- a/tests/lib/rules/no-jsdump.js +++ b/tests/lib/rules/no-jsdump.js @@ -17,18 +17,17 @@ const rule = require("../../../lib/rules/no-jsdump"), const ruleTester = new RuleTester(); ruleTester.run("no-jsdump", rule, { - - valid: [ - "QUnit.dump(obj);" - ], + valid: ["QUnit.dump(obj);"], invalid: [ { code: "QUnit.jsDump(obj);", - errors: [{ - messageId: "noJsDump", - type: "CallExpression" - }] - } - ] + errors: [ + { + messageId: "noJsDump", + type: "CallExpression", + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-loose-assertions.js b/tests/lib/rules/no-loose-assertions.js index 1c3eab56..02803cd6 100644 --- a/tests/lib/rules/no-loose-assertions.js +++ b/tests/lib/rules/no-loose-assertions.js @@ -33,115 +33,139 @@ ruleTester.run("no-loose-assertions", rule, { "QUnit.test('Name', function () { propEqual(a, b); });", // equal is not within test context - "equal(a, b);" + "equal(a, b);", ], invalid: [ { code: "QUnit.test('Name', function (assert) { assert.ok(a); });", - errors: [{ - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "assert", - assertion: "ok" - } - }] + errors: [ + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "assert", + assertion: "ok", + }, + }, + ], }, { code: "QUnit.test('Name', (assert) => { assert.ok(a); });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "assert", - assertion: "ok" - } - }] + errors: [ + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "assert", + assertion: "ok", + }, + }, + ], }, { code: "QUnit.test('Name', function (foo) { foo.ok(a); });", - errors: [{ - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "foo", - assertion: "ok" - } - }] + errors: [ + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "foo", + assertion: "ok", + }, + }, + ], }, { code: "QUnit.test('Name', function (assert) { assert.notOk(a); });", - errors: [{ - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "assert", - assertion: "notOk" - } - }] + errors: [ + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "assert", + assertion: "notOk", + }, + }, + ], }, { code: "QUnit.test('Name', function (foo) { foo.notOk(a); });", - errors: [{ - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "foo", - assertion: "notOk" - } - }] + errors: [ + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "foo", + assertion: "notOk", + }, + }, + ], }, { code: "QUnit.test('Name', function (assert) { ok(a, b); });", - errors: [{ - messageId: "unexpectedGlobalLooseAssertion", - data: { assertion: "ok" } - }] + errors: [ + { + messageId: "unexpectedGlobalLooseAssertion", + data: { assertion: "ok" }, + }, + ], }, { code: "QUnit.test('Name', function (assert) { notOk(a, b); });", - errors: [{ - messageId: "unexpectedGlobalLooseAssertion", - data: { assertion: "notOk" } - }] + errors: [ + { + messageId: "unexpectedGlobalLooseAssertion", + data: { assertion: "notOk" }, + }, + ], }, { code: "QUnit.test('Name', function () { ok(a, b); });", - errors: [{ - messageId: "unexpectedGlobalLooseAssertion", - data: { assertion: "ok" } - }] + errors: [ + { + messageId: "unexpectedGlobalLooseAssertion", + data: { assertion: "ok" }, + }, + ], }, { code: "QUnit.test('Name', function () { notOk(a, b); });", - errors: [{ - messageId: "unexpectedGlobalLooseAssertion", - data: { assertion: "notOk" } - }] + errors: [ + { + messageId: "unexpectedGlobalLooseAssertion", + data: { assertion: "notOk" }, + }, + ], }, { code: "QUnit.test('Name', function (assert) { assert.equal(a, b); });", - errors: [{ - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "assert", - assertion: "equal" - } - }] + errors: [ + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "assert", + assertion: "equal", + }, + }, + ], }, { code: "QUnit.test('Name', function (foo) { foo.equal(a, b); });", - errors: [{ - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "foo", - assertion: "equal" - } - }] + errors: [ + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "foo", + assertion: "equal", + }, + }, + ], }, { code: "QUnit.test('Name', function (assert) { equal(a, b); });", - errors: [{ - messageId: "unexpectedGlobalLooseAssertion", - data: { assertion: "equal" } - }] + errors: [ + { + messageId: "unexpectedGlobalLooseAssertion", + data: { assertion: "equal" }, + }, + ], }, { code: ` @@ -152,31 +176,36 @@ ruleTester.run("no-loose-assertions", rule, { assert.notEqual(a, b); }); `, - errors: [{ - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "assert", - assertion: "ok" - } - }, { - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "assert", - assertion: "notOk" - } - }, { - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "assert", - assertion: "equal" - } - }, { - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "assert", - assertion: "notEqual" - } - }] + errors: [ + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "assert", + assertion: "ok", + }, + }, + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "assert", + assertion: "notOk", + }, + }, + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "assert", + assertion: "equal", + }, + }, + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "assert", + assertion: "notEqual", + }, + }, + ], }, { code: ` @@ -187,31 +216,36 @@ ruleTester.run("no-loose-assertions", rule, { foo.notEqual(a, b); }); `, - errors: [{ - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "foo", - assertion: "ok" - } - }, { - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "foo", - assertion: "notOk" - } - }, { - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "foo", - assertion: "equal" - } - }, { - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "foo", - assertion: "notEqual" - } - }] + errors: [ + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "foo", + assertion: "ok", + }, + }, + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "foo", + assertion: "notOk", + }, + }, + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "foo", + assertion: "equal", + }, + }, + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "foo", + assertion: "notEqual", + }, + }, + ], }, { code: ` @@ -222,19 +256,24 @@ ruleTester.run("no-loose-assertions", rule, { notEqual(a, b); }); `, - errors: [{ - messageId: "unexpectedGlobalLooseAssertion", - data: { assertion: "ok" } - }, { - messageId: "unexpectedGlobalLooseAssertion", - data: { assertion: "notOk" } - }, { - messageId: "unexpectedGlobalLooseAssertion", - data: { assertion: "equal" } - }, { - messageId: "unexpectedGlobalLooseAssertion", - data: { assertion: "notEqual" } - }] + errors: [ + { + messageId: "unexpectedGlobalLooseAssertion", + data: { assertion: "ok" }, + }, + { + messageId: "unexpectedGlobalLooseAssertion", + data: { assertion: "notOk" }, + }, + { + messageId: "unexpectedGlobalLooseAssertion", + data: { assertion: "equal" }, + }, + { + messageId: "unexpectedGlobalLooseAssertion", + data: { assertion: "notEqual" }, + }, + ], }, { code: ` @@ -244,17 +283,19 @@ ruleTester.run("no-loose-assertions", rule, { assert.equal(a, b); }); `, - options: [["ok", { disallowed: "equal", - recommended: ["ab"] }]], - errors: [{ - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "assert", - assertion: "ok" - } - }, { - message: "Unexpected assert.equal. Use assert.ab." - }] + options: [["ok", { disallowed: "equal", recommended: ["ab"] }]], + errors: [ + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "assert", + assertion: "ok", + }, + }, + { + message: "Unexpected assert.equal. Use assert.ab.", + }, + ], }, { code: ` @@ -264,17 +305,19 @@ ruleTester.run("no-loose-assertions", rule, { foo.equal(a, b); }); `, - options: [["ok", { disallowed: "equal", - recommended: ["ab"] }]], - errors: [{ - messageId: "unexpectedLocalLooseAssertion", - data: { - assertVar: "foo", - assertion: "ok" - } - }, { - message: "Unexpected foo.equal. Use foo.ab." - }] + options: [["ok", { disallowed: "equal", recommended: ["ab"] }]], + errors: [ + { + messageId: "unexpectedLocalLooseAssertion", + data: { + assertVar: "foo", + assertion: "ok", + }, + }, + { + message: "Unexpected foo.equal. Use foo.ab.", + }, + ], }, { code: ` @@ -285,13 +328,16 @@ ruleTester.run("no-loose-assertions", rule, { }); `, options: [["ok", "equal"]], - errors: [{ - messageId: "unexpectedGlobalLooseAssertion", - data: { assertion: "ok" } - }, { - messageId: "unexpectedGlobalLooseAssertion", - data: { assertion: "equal" } - }] + errors: [ + { + messageId: "unexpectedGlobalLooseAssertion", + data: { assertion: "ok" }, + }, + { + messageId: "unexpectedGlobalLooseAssertion", + data: { assertion: "equal" }, + }, + ], }, { code: ` @@ -303,15 +349,23 @@ ruleTester.run("no-loose-assertions", rule, { `, // Extra "equal" and "ok" definitions to make sure they are properly ignored while parsing options - options: [["ok", { disallowed: "equal", - recommended: ["ab"] }, "equal", { disallowed: "ok", - recommended: ["ab"] }]], - errors: [{ - messageId: "unexpectedGlobalLooseAssertion", - data: { assertion: "ok" } - }, { - message: "Unexpected equal. Use ab." - }] - } - ] + options: [ + [ + "ok", + { disallowed: "equal", recommended: ["ab"] }, + "equal", + { disallowed: "ok", recommended: ["ab"] }, + ], + ], + errors: [ + { + messageId: "unexpectedGlobalLooseAssertion", + data: { assertion: "ok" }, + }, + { + message: "Unexpected equal. Use ab.", + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-negated-ok.js b/tests/lib/rules/no-negated-ok.js index dc7bd831..7df7fd27 100644 --- a/tests/lib/rules/no-negated-ok.js +++ b/tests/lib/rules/no-negated-ok.js @@ -20,8 +20,8 @@ function createError(callee) { return { messageId: "noNegationInOk", data: { - callee - } + callee, + }, }; } @@ -32,7 +32,6 @@ function createError(callee) { const ruleTester = new RuleTester(); ruleTester.run("no-negated-ok", rule, { - valid: [ // ok testUtils.wrapInTest("ok(foo)"), @@ -94,7 +93,7 @@ ruleTester.run("no-negated-ok", rule, { testUtils.wrapInTest("assert.true(foo)"), testUtils.wrapInTest("assert.true(foo, 'message')"), testUtils.wrapInTest("assert.false(foo)"), - testUtils.wrapInTest("assert.false(foo, 'message')") + testUtils.wrapInTest("assert.false(foo, 'message')"), ], invalid: [ @@ -102,75 +101,74 @@ ruleTester.run("no-negated-ok", rule, { { code: testUtils.wrapInTest("assert.ok(!foo)"), output: testUtils.wrapInTest("assert.notOk(foo)"), - errors: [createError("assert.ok")] + errors: [createError("assert.ok")], }, { // TypeScript: test callback is adding a type to `this` code: "QUnit.test('test', (this: LocalTestContext, assert) => { assert.ok(!foo); });", output: "QUnit.test('test', (this: LocalTestContext, assert) => { assert.notOk(foo); });", parser: require.resolve("@typescript-eslint/parser"), - errors: [createError("assert.ok")] + errors: [createError("assert.ok")], }, { code: testUtils.wrapInArrowTest("assert.ok(!foo)"), output: testUtils.wrapInArrowTest("assert.notOk(foo)"), parserOptions: { ecmaVersion: 6 }, - errors: [createError("assert.ok")] + errors: [createError("assert.ok")], }, // ok (with message) { code: testUtils.wrapInTest("assert.ok(!foo, 'message')"), output: testUtils.wrapInTest("assert.notOk(foo, 'message')"), - errors: [createError("assert.ok")] + errors: [createError("assert.ok")], }, // notOk { code: testUtils.wrapInTest("assert.notOk(!foo)"), output: testUtils.wrapInTest("assert.ok(foo)"), - errors: [createError("assert.notOk")] + errors: [createError("assert.notOk")], }, { code: testUtils.wrapInTest("assert.notOk(!foo, 'message')"), output: testUtils.wrapInTest("assert.ok(foo, 'message')"), - errors: [createError("assert.notOk")] + errors: [createError("assert.notOk")], }, // triple negation is not allowed { code: testUtils.wrapInTest("assert.ok(!!!foo)"), output: testUtils.wrapInTest("assert.notOk(foo)"), - errors: [createError("assert.ok")] + errors: [createError("assert.ok")], }, // triple negation is not allowed (with message) { code: testUtils.wrapInTest("assert.notOk(!!!foo)"), output: testUtils.wrapInTest("assert.ok(foo)"), - errors: [createError("assert.notOk")] + errors: [createError("assert.notOk")], }, // triple negation is not allowed (with notOk) { code: testUtils.wrapInTest("assert.notOk(!!!foo, 'message')"), output: testUtils.wrapInTest("assert.ok(foo, 'message')"), - errors: [createError("assert.notOk")] + errors: [createError("assert.notOk")], }, // true { code: testUtils.wrapInTest("assert.true(!foo)"), output: testUtils.wrapInTest("assert.false(foo)"), - errors: [createError("assert.true")] + errors: [createError("assert.true")], }, // false { code: testUtils.wrapInTest("assert.false(!foo)"), output: testUtils.wrapInTest("assert.true(foo)"), - errors: [createError("assert.false")] - } - ] - + errors: [createError("assert.false")], + }, + ], }); diff --git a/tests/lib/rules/no-nested-tests.js b/tests/lib/rules/no-nested-tests.js index 80b248de..b98b6997 100644 --- a/tests/lib/rules/no-nested-tests.js +++ b/tests/lib/rules/no-nested-tests.js @@ -28,7 +28,7 @@ ruleTester.run("no-nested-tests", rule, { "QUnit.module('ParentModule', function () {\n QUnit.test('Name', function() {});\n QUnit.module('ChildModule', function () {\n QUnit.test('ChildTest', function () {});\n });\n })\n", "QUnit.module('ParentModule', function () {\n test('Name', function() {});\n module('ChildModule', function () {\n QUnit.test('ChildTest', function () {});\n });\n })\n", "module('ParentModule', function () {\n QUnit.test('Name', function() {});\n QUnit.module('ChildModule', function () {\n test('ChildTest', function () {});\n });\n })\n", - "module('ParentModule', function () {\n test('Name', function() {});\n module('ChildModule', function () {\n test('ChildTest', function () {});\n });\n })\n" + "module('ParentModule', function () {\n test('Name', function() {});\n module('ChildModule', function () {\n test('ChildTest', function () {});\n });\n })\n", ], invalid: [ @@ -39,14 +39,13 @@ ruleTester.run("no-nested-tests", rule, { "QUnit.test('ParentTest', function () {\n QUnit.module('ChildModule', function () {\n QUnit.test('ChildTest', function () {});\n });\n });", "test('ParentTest', function () {\n module('ChildModule', function () {\n test('ChildTest', function () {});\n });\n });", "QUnit.test('ParentTest', function () {\n module('ChildModule', function () {\n test('ChildTest', function () {});\n });\n });", - "test('ParentTest', function () {\n QUnit.module('ChildModule', function () {\n QUnit.test('ChildTest', function () {});\n });\n });" - ] - .map(code => ({ - code, - errors: [ - { - messageId: "noNestedTests" - } - ] - })) + "test('ParentTest', function () {\n QUnit.module('ChildModule', function () {\n QUnit.test('ChildTest', function () {});\n });\n });", + ].map((code) => ({ + code, + errors: [ + { + messageId: "noNestedTests", + }, + ], + })), }); diff --git a/tests/lib/rules/no-ok-equality.js b/tests/lib/rules/no-ok-equality.js index ca787899..dbc52b1c 100644 --- a/tests/lib/rules/no-ok-equality.js +++ b/tests/lib/rules/no-ok-equality.js @@ -22,8 +22,8 @@ function createError(assertion, suggestion, a, b) { assertion, suggestion, a, - b - } + b, + }, }; } @@ -34,7 +34,6 @@ function createError(assertion, suggestion, a, b) { const ruleTester = new RuleTester(); ruleTester.run("no-ok-equality", rule, { - valid: [ "test('Name', function (assert) { assert.ok(x); });", "test('Name', function (assert) { assert.ok(x, 'message'); });", @@ -50,189 +49,157 @@ ruleTester.run("no-ok-equality", rule, { "test('Name', function (foo) { foo.notOk(x, 'message'); });", { code: "test('Name', function () { ok(x === 1); });", - options: [{ allowGlobal: false }] + options: [{ allowGlobal: false }], }, { code: "test('Name', function () { notOk(x === 1); });", - options: [{ allowGlobal: false }] + options: [{ allowGlobal: false }], }, { code: "test('Name', function () { ok(x == 1); });", - options: [{ allowGlobal: false }] + options: [{ allowGlobal: false }], }, { code: "test('Name', function () { notOk(x == 1); });", - options: [{ allowGlobal: false }] + options: [{ allowGlobal: false }], }, { code: "test('Name', function () { ok(x !== 1); });", - options: [{ allowGlobal: false }] + options: [{ allowGlobal: false }], }, { code: "test('Name', function () { notOk(x !== 1); });", - options: [{ allowGlobal: false }] + options: [{ allowGlobal: false }], }, { code: "test('Name', function () { ok(x != 1); });", - options: [{ allowGlobal: false }] + options: [{ allowGlobal: false }], }, { code: "test('Name', function () { notOk(x != 1); });", - options: [{ allowGlobal: false }] + options: [{ allowGlobal: false }], }, // Boolean assertions with no equality checks: "test('Name', function (assert) { assert.true(x); });", "test('Name', function (assert) { assert.true(x, 'message'); });", "test('Name', function (assert) { assert.false(x); });", - "test('Name', function (assert) { assert.false(x, 'message'); });" + "test('Name', function (assert) { assert.false(x, 'message'); });", ], invalid: [ { code: "test('Name', function (assert) { assert.ok(x === 1); });", output: "test('Name', function (assert) { assert.strictEqual(x, 1); });", - errors: [ - createError("assert.ok", "assert.strictEqual", "x", "1") - ] + errors: [createError("assert.ok", "assert.strictEqual", "x", "1")], }, { // TypeScript: test callback is adding a type to `this` code: "test('Name', function (this: LocalTestContext, assert) { assert.ok(x === 1); });", output: "test('Name', function (this: LocalTestContext, assert) { assert.strictEqual(x, 1); });", parser: require.resolve("@typescript-eslint/parser"), - errors: [ - createError("assert.ok", "assert.strictEqual", "x", "1") - ] + errors: [createError("assert.ok", "assert.strictEqual", "x", "1")], }, { code: "test('Name', (assert) => { assert.ok(x === 1); });", output: "test('Name', (assert) => { assert.strictEqual(x, 1); });", parserOptions: { ecmaVersion: 6 }, - errors: [ - createError("assert.ok", "assert.strictEqual", "x", "1") - ] + errors: [createError("assert.ok", "assert.strictEqual", "x", "1")], }, { // With message: code: "test('Name', function (assert) { assert.ok(x === 1, 'my message'); });", output: "test('Name', function (assert) { assert.strictEqual(x, 1, 'my message'); });", - errors: [ - createError("assert.ok", "assert.strictEqual", "x", "1") - ] + errors: [createError("assert.ok", "assert.strictEqual", "x", "1")], }, { code: "test('Name', function (assert) { assert.notOk(x === 1); });", output: "test('Name', function (assert) { assert.notStrictEqual(x, 1); });", errors: [ - createError("assert.notOk", "assert.notStrictEqual", "x", "1") - ] + createError("assert.notOk", "assert.notStrictEqual", "x", "1"), + ], }, { code: "test('Name', function () { ok(x === 1); });", output: "test('Name', function () { strictEqual(x, 1); });", options: [{ allowGlobal: true }], - errors: [ - createError("ok", "strictEqual", "x", "1") - ] + errors: [createError("ok", "strictEqual", "x", "1")], }, { code: "test('Name', function () { notOk(x === 1); });", output: "test('Name', function () { notStrictEqual(x, 1); });", options: [{ allowGlobal: true }], - errors: [ - createError("notOk", "notStrictEqual", "x", "1") - ] + errors: [createError("notOk", "notStrictEqual", "x", "1")], }, { code: "test('Name', function (assert) { assert.ok(x == 1); });", output: "test('Name', function (assert) { assert.equal(x, 1); });", - errors: [ - createError("assert.ok", "assert.equal", "x", "1") - ] + errors: [createError("assert.ok", "assert.equal", "x", "1")], }, { code: "test('Name', function (assert) { assert.notOk(x == 1); });", output: "test('Name', function (assert) { assert.notEqual(x, 1); });", - errors: [ - createError("assert.notOk", "assert.notEqual", "x", "1") - ] + errors: [createError("assert.notOk", "assert.notEqual", "x", "1")], }, { code: "test('Name', function () { ok(x == 1); });", output: "test('Name', function () { equal(x, 1); });", options: [{ allowGlobal: true }], - errors: [ - createError("ok", "equal", "x", "1") - ] + errors: [createError("ok", "equal", "x", "1")], }, { code: "test('Name', function () { notOk(x == 1); });", output: "test('Name', function () { notEqual(x, 1); });", options: [{ allowGlobal: true }], - errors: [ - createError("notOk", "notEqual", "x", "1") - ] + errors: [createError("notOk", "notEqual", "x", "1")], }, { code: "test('Name', function (assert) { assert.ok(x !== 1); });", output: "test('Name', function (assert) { assert.notStrictEqual(x, 1); });", errors: [ - createError("assert.ok", "assert.notStrictEqual", "x", "1") - ] + createError("assert.ok", "assert.notStrictEqual", "x", "1"), + ], }, { code: "test('Name', function (assert) { assert.notOk(x !== 1); });", output: "test('Name', function (assert) { assert.strictEqual(x, 1); });", errors: [ - createError("assert.notOk", "assert.strictEqual", "x", "1") - ] + createError("assert.notOk", "assert.strictEqual", "x", "1"), + ], }, { code: "test('Name', function () { ok(x !== 1); });", output: "test('Name', function () { notStrictEqual(x, 1); });", options: [{ allowGlobal: true }], - errors: [ - createError("ok", "notStrictEqual", "x", "1") - ] + errors: [createError("ok", "notStrictEqual", "x", "1")], }, { code: "test('Name', function () { notOk(x !== 1); });", output: "test('Name', function () { strictEqual(x, 1); });", options: [{ allowGlobal: true }], - errors: [ - createError("notOk", "strictEqual", "x", "1") - ] + errors: [createError("notOk", "strictEqual", "x", "1")], }, { code: "test('Name', function (assert) { assert.ok(x != 1); });", output: "test('Name', function (assert) { assert.notEqual(x, 1); });", - errors: [ - createError("assert.ok", "assert.notEqual", "x", "1") - ] + errors: [createError("assert.ok", "assert.notEqual", "x", "1")], }, { code: "test('Name', function (assert) { assert.notOk(x != 1); });", output: "test('Name', function (assert) { assert.equal(x, 1); });", - errors: [ - createError("assert.notOk", "assert.equal", "x", "1") - ] + errors: [createError("assert.notOk", "assert.equal", "x", "1")], }, { code: "test('Name', function () { ok(x != 1); });", output: "test('Name', function () { notEqual(x, 1); });", options: [{ allowGlobal: true }], - errors: [ - createError("ok", "notEqual", "x", "1") - ] + errors: [createError("ok", "notEqual", "x", "1")], }, { code: "test('Name', function () { notOk(x != 1); });", output: "test('Name', function () { equal(x, 1); });", options: [{ allowGlobal: true }], - errors: [ - createError("notOk", "equal", "x", "1") - ] + errors: [createError("notOk", "equal", "x", "1")], }, // Boolean assertions with equality checks @@ -241,33 +208,32 @@ ruleTester.run("no-ok-equality", rule, { code: "test('Name', function (assert) { assert.true(x === 1); });", output: "test('Name', function (assert) { assert.strictEqual(x, 1); });", errors: [ - createError("assert.true", "assert.strictEqual", "x", "1") - ] + createError("assert.true", "assert.strictEqual", "x", "1"), + ], }, { // true, with message code: "test('Name', function (assert) { assert.true(x === 1, 'message'); });", output: "test('Name', function (assert) { assert.strictEqual(x, 1, 'message'); });", errors: [ - createError("assert.true", "assert.strictEqual", "x", "1") - ] + createError("assert.true", "assert.strictEqual", "x", "1"), + ], }, { // false code: "test('Name', function (assert) { assert.false(x === 1); });", output: "test('Name', function (assert) { assert.notStrictEqual(x, 1); });", errors: [ - createError("assert.false", "assert.notStrictEqual", "x", "1") - ] + createError("assert.false", "assert.notStrictEqual", "x", "1"), + ], }, { // false, with message code: "test('Name', function (assert) { assert.false(x === 1, 'message'); });", output: "test('Name', function (assert) { assert.notStrictEqual(x, 1, 'message'); });", errors: [ - createError("assert.false", "assert.notStrictEqual", "x", "1") - ] - } - ] - + createError("assert.false", "assert.notStrictEqual", "x", "1"), + ], + }, + ], }); diff --git a/tests/lib/rules/no-only.js b/tests/lib/rules/no-only.js index c97327ba..9b7b0270 100644 --- a/tests/lib/rules/no-only.js +++ b/tests/lib/rules/no-only.js @@ -22,39 +22,49 @@ ruleTester.run("no-only", rule, { "QUnit.module.test('Name', function() { });", "QUnit.test('Name', function() { });", "module.test('Name', function() { });", - "test('Name', function() { });" + "test('Name', function() { });", ], invalid: [ { code: "QUnit.module.only('Name', function() { });", - errors: [{ - messageId: "noQUnitOnly" - }] + errors: [ + { + messageId: "noQUnitOnly", + }, + ], }, { code: "QUnit.only('Name', function() { });", - errors: [{ - messageId: "noQUnitOnly" - }] + errors: [ + { + messageId: "noQUnitOnly", + }, + ], }, { code: "module.only('Name', function() { });", - errors: [{ - messageId: "noQUnitOnly" - }] + errors: [ + { + messageId: "noQUnitOnly", + }, + ], }, { code: "only('Name', function() { });", - errors: [{ - messageId: "noQUnitOnly" - }] + errors: [ + { + messageId: "noQUnitOnly", + }, + ], }, { code: "test.only('Name', function() { });", - errors: [{ - messageId: "noQUnitOnly" - }] - } - ] + errors: [ + { + messageId: "noQUnitOnly", + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-qunit-push.js b/tests/lib/rules/no-qunit-push.js index 10b44638..a1d7d27c 100644 --- a/tests/lib/rules/no-qunit-push.js +++ b/tests/lib/rules/no-qunit-push.js @@ -11,7 +11,6 @@ const rule = require("../../../lib/rules/no-qunit-push"), RuleTester = require("eslint").RuleTester; - //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ @@ -19,16 +18,18 @@ const rule = require("../../../lib/rules/no-qunit-push"), const ruleTester = new RuleTester(); ruleTester.run("no-qunit-push", rule, { valid: [ - "this.pushResult({ result: result, actual: actual, expected: expected, message: message });" + "this.pushResult({ result: result, actual: actual, expected: expected, message: message });", ], invalid: [ { code: "QUnit.push(result, actual, expected, message);", - errors: [{ - messageId: "noQUnitPush", - type: "CallExpression" - }] - } - ] + errors: [ + { + messageId: "noQUnitPush", + type: "CallExpression", + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-qunit-start-in-tests.js b/tests/lib/rules/no-qunit-start-in-tests.js index 984f3644..e2871e4d 100644 --- a/tests/lib/rules/no-qunit-start-in-tests.js +++ b/tests/lib/rules/no-qunit-start-in-tests.js @@ -19,8 +19,8 @@ function createError(context) { return { messageId: "noQUnitStartInTests", data: { - context - } + context, + }, }; } @@ -30,38 +30,37 @@ function createError(context) { const ruleTester = new RuleTester(); ruleTester.run("no-qunit-start-in-tests", rule, { - valid: [ // Must allow QUnit.start() outside of test contexts "QUnit.start();", // Must allow QUnit.start() in module properties that are not hooks - "QUnit.module(\"a module\", { notAHook: function() { QUnit.start(); } });" + 'QUnit.module("a module", { notAHook: function() { QUnit.start(); } });', ], invalid: [ { - code: "QUnit.asyncTest(\"test\", function(assert) { QUnit.start(); });", - errors: [createError("test")] + code: 'QUnit.asyncTest("test", function(assert) { QUnit.start(); });', + errors: [createError("test")], }, // Module hooks { - code: "QUnit.module(\"module\", { beforeEach: function() { QUnit.start(); } });", - errors: [createError("beforeEach hook")] + code: 'QUnit.module("module", { beforeEach: function() { QUnit.start(); } });', + errors: [createError("beforeEach hook")], }, { - code: "QUnit.module(\"module\", { afterEach: function() { QUnit.start(); } });", - errors: [createError("afterEach hook")] + code: 'QUnit.module("module", { afterEach: function() { QUnit.start(); } });', + errors: [createError("afterEach hook")], }, { - code: "QUnit.module(\"module\", { setup: function() { QUnit.start(); } });", - errors: [createError("setup hook")] + code: 'QUnit.module("module", { setup: function() { QUnit.start(); } });', + errors: [createError("setup hook")], }, { - code: "QUnit.module(\"module\", { teardown: function() { QUnit.start(); } });", - errors: [createError("teardown hook")] - } + code: 'QUnit.module("module", { teardown: function() { QUnit.start(); } });', + errors: [createError("teardown hook")], + }, // Module hooks (new-style modules) /* Enable when supported @@ -74,5 +73,5 @@ ruleTester.run("no-qunit-start-in-tests", rule, { errors: [createError("afterEach hook")] } */ - ] + ], }); diff --git a/tests/lib/rules/no-qunit-stop.js b/tests/lib/rules/no-qunit-stop.js index a5b67e27..94543e25 100644 --- a/tests/lib/rules/no-qunit-stop.js +++ b/tests/lib/rules/no-qunit-stop.js @@ -11,32 +11,32 @@ const rule = require("../../../lib/rules/no-qunit-stop"), RuleTester = require("eslint").RuleTester; - //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ const ruleTester = new RuleTester(); ruleTester.run("no-qunit-stop", rule, { - - valid: [ - "var done = assert.async();" - ], + valid: ["var done = assert.async();"], invalid: [ { code: "QUnit.stop();", - errors: [{ - messageId: "noQUnitStop", - type: "CallExpression" - }] + errors: [ + { + messageId: "noQUnitStop", + type: "CallExpression", + }, + ], }, { code: "QUnit.stop(2);", - errors: [{ - messageId: "noQUnitStop", - type: "CallExpression" - }] - } - ] + errors: [ + { + messageId: "noQUnitStop", + type: "CallExpression", + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-reassign-log-callbacks.js b/tests/lib/rules/no-reassign-log-callbacks.js index c13c2ccc..4c7e583a 100644 --- a/tests/lib/rules/no-reassign-log-callbacks.js +++ b/tests/lib/rules/no-reassign-log-callbacks.js @@ -19,7 +19,6 @@ const rule = require("../../../lib/rules/no-reassign-log-callbacks"), const ruleTester = new RuleTester(); ruleTester.run("no-reassign-log-callbacks", rule, { - valid: [ "QUnit.begin(function () { });", "QUnit.done(function () { });", @@ -30,58 +29,72 @@ ruleTester.run("no-reassign-log-callbacks", rule, { "QUnit.testStart(function () { });", // Assigning to other QUnit properties is okay - "QUnit.blah = function () { };" + "QUnit.blah = function () { };", ], invalid: [ { code: "QUnit.begin = function () { };", - errors: [{ - messageId: "noReassignLogCallbacks", - type: "AssignmentExpression" - }] + errors: [ + { + messageId: "noReassignLogCallbacks", + type: "AssignmentExpression", + }, + ], }, { code: "QUnit.done = function () { };", - errors: [{ - messageId: "noReassignLogCallbacks", - type: "AssignmentExpression" - }] + errors: [ + { + messageId: "noReassignLogCallbacks", + type: "AssignmentExpression", + }, + ], }, { code: "QUnit.log = function () { };", - errors: [{ - messageId: "noReassignLogCallbacks", - type: "AssignmentExpression" - }] + errors: [ + { + messageId: "noReassignLogCallbacks", + type: "AssignmentExpression", + }, + ], }, { code: "QUnit.moduleDone = function () { };", - errors: [{ - messageId: "noReassignLogCallbacks", - type: "AssignmentExpression" - }] + errors: [ + { + messageId: "noReassignLogCallbacks", + type: "AssignmentExpression", + }, + ], }, { code: "QUnit.moduleStart = function () { };", - errors: [{ - messageId: "noReassignLogCallbacks", - type: "AssignmentExpression" - }] + errors: [ + { + messageId: "noReassignLogCallbacks", + type: "AssignmentExpression", + }, + ], }, { code: "QUnit.testDone = function () { };", - errors: [{ - messageId: "noReassignLogCallbacks", - type: "AssignmentExpression" - }] + errors: [ + { + messageId: "noReassignLogCallbacks", + type: "AssignmentExpression", + }, + ], }, { code: "QUnit.testStart = function () { };", - errors: [{ - messageId: "noReassignLogCallbacks", - type: "AssignmentExpression" - }] - } - ] + errors: [ + { + messageId: "noReassignLogCallbacks", + type: "AssignmentExpression", + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-reset.js b/tests/lib/rules/no-reset.js index dc92209a..39bc4555 100644 --- a/tests/lib/rules/no-reset.js +++ b/tests/lib/rules/no-reset.js @@ -19,22 +19,23 @@ const rule = require("../../../lib/rules/no-reset"), const ruleTester = new RuleTester(); ruleTester.run("no-reset", rule, { - valid: [ // Only invocations are reported "QUnit.reset", // Only QUnit.reset() is reported - "QUnit.init()" + "QUnit.init()", ], invalid: [ { code: "QUnit.reset();", - errors: [{ - messageId: "noReset", - type: "CallExpression" - }] - } - ] + errors: [ + { + messageId: "noReset", + type: "CallExpression", + }, + ], + }, + ], }); diff --git a/tests/lib/rules/no-setup-teardown.js b/tests/lib/rules/no-setup-teardown.js index a9c70ebb..ac20316b 100644 --- a/tests/lib/rules/no-setup-teardown.js +++ b/tests/lib/rules/no-setup-teardown.js @@ -13,14 +13,12 @@ const rule = require("../../../lib/rules/no-setup-teardown"), RuleTester = require("eslint").RuleTester; - //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ const ruleTester = new RuleTester(); ruleTester.run("no-setup-teardown", rule, { - valid: [ // Modules without hooks are always fine "QUnit.module('Module');", @@ -35,52 +33,59 @@ ruleTester.run("no-setup-teardown", rule, { "QUnit.module('Module', { beforeEach: function () {}, afterEach: function () {} });", // other property names are not reported - "QUnit.module('Module', { foo: function () {} });" + "QUnit.module('Module', { foo: function () {} });", ], invalid: [ { code: "QUnit.module('module', { setup: function () { } });", output: "QUnit.module('module', { beforeEach: function () { } });", - errors: [{ - messageId: "noSetupTeardown", - data: { - forbidden: "setup", - preferred: "beforeEach" + errors: [ + { + messageId: "noSetupTeardown", + data: { + forbidden: "setup", + preferred: "beforeEach", + }, + type: "Property", }, - type: "Property" - }] + ], }, { code: "QUnit.module('module', { teardown: function () { } });", output: "QUnit.module('module', { afterEach: function () { } });", - errors: [{ - messageId: "noSetupTeardown", - data: { - forbidden: "teardown", - preferred: "afterEach" + errors: [ + { + messageId: "noSetupTeardown", + data: { + forbidden: "teardown", + preferred: "afterEach", + }, + type: "Property", }, - type: "Property" - }] + ], }, { code: "QUnit.module('module', { setup: function () {}, teardown: function () { } });", output: "QUnit.module('module', { beforeEach: function () {}, afterEach: function () { } });", - errors: [{ - messageId: "noSetupTeardown", - data: { - forbidden: "setup", - preferred: "beforeEach" + errors: [ + { + messageId: "noSetupTeardown", + data: { + forbidden: "setup", + preferred: "beforeEach", + }, + type: "Property", }, - type: "Property" - }, { - messageId: "noSetupTeardown", - data: { - forbidden: "teardown", - preferred: "afterEach" + { + messageId: "noSetupTeardown", + data: { + forbidden: "teardown", + preferred: "afterEach", + }, + type: "Property", }, - type: "Property" - }] - } - ] + ], + }, + ], }); diff --git a/tests/lib/rules/no-skip.js b/tests/lib/rules/no-skip.js index 83fccc06..6449114f 100644 --- a/tests/lib/rules/no-skip.js +++ b/tests/lib/rules/no-skip.js @@ -22,29 +22,29 @@ ruleTester.run("no-skip", rule, { "QUnit.module.test('Name', function() { });", "QUnit.test('Name', function() { });", "module.test('Name', function() { });", - "test('Name', function() { });" + "test('Name', function() { });", ], invalid: [ { code: "QUnit.module.skip('Name', function() { });", - errors: [{ messageId: "noQUnitSkip" }] + errors: [{ messageId: "noQUnitSkip" }], }, { code: "QUnit.skip('Name', function() { });", - errors: [{ messageId: "noQUnitSkip" }] + errors: [{ messageId: "noQUnitSkip" }], }, { code: "module.skip('Name', function() { });", - errors: [{ messageId: "noQUnitSkip" }] + errors: [{ messageId: "noQUnitSkip" }], }, { code: "skip('Name', function() { });", - errors: [{ messageId: "noQUnitSkip" }] + errors: [{ messageId: "noQUnitSkip" }], }, { code: "test.skip('Name', function() { });", - errors: [{ messageId: "noQUnitSkip" }] - } - ] + errors: [{ messageId: "noQUnitSkip" }], + }, + ], }); diff --git a/tests/lib/rules/no-test-expect-argument.js b/tests/lib/rules/no-test-expect-argument.js index 983f7c9c..5fb1cc6e 100644 --- a/tests/lib/rules/no-test-expect-argument.js +++ b/tests/lib/rules/no-test-expect-argument.js @@ -11,7 +11,6 @@ const rule = require("../../../lib/rules/no-test-expect-argument"), RuleTester = require("eslint").RuleTester; - //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ @@ -35,49 +34,57 @@ ruleTester.run("no-test-expect-argument", rule, { "test('test name', function (assert) { assert.expect(0); });", "QUnit.test('test name', function (assert) { assert.expect(0); });", "asyncTest('test name', function (assert) { assert.expect(0); });", - "QUnit.asyncTest('test name', function (assert) { assert.expect(0); });" + "QUnit.asyncTest('test name', function (assert) { assert.expect(0); });", ], invalid: [ { code: "test('test name', 0, function () { });", - errors: [{ - messageId: "noExpectArgument", - data: { - callee: "test" + errors: [ + { + messageId: "noExpectArgument", + data: { + callee: "test", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "QUnit.test('test name', 0, function () { });", - errors: [{ - messageId: "noExpectArgument", - data: { - callee: "QUnit.test" + errors: [ + { + messageId: "noExpectArgument", + data: { + callee: "QUnit.test", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "asyncTest('test name', 0, function () { });", - errors: [{ - messageId: "noExpectArgument", - data: { - callee: "asyncTest" + errors: [ + { + messageId: "noExpectArgument", + data: { + callee: "asyncTest", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "QUnit.asyncTest('test name', 0, function () { });", - errors: [{ - messageId: "noExpectArgument", - data: { - callee: "QUnit.asyncTest" + errors: [ + { + messageId: "noExpectArgument", + data: { + callee: "QUnit.asyncTest", + }, + type: "CallExpression", }, - type: "CallExpression" - }] - } - ] + ], + }, + ], }); diff --git a/tests/lib/rules/no-throws-string.js b/tests/lib/rules/no-throws-string.js index 0adc2dcf..9cdbe5aa 100644 --- a/tests/lib/rules/no-throws-string.js +++ b/tests/lib/rules/no-throws-string.js @@ -11,7 +11,6 @@ const rule = require("../../../lib/rules/no-throws-string"), RuleTester = require("eslint").RuleTester; - //------------------------------------------------------------------------------ // Tests //------------------------------------------------------------------------------ @@ -39,62 +38,72 @@ ruleTester.run("no-throws-string", rule, { "QUnit.test('a test', function (assert) { assert.foo(function () { }, 'string', 'Error should have been thrown'); });", // Not inside a test - "someFunction();" + "someFunction();", ], invalid: [ { code: "QUnit.test('a test', function (assert) { assert.throws(function () { }, 'Error message', 'Error should have been thrown'); });", - errors: [{ - messageId: "noThrowsWithString", - data: { - callee: "assert.throws" + errors: [ + { + messageId: "noThrowsWithString", + data: { + callee: "assert.throws", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { // TypeScript: test callback is adding a type to `this` code: "QUnit.test('a test', function (this: LocalTestContext, assert) { assert.throws(function () { }, 'Error message', 'Error should have been thrown'); });", parser: require.resolve("@typescript-eslint/parser"), - errors: [{ - messageId: "noThrowsWithString", - data: { - callee: "assert.throws" + errors: [ + { + messageId: "noThrowsWithString", + data: { + callee: "assert.throws", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "QUnit.test('a test', (assert) => { assert.throws(function () { }, 'Error message', 'Error should have been thrown'); });", parserOptions: { ecmaVersion: 6 }, - errors: [{ - messageId: "noThrowsWithString", - data: { - callee: "assert.throws" + errors: [ + { + messageId: "noThrowsWithString", + data: { + callee: "assert.throws", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "QUnit.test('a test', function (assert) { assert.raises(function () { }, 'Error message', 'Error should have been thrown'); });", - errors: [{ - messageId: "noThrowsWithString", - data: { - callee: "assert.raises" + errors: [ + { + messageId: "noThrowsWithString", + data: { + callee: "assert.raises", + }, + type: "CallExpression", }, - type: "CallExpression" - }] + ], }, { code: "QUnit.test('a test', function () { throws(function () { }, 'Error message', 'Error should have been thrown'); });", - errors: [{ - messageId: "noThrowsWithString", - data: { - callee: "throws" + errors: [ + { + messageId: "noThrowsWithString", + data: { + callee: "throws", + }, + type: "CallExpression", }, - type: "CallExpression" - }] - } - ] + ], + }, + ], }); diff --git a/tests/lib/rules/require-expect.js b/tests/lib/rules/require-expect.js index be46ec10..0826f9fa 100644 --- a/tests/lib/rules/require-expect.js +++ b/tests/lib/rules/require-expect.js @@ -23,8 +23,8 @@ function alwaysErrorMessage(expectCallName) { return { messageId: "expectRequired", data: { - expect: expectCallName - } + expect: expectCallName, + }, }; } @@ -32,8 +32,8 @@ function exceptSimpleErrorMessage(expectCallName) { return { messageId: "expectRequiredComplexTest", data: { - expect: expectCallName - } + expect: expectCallName, + }, }; } @@ -41,75 +41,74 @@ function neverErrorMessage(expectCallName) { return { messageId: "expectForbidden", data: { - expect: expectCallName - } + expect: expectCallName, + }, }; } ruleTester.run("require-expect", rule, { - valid: [ // default, calling expect is valid { code: "test('name', function(assert) { assert.expect(0) });", - options: [] // Defaults to except-simple + options: [], // Defaults to never-except-zero }, // default, using global expect { code: "test('name', function() { expect(0) });", - options: [] // Defaults to except-simple + options: [], // Defaults to never-except-zero }, // default, using global expect, TS { // TypeScript: test callback is adding a type to `this` code: "test('name', function(this: LocalTestContext) { expect(0) });", - options: [], // Defaults to except-simple - parser: require.resolve("@typescript-eslint/parser") + options: [], // Defaults to never-except-zero + parser: require.resolve("@typescript-eslint/parser"), }, // CallExpression without parent object throws no errors { code: "test('name', function(assert) { assert.expect(0); noParentObject() });", - options: [] // Defaults to except-simple + options: [], // Defaults to never-except-zero }, { code: "test('name', function(assert) { assert.expect(0); noParentObject() });", - options: ["always"] + options: ["always"], }, { // With arrow function code: "test('name', assert => { assert.expect(0); noParentObject() });", - options: ["always"] + options: ["always"], }, // assert at top of test context is ok { code: "test('name', function(assert) { assert.ok(true) });", - options: ["except-simple"] + options: ["except-simple"], }, { code: "test('name', function(assert) { assert.ok(true) });", - options: [] // Defaults to except-simple + options: [], // Defaults to never-except-zero }, // global assertion at top of test context is ok { code: "test('name', function() { ok(true) });", - options: ["except-simple"] + options: ["except-simple"], }, // assert in block with expect at the top of test context is ok { code: "test('name', function(assert) { assert.expect(0); if (false) { assert.ok(false) } });", - options: ["except-simple"] + options: ["except-simple"], }, // global assertion in block with expect at the top of test context is ok { code: "test('name', function() { expect(0); if (false) { ok(false) } });", - options: ["except-simple"] + options: ["except-simple"], }, // nested modules @@ -125,46 +124,46 @@ ruleTester.run("require-expect", rule, { " ok(true, 'still no expect needed');", " });", " });", - "});" + "});", ].join(returnAndIndent), - options: ["except-simple"] + options: ["except-simple"], }, // "except-simple" (with arrow function) { code: "test('name', assert => { assert.expect(2); assert.ok(true); assert.ok(true); });", - options: ["except-simple"] + options: ["except-simple"], }, // "never" - assert without expect is fine { code: "test('name', function(assert) { assert.ok(true) });", - options: ["never"] + options: ["never"], }, // "never" - assert without expect is fine (with arrow function) { code: "test('name', assert => { assert.ok(true) });", - options: ["never"] + options: ["never"], }, // "never-except-zero" - assert without expect is fine { code: "test('name', function(assert) { assert.ok(true) });", - options: ["never-except-zero"] + options: ["never-except-zero"], }, // "never-except-zero" - expect zero is fine { code: "test('name', function(assert) { assert.expect(0) });", - options: ["never-except-zero"] + options: ["never-except-zero"], }, // "never-except-zero" - expect zero is fine (with arrow function) { code: "test('name', assert => { assert.expect(0) });", - options: ["never-except-zero"] - } + options: ["never-except-zero"], + }, ], invalid: [ @@ -172,151 +171,146 @@ ruleTester.run("require-expect", rule, { { code: "test('name', function(assert) { other.assert.expect(0) });", options: ["always"], - errors: [alwaysErrorMessage("assert.expect")] + errors: [alwaysErrorMessage("assert.expect")], }, { code: "test('name', (assert) => { other.assert.expect(0) });", options: ["always"], parserOptions: { ecmaVersion: 6 }, - errors: [alwaysErrorMessage("assert.expect")] + errors: [alwaysErrorMessage("assert.expect")], }, { // TypeScript: test callback is adding a type to `this` code: "test('name', function(this: LocalTestContext, assert) { other.assert.expect(0) });", options: ["always"], parser: require.resolve("@typescript-eslint/parser"), - errors: [alwaysErrorMessage("assert.expect")] + errors: [alwaysErrorMessage("assert.expect")], }, // assert in loop block { code: "test('name', function(assert) { while (false) { assert.ok(true) } });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("assert.expect")] - }, - { - code: "test('name', function(assert) { while (false) { assert.ok(true) } });", - options: [], // Defaults to except-simple - errors: [exceptSimpleErrorMessage("assert.expect")] + errors: [exceptSimpleErrorMessage("assert.expect")], }, // global assertion in loop block { code: "test('name', function() { for (;;) { ok(true) } });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("expect")] + errors: [exceptSimpleErrorMessage("expect")], }, // assert used in callback { code: "test('name', function(assert) { maybe(function() { assert.ok(true) }); });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("assert.expect")] + errors: [exceptSimpleErrorMessage("assert.expect")], }, { code: "test('name', function(assert) { maybe(() => { assert.ok(true) }); });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("assert.expect")] + errors: [exceptSimpleErrorMessage("assert.expect")], }, { code: "test('name', function(assert) { maybe(() => assert.ok(true)); });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("assert.expect")] + errors: [exceptSimpleErrorMessage("assert.expect")], }, // "except-simple" with arrow function and assert used in callback { code: "test('name', assert => { maybe(() => { assert.ok(true) }); });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("assert.expect")] + errors: [exceptSimpleErrorMessage("assert.expect")], }, { code: "test('name', assert => { maybe(() => { maybe(() => { assert.ok(true) }); }); });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("assert.expect")] + errors: [exceptSimpleErrorMessage("assert.expect")], }, // global assertion used in callback { code: "test('name', function(assert) { maybe(function() { ok(true) }); });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("assert.expect")] + errors: [exceptSimpleErrorMessage("assert.expect")], }, // assert in function expression { code: "test('name', function(assert) { var maybe = function() { assert.ok(true) }; });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("assert.expect")] + errors: [exceptSimpleErrorMessage("assert.expect")], }, // global assertion in function expression { code: "test('name', function() { var maybe = function() { ok(true) }; });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("expect")] + errors: [exceptSimpleErrorMessage("expect")], }, // `expect` does not count when used inside of a block. { code: "test('name', function(assert) { function name() { assert.expect(1); assert.ok(true) } });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("assert.expect")] + errors: [exceptSimpleErrorMessage("assert.expect")], }, // global `expect` does not count when used inside of a block. { code: "test('name', function() { function name() { expect(1); ok(true) } });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("expect")] + errors: [exceptSimpleErrorMessage("expect")], }, // `expect` does not count when used inside of a callback { code: "test('name', function(assert) { maybe(function() { assert.expect(1); assert.ok(true) }); });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("assert.expect")] + errors: [exceptSimpleErrorMessage("assert.expect")], }, // global `expect` does not count when used inside of a callback { code: "test('name', function() { maybe(function() { expect(1); ok(true) }); });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("expect")] + errors: [exceptSimpleErrorMessage("expect")], }, // assert in outer test context and nested in a block { code: "test('name', function(assert) { assert.ok(true); if (true) { assert.ok(true); } });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("assert.expect")] + errors: [exceptSimpleErrorMessage("assert.expect")], }, // Deeply nested { code: "test('name', function() { if (true) { if (true) { ok(true); } } });", options: ["except-simple"], - errors: [exceptSimpleErrorMessage("expect")] + errors: [exceptSimpleErrorMessage("expect")], }, // Sending assert to a function { code: [ "function myAssertion(a, assert, c) { assert.ok(true); }", - "test('name', function(assert) { myAssertion(null, assert, null); });" + "test('name', function(assert) { myAssertion(null, assert, null); });", ].join(returnAndIndent), options: ["except-simple"], - errors: [exceptSimpleErrorMessage("assert.expect")] + errors: [exceptSimpleErrorMessage("assert.expect")], }, // Sending assert to a function - renaming assert { code: [ "function myAssertion(a, localAssert, c) { localAssert.ok(true); }", - "test('name', function(myAssert) { myAssertion(null, myAssert, null); });" + "test('name', function(myAssert) { myAssertion(null, myAssert, null); });", ].join(returnAndIndent), options: ["except-simple"], - errors: [exceptSimpleErrorMessage("myAssert.expect")] + errors: [exceptSimpleErrorMessage("myAssert.expect")], }, // nested modules @@ -335,38 +329,46 @@ ruleTester.run("require-expect", rule, { " assert.ok(true, 'has expect');", " });", " });", - "});" + "});", ].join(returnAndIndent), options: ["except-simple"], - errors: [Object.assign(exceptSimpleErrorMessage("assert.expect"), { line: 2 })] + errors: [ + Object.assign(exceptSimpleErrorMessage("assert.expect"), { + line: 2, + }), + ], }, // Multiple assert statements only report one error per test { code: "test('name', function(assert) { maybe(function() { assert.ok(true); assert.ok(true); }) });", options: ["except-simple"], - errors: [Object.assign(exceptSimpleErrorMessage("assert.expect"), { column: 1 })] + errors: [ + Object.assign(exceptSimpleErrorMessage("assert.expect"), { + column: 1, + }), + ], }, // "always" configuration - simple case { code: "test('name', function(assert) { assert.ok(true) })", options: ["always"], - errors: [alwaysErrorMessage("assert.expect")] + errors: [alwaysErrorMessage("assert.expect")], }, // "always" configuration - global assertion { code: "test('name', function() { equal(1, 1) })", options: ["always"], - errors: [alwaysErrorMessage("expect")] + errors: [alwaysErrorMessage("expect")], }, // "always" configuration checking that "expect" is called on assert. { code: "test('name', function(assert) { other.expect(1); assert.ok(true); });", options: ["always"], - errors: [alwaysErrorMessage("assert.expect")] + errors: [alwaysErrorMessage("assert.expect")], }, // "always" configuration - errors are reported on `test()` line @@ -378,39 +380,49 @@ ruleTester.run("require-expect", rule, { " assert.ok(true, 'needs expect');", " }", " });", - "});" + "});", ].join(returnAndIndent), options: ["always"], - errors: [Object.assign(alwaysErrorMessage("assert.expect"), { line: 2 })] + errors: [ + Object.assign(alwaysErrorMessage("assert.expect"), { line: 2 }), + ], }, // "always" configuration - multiple assert statements only report one error per test { code: "test('name', function(assert) { maybe(function() { assert.ok(true); assert.ok(true); }) });", options: ["always"], - errors: [Object.assign(alwaysErrorMessage("assert.expect"), { column: 1 })] + errors: [ + Object.assign(alwaysErrorMessage("assert.expect"), { + column: 1, + }), + ], }, // "never" - expect is not fine { code: "test('name', function(assert) { assert.expect(1); assert.ok(true); });", options: ["never"], - errors: [neverErrorMessage("assert.expect")] + errors: [neverErrorMessage("assert.expect")], }, // "never" - expect zero is not fine { code: "test('name', function(assert) { assert.expect(0) });", options: ["never"], - errors: [neverErrorMessage("assert.expect")] + errors: [neverErrorMessage("assert.expect")], }, // "never-except-zero" - expect is not fine { code: "test('name', function(assert) { assert.expect(1); assert.ok(true); });", options: ["never-except-zero"], - errors: [neverErrorMessage("assert.expect")] - } - ] - + errors: [neverErrorMessage("assert.expect")], + }, + { + code: "test('name', function(assert) { assert.expect(1); assert.ok(true); });", + options: [], // defaults to never-except-zero + errors: [neverErrorMessage("assert.expect")], + }, + ], }); diff --git a/tests/lib/rules/require-object-in-propequal.js b/tests/lib/rules/require-object-in-propequal.js index a6c5b90c..4dfe895e 100644 --- a/tests/lib/rules/require-object-in-propequal.js +++ b/tests/lib/rules/require-object-in-propequal.js @@ -19,12 +19,14 @@ const rule = require("../../../lib/rules/require-object-in-propequal"), function createInvalid(assertionCode, invalidValue) { return { code: testUtils.wrapInTest(assertionCode), - errors: [{ - messageId: "useObject", - data: { - value: invalidValue - } - }] + errors: [ + { + messageId: "useObject", + data: { + value: invalidValue, + }, + }, + ], }; } @@ -35,8 +37,8 @@ function createInvalid(assertionCode, invalidValue) { const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 2020, - ecmaFeatures: { jsx: true } - } + ecmaFeatures: { jsx: true }, + }, }); ruleTester.run("require-object-in-propequal", rule, { @@ -76,24 +78,69 @@ ruleTester.run("require-object-in-propequal", rule, { testUtils.wrapInTest("assert.deepEqual(actual, 0n);"), testUtils.wrapInTest("assert.propEqual(actual, foo?.bar);"), - testUtils.wrapInTest("assert.propEqual(actual, foo?.bar?.());") + testUtils.wrapInTest("assert.propEqual(actual, foo?.bar?.());"), ], invalid: [ - createInvalid(testUtils.wrapInTest("assert.propEqual(actual, 0);"), "0"), - createInvalid(testUtils.wrapInArrowTest("assert.propEqual(actual, 0);"), "0"), - createInvalid(testUtils.wrapInTest("assert.propEqual(actual, -1);"), "-1"), - createInvalid(testUtils.wrapInTest("assert.propEqual(actual, 'string');"), "'string'"), - createInvalid(testUtils.wrapInTest("assert.propEqual(actual, `template`);"), "`template`"), - createInvalid(testUtils.wrapInTest("assert.propEqual(actual, true);"), "true"), - createInvalid(testUtils.wrapInTest("assert.propEqual(actual, false);"), "false"), - createInvalid(testUtils.wrapInTest("assert.propEqual(actual, null);"), "null"), - createInvalid(testUtils.wrapInTest("assert.propEqual(actual, /regex/);"), "/regex/"), - createInvalid(testUtils.wrapInTest("assert.propEqual(actual, ++foo);"), "++foo"), - createInvalid(testUtils.wrapInTest("assert.propEqual(actual, foo++);"), "foo++"), - createInvalid(testUtils.wrapInTest("assert.propEqual(actual, --foo);"), "--foo"), - createInvalid(testUtils.wrapInTest("assert.propEqual(actual, foo--);"), "foo--"), - createInvalid(testUtils.wrapInTest("assert.propEqual(actual, )"), ""), - createInvalid(testUtils.wrapInTest("assert.propEqual(actual, 0n);"), "0n") - ] + createInvalid( + testUtils.wrapInTest("assert.propEqual(actual, 0);"), + "0", + ), + createInvalid( + testUtils.wrapInArrowTest("assert.propEqual(actual, 0);"), + "0", + ), + createInvalid( + testUtils.wrapInTest("assert.propEqual(actual, -1);"), + "-1", + ), + createInvalid( + testUtils.wrapInTest("assert.propEqual(actual, 'string');"), + "'string'", + ), + createInvalid( + testUtils.wrapInTest("assert.propEqual(actual, `template`);"), + "`template`", + ), + createInvalid( + testUtils.wrapInTest("assert.propEqual(actual, true);"), + "true", + ), + createInvalid( + testUtils.wrapInTest("assert.propEqual(actual, false);"), + "false", + ), + createInvalid( + testUtils.wrapInTest("assert.propEqual(actual, null);"), + "null", + ), + createInvalid( + testUtils.wrapInTest("assert.propEqual(actual, /regex/);"), + "/regex/", + ), + createInvalid( + testUtils.wrapInTest("assert.propEqual(actual, ++foo);"), + "++foo", + ), + createInvalid( + testUtils.wrapInTest("assert.propEqual(actual, foo++);"), + "foo++", + ), + createInvalid( + testUtils.wrapInTest("assert.propEqual(actual, --foo);"), + "--foo", + ), + createInvalid( + testUtils.wrapInTest("assert.propEqual(actual, foo--);"), + "foo--", + ), + createInvalid( + testUtils.wrapInTest("assert.propEqual(actual, )"), + "", + ), + createInvalid( + testUtils.wrapInTest("assert.propEqual(actual, 0n);"), + "0n", + ), + ], }); diff --git a/tests/lib/rules/resolve-async.js b/tests/lib/rules/resolve-async.js index 2cbb90cc..a8a75da0 100644 --- a/tests/lib/rules/resolve-async.js +++ b/tests/lib/rules/resolve-async.js @@ -23,9 +23,9 @@ function createNeedStartCallsMessage(nodeType, numberOfCalls = 1) { messageId: "needMoreStartCalls", data: { semaphore, - callOrCalls + callOrCalls, }, - type: nodeType + type: nodeType, }; } @@ -33,9 +33,9 @@ function createAsyncCallbackNotCalledMessage(nodeType, callbackVar) { return { messageId: "asyncCallbackNotCalled", data: { - asyncVar: callbackVar || "done" + asyncVar: callbackVar || "done", }, - type: nodeType + type: nodeType, }; } @@ -45,7 +45,6 @@ function createAsyncCallbackNotCalledMessage(nodeType, callbackVar) { const ruleTester = new RuleTester(); ruleTester.run("resolve-async", rule, { - valid: [ // stop()/start() "test('name', function () { stop(); start(); });", @@ -149,346 +148,359 @@ ruleTester.run("resolve-async", rule, { // module properties that aren't hooks should not be flagged "QUnit.module({ someProp: function () { QUnit.stop(); } });", - "QUnit.module({ someProp: function (assert) { assert.async(); } });" + "QUnit.module({ someProp: function (assert) { assert.async(); } });", ], invalid: [ // stop()/start() { code: "asyncTest('name', function () {});", - errors: [createNeedStartCallsMessage("CallExpression")] + errors: [createNeedStartCallsMessage("CallExpression")], }, { code: "test('name', function () { stop(); });", - errors: [createNeedStartCallsMessage("CallExpression")] + errors: [createNeedStartCallsMessage("CallExpression")], }, { code: "QUnit.asyncTest('name', function () {});", - errors: [createNeedStartCallsMessage("CallExpression")] + errors: [createNeedStartCallsMessage("CallExpression")], }, { code: "QUnit.test('name', function () { stop(); });", - errors: [createNeedStartCallsMessage("CallExpression")] + errors: [createNeedStartCallsMessage("CallExpression")], }, { code: "test('name', function () { QUnit.stop(); });", - errors: [createNeedStartCallsMessage("CallExpression")] + errors: [createNeedStartCallsMessage("CallExpression")], }, { code: "QUnit.test('name', function () { QUnit.stop(); });", - errors: [createNeedStartCallsMessage("CallExpression")] + errors: [createNeedStartCallsMessage("CallExpression")], }, { code: "QUnit.module('name', { setup: function () { QUnit.stop(); } });", - errors: [createNeedStartCallsMessage("Property")] + errors: [createNeedStartCallsMessage("Property")], }, { code: "QUnit.module('name', { teardown: function () { QUnit.stop(); } });", - errors: [createNeedStartCallsMessage("Property")] + errors: [createNeedStartCallsMessage("Property")], }, { code: "QUnit.module('name', { beforeEach: function () { QUnit.stop(); } });", - errors: [createNeedStartCallsMessage("Property")] + errors: [createNeedStartCallsMessage("Property")], }, { code: "QUnit.module('name', { afterEach: function () { QUnit.stop(); } });", - errors: [createNeedStartCallsMessage("Property")] + errors: [createNeedStartCallsMessage("Property")], }, // Multiple start() calls needed { code: "asyncTest('name', function () { stop(); });", - errors: [createNeedStartCallsMessage("CallExpression", 2)] + errors: [createNeedStartCallsMessage("CallExpression", 2)], }, { code: "test('name', function () { stop(); stop(); });", - errors: [createNeedStartCallsMessage("CallExpression", 2)] + errors: [createNeedStartCallsMessage("CallExpression", 2)], }, { code: "test('name', function () { QUnit.stop(); stop(); });", - errors: [createNeedStartCallsMessage("CallExpression", 2)] + errors: [createNeedStartCallsMessage("CallExpression", 2)], }, { code: "QUnit.asyncTest('name', function () { stop(); });", - errors: [createNeedStartCallsMessage("CallExpression", 2)] + errors: [createNeedStartCallsMessage("CallExpression", 2)], }, { code: "QUnit.test('name', function () { stop(); stop(); });", - errors: [createNeedStartCallsMessage("CallExpression", 2)] + errors: [createNeedStartCallsMessage("CallExpression", 2)], }, { code: "QUnit.test('name', function () { stop(); QUnit.stop(); });", - errors: [createNeedStartCallsMessage("CallExpression", 2)] + errors: [createNeedStartCallsMessage("CallExpression", 2)], }, { code: "asyncTest('name', function () { QUnit.stop(); });", - errors: [createNeedStartCallsMessage("CallExpression", 2)] + errors: [createNeedStartCallsMessage("CallExpression", 2)], }, { code: "test('name', function () { QUnit.stop(); QUnit.stop(); });", - errors: [createNeedStartCallsMessage("CallExpression", 2)] + errors: [createNeedStartCallsMessage("CallExpression", 2)], }, { code: "QUnit.asyncTest('name', function () { QUnit.stop(); });", - errors: [createNeedStartCallsMessage("CallExpression", 2)] + errors: [createNeedStartCallsMessage("CallExpression", 2)], }, { code: "QUnit.test('name', function () { QUnit.stop(); QUnit.stop(); });", - errors: [createNeedStartCallsMessage("CallExpression", 2)] + errors: [createNeedStartCallsMessage("CallExpression", 2)], }, { code: "QUnit.module('name', { setup: function () { QUnit.stop(); QUnit.stop(); } });", - errors: [createNeedStartCallsMessage("Property", 2)] + errors: [createNeedStartCallsMessage("Property", 2)], }, { code: "QUnit.module('name', { teardown: function () { QUnit.stop(); QUnit.stop(); } });", - errors: [createNeedStartCallsMessage("Property", 2)] + errors: [createNeedStartCallsMessage("Property", 2)], }, { code: "QUnit.module('name', { beforeEach: function () { QUnit.stop(); QUnit.stop(); } });", - errors: [createNeedStartCallsMessage("Property", 2)] + errors: [createNeedStartCallsMessage("Property", 2)], }, { code: "QUnit.module('name', { afterEach: function () { QUnit.stop(); QUnit.stop(); } });", - errors: [createNeedStartCallsMessage("Property", 2)] + errors: [createNeedStartCallsMessage("Property", 2)], }, // assert.async() { code: "test('name', function (assert) { var done = assert.async(); });", - errors: [createAsyncCallbackNotCalledMessage("CallExpression")] + errors: [createAsyncCallbackNotCalledMessage("CallExpression")], }, { code: "QUnit.test('name', function (assert) { var done = assert.async(); });", - errors: [createAsyncCallbackNotCalledMessage("CallExpression")] + errors: [createAsyncCallbackNotCalledMessage("CallExpression")], }, { code: "test('name', function (assert) { var done; done = assert.async(); });", - errors: [createAsyncCallbackNotCalledMessage("CallExpression")] + errors: [createAsyncCallbackNotCalledMessage("CallExpression")], }, { code: "QUnit.test('name', function (assert) { var done; done = assert.async(); });", - errors: [createAsyncCallbackNotCalledMessage("CallExpression")] + errors: [createAsyncCallbackNotCalledMessage("CallExpression")], }, { code: "QUnit.module({ setup: function (assert) { var done = assert.async(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property")] + errors: [createAsyncCallbackNotCalledMessage("Property")], }, { code: "QUnit.module({ teardown: function (assert) { var done = assert.async(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property")] + errors: [createAsyncCallbackNotCalledMessage("Property")], }, { code: "QUnit.module({ beforeEach: function (assert) { var done = assert.async(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property")] + errors: [createAsyncCallbackNotCalledMessage("Property")], }, { code: "QUnit.module({ afterEach: function (assert) { var done = assert.async(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property")] + errors: [createAsyncCallbackNotCalledMessage("Property")], }, { code: "QUnit.module({ setup: function (assert) { var done; done = assert.async(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property")] + errors: [createAsyncCallbackNotCalledMessage("Property")], }, { code: "QUnit.module({ teardown: function (assert) { var done; done = assert.async(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property")] + errors: [createAsyncCallbackNotCalledMessage("Property")], }, { code: "QUnit.module({ beforeEach: function (assert) { var done; done = assert.async(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property")] + errors: [createAsyncCallbackNotCalledMessage("Property")], }, { code: "QUnit.module({ afterEach: function (assert) { var done; done = assert.async(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property")] + errors: [createAsyncCallbackNotCalledMessage("Property")], }, // Multiple assert.async() calls { code: "test('name', function (assert) { var done1 = assert.async(), done2 = assert.async(); done1(); });", - errors: [createAsyncCallbackNotCalledMessage("CallExpression", "done2")] + errors: [ + createAsyncCallbackNotCalledMessage("CallExpression", "done2"), + ], }, { code: "test('name', function (assert) { var done1 = assert.async(), done2 = assert.async(); });", errors: [ createAsyncCallbackNotCalledMessage("CallExpression", "done1"), - createAsyncCallbackNotCalledMessage("CallExpression", "done2") - ] + createAsyncCallbackNotCalledMessage("CallExpression", "done2"), + ], }, { code: "QUnit.test('name', function (assert) { var done1 = assert.async(), done2 = assert.async(); done1(); });", - errors: [createAsyncCallbackNotCalledMessage("CallExpression", "done2")] + errors: [ + createAsyncCallbackNotCalledMessage("CallExpression", "done2"), + ], }, { code: "QUnit.test('name', function (assert) { var done1 = assert.async(), done2 = assert.async(); });", errors: [ createAsyncCallbackNotCalledMessage("CallExpression", "done1"), - createAsyncCallbackNotCalledMessage("CallExpression", "done2") - ] + createAsyncCallbackNotCalledMessage("CallExpression", "done2"), + ], }, { code: "test('name', function (assert) { var done1, done2; done1 = assert.async(); done2 = assert.async(); done1(); });", - errors: [createAsyncCallbackNotCalledMessage("CallExpression", "done2")] + errors: [ + createAsyncCallbackNotCalledMessage("CallExpression", "done2"), + ], }, { code: "test('name', function (assert) { var done1, done2; done1 = assert.async(); done2 = assert.async(); });", errors: [ createAsyncCallbackNotCalledMessage("CallExpression", "done1"), - createAsyncCallbackNotCalledMessage("CallExpression", "done2") - ] + createAsyncCallbackNotCalledMessage("CallExpression", "done2"), + ], }, { code: "QUnit.test('name', function (assert) { var done1, done2; done1 = assert.async(); done2 = assert.async(); done1(); });", - errors: [createAsyncCallbackNotCalledMessage("CallExpression", "done2")] + errors: [ + createAsyncCallbackNotCalledMessage("CallExpression", "done2"), + ], }, { code: "QUnit.test('name', function (assert) { var done1, done2; done1 = assert.async(); done2 = assert.async(); });", errors: [ createAsyncCallbackNotCalledMessage("CallExpression", "done1"), - createAsyncCallbackNotCalledMessage("CallExpression", "done2") - ] + createAsyncCallbackNotCalledMessage("CallExpression", "done2"), + ], }, { code: "QUnit.module({ setup: function (assert) { var done1 = assert.async(), done2 = assert.async(); done1(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property", "done2")] + errors: [createAsyncCallbackNotCalledMessage("Property", "done2")], }, { code: "QUnit.module({ setup: function (assert) { var done1 = assert.async(), done2 = assert.async(); } });", errors: [ createAsyncCallbackNotCalledMessage("Property", "done1"), - createAsyncCallbackNotCalledMessage("Property", "done2") - ] + createAsyncCallbackNotCalledMessage("Property", "done2"), + ], }, { code: "QUnit.module({ setup: function (assert) { var done1, done2; done1 = assert.async(); done2 = assert.async(); done1(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property", "done2")] + errors: [createAsyncCallbackNotCalledMessage("Property", "done2")], }, { code: "QUnit.module({ setup: function (assert) { var done1, done2; done1 = assert.async(); done2 = assert.async(); } });", errors: [ createAsyncCallbackNotCalledMessage("Property", "done1"), - createAsyncCallbackNotCalledMessage("Property", "done2") - ] + createAsyncCallbackNotCalledMessage("Property", "done2"), + ], }, { code: "QUnit.module({ teardown: function (assert) { var done1 = assert.async(), done2 = assert.async(); done1(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property", "done2")] + errors: [createAsyncCallbackNotCalledMessage("Property", "done2")], }, { code: "QUnit.module({ teardown: function (assert) { var done1 = assert.async(), done2 = assert.async(); } });", errors: [ createAsyncCallbackNotCalledMessage("Property", "done1"), - createAsyncCallbackNotCalledMessage("Property", "done2") - ] + createAsyncCallbackNotCalledMessage("Property", "done2"), + ], }, { code: "QUnit.module({ teardown: function (assert) { var done1, done2; done1 = assert.async(); done2 = assert.async(); done1(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property", "done2")] + errors: [createAsyncCallbackNotCalledMessage("Property", "done2")], }, { code: "QUnit.module({ teardown: function (assert) { var done1, done2; done1 = assert.async(); done2 = assert.async(); } });", errors: [ createAsyncCallbackNotCalledMessage("Property", "done1"), - createAsyncCallbackNotCalledMessage("Property", "done2") - ] + createAsyncCallbackNotCalledMessage("Property", "done2"), + ], }, { code: "QUnit.module({ beforeEach: function (assert) { var done1 = assert.async(), done2 = assert.async(); done1(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property", "done2")] + errors: [createAsyncCallbackNotCalledMessage("Property", "done2")], }, { code: "QUnit.module({ beforeEach: function (assert) { var done1 = assert.async(), done2 = assert.async(); } });", errors: [ createAsyncCallbackNotCalledMessage("Property", "done1"), - createAsyncCallbackNotCalledMessage("Property", "done2") - ] + createAsyncCallbackNotCalledMessage("Property", "done2"), + ], }, { code: "QUnit.module({ beforeEach: function (assert) { var done1, done2; done1 = assert.async(); done2 = assert.async(); done1(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property", "done2")] + errors: [createAsyncCallbackNotCalledMessage("Property", "done2")], }, { code: "QUnit.module({ beforeEach: function (assert) { var done1, done2; done1 = assert.async(); done2 = assert.async(); } });", errors: [ createAsyncCallbackNotCalledMessage("Property", "done1"), - createAsyncCallbackNotCalledMessage("Property", "done2") - ] + createAsyncCallbackNotCalledMessage("Property", "done2"), + ], }, { code: "QUnit.module({ afterEach: function (assert) { var done1 = assert.async(), done2 = assert.async(); done1(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property", "done2")] + errors: [createAsyncCallbackNotCalledMessage("Property", "done2")], }, { code: "QUnit.module({ afterEach: function (assert) { var done1 = assert.async(), done2 = assert.async(); } });", errors: [ createAsyncCallbackNotCalledMessage("Property", "done1"), - createAsyncCallbackNotCalledMessage("Property", "done2") - ] + createAsyncCallbackNotCalledMessage("Property", "done2"), + ], }, { code: "QUnit.module({ afterEach: function (assert) { var done1, done2; done1 = assert.async(); done2 = assert.async(); done1(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property", "done2")] + errors: [createAsyncCallbackNotCalledMessage("Property", "done2")], }, { code: "QUnit.module({ afterEach: function (assert) { var done1, done2; done1 = assert.async(); done2 = assert.async(); } });", errors: [ createAsyncCallbackNotCalledMessage("Property", "done1"), - createAsyncCallbackNotCalledMessage("Property", "done2") - ] + createAsyncCallbackNotCalledMessage("Property", "done2"), + ], }, // assert.async callback can be invoked via .call/.apply { code: "QUnit.test('name', function (assert) { var done1 = assert.async(), done2 = assert.async(); done1.call(); });", - errors: [createAsyncCallbackNotCalledMessage("CallExpression", "done2")] + errors: [ + createAsyncCallbackNotCalledMessage("CallExpression", "done2"), + ], }, { code: "QUnit.test('name', function (assert) { var done1 = assert.async(), done2 = assert.async(); done1.apply(); });", - errors: [createAsyncCallbackNotCalledMessage("CallExpression", "done2")] + errors: [ + createAsyncCallbackNotCalledMessage("CallExpression", "done2"), + ], }, // start/stop calls outside of test context should not affect count { code: "start(); asyncTest('name', function () {});", - errors: [createNeedStartCallsMessage("CallExpression")] + errors: [createNeedStartCallsMessage("CallExpression")], }, { code: "start(); test('name', function () { stop(); });", - errors: [createNeedStartCallsMessage("CallExpression")] + errors: [createNeedStartCallsMessage("CallExpression")], }, { code: "stop(); asyncTest('name', function () {});", - errors: [createNeedStartCallsMessage("CallExpression")] + errors: [createNeedStartCallsMessage("CallExpression")], }, { code: "stop(); test('name', function () { stop(); });", - errors: [createNeedStartCallsMessage("CallExpression")] + errors: [createNeedStartCallsMessage("CallExpression")], }, // assert.async() calls outside of test context should not matter { code: "var done = assert.async(); asyncTest('name', function () { done(); });", - errors: [createNeedStartCallsMessage("CallExpression")] + errors: [createNeedStartCallsMessage("CallExpression")], }, { code: "var done1 = assert.async(); QUnit.test('name', function (assert) { var done2 = assert.async(); done1(); });", - errors: [createAsyncCallbackNotCalledMessage("CallExpression", "done2")] + errors: [ + createAsyncCallbackNotCalledMessage("CallExpression", "done2"), + ], }, // async calls can be done using a different variable { code: "QUnit.test('name', function (foo) { var done = foo.async(); });", - errors: [createAsyncCallbackNotCalledMessage("CallExpression")] + errors: [createAsyncCallbackNotCalledMessage("CallExpression")], }, { code: "QUnit.test('name', (foo) => { var done = foo.async(); });", parserOptions: { ecmaVersion: 6 }, - errors: [createAsyncCallbackNotCalledMessage("CallExpression")] + errors: [createAsyncCallbackNotCalledMessage("CallExpression")], }, { code: "QUnit.module({ setup: function (foo) { var done = foo.async(); } });", - errors: [createAsyncCallbackNotCalledMessage("Property")] - } - ] - + errors: [createAsyncCallbackNotCalledMessage("Property")], + }, + ], });