diff --git a/.eslintrc.yaml b/.eslintrc.yaml
deleted file mode 100644
index 0e75d025b..000000000
--- a/.eslintrc.yaml
+++ /dev/null
@@ -1,102 +0,0 @@
-root: true
-
-env:
- node: true
-
-plugins:
- - prefer-arrow-functions
- - simple-import-sort
-
-extends:
- # Order matters, later configs purposefully override settings from earlier configs
- - eslint:recommended
- - plugin:@typescript-eslint/recommended
- - plugin:@typescript-eslint/recommended-requiring-type-checking
- - plugin:import/recommended
- - plugin:node/recommended
- - prettier # this actually turns OFF all prettier rules running via eslint
-
-parserOptions:
- ecmaVersion: latest
- sourceType: module
- project: tsconfig.json
-
-rules:
- # Turn off base eslint rules in lieu of @typescript-eslint rules (just below)
- no-return-await: off
- no-shadow: off
- no-unused-expressions: off
- no-unused-vars: off
- no-use-before-define: off
- no-useless-constructor: off
- "@typescript-eslint/lines-between-class-members": [error, always, { exceptAfterSingleLine: true }]
- "@typescript-eslint/naming-convention":
- - error
- - selector: typeLike
- format: [PascalCase]
- - selector: function
- format: [camelCase]
- - selector: variable
- modifiers: [global, const]
- # The plugin can't differentiate between:
- # - values, which should be UPPER_CASE
- # - arrow functions, which should be camelCase
- format: [UPPER_CASE, camelCase]
- "@typescript-eslint/no-shadow": error
- "@typescript-eslint/no-unused-expressions": [error]
- "@typescript-eslint/no-unused-vars": [error, { argsIgnorePattern: ^_ }]
- "@typescript-eslint/no-use-before-define": [error]
- "@typescript-eslint/no-useless-constructor": [error]
- "@typescript-eslint/no-explicit-any": off
- class-methods-use-this: off
- curly: error
- func-names: [error, as-needed]
- func-style: [error, expression, { "allowArrowFunctions": true }]
- import/extensions:
- - error
- - ignorePackages
- - js: never
- ts: never
- import/no-extraneous-dependencies:
- - error
- - devDependencies: ["**/*.test.ts", "**/tests/**"]
- import/no-unresolved: off
- import/prefer-default-export: off
- lines-between-class-members: off
- max-len:
- - error
- - code: 120
- comments: 130
- tabWidth: 2
- ignoreComments: false
- ignoreTrailingComments: false
- ignoreUrls: true
- ignoreStrings: true
- ignoreTemplateLiterals: true
- ignoreRegExpLiterals: true
- no-continue: off
- no-param-reassign: [error, { props: false }]
- no-restricted-syntax: off
- node/no-extraneous-import: [error]
- node/no-unpublished-import: off
- node/no-missing-import: off
- node/no-unsupported-features/es-syntax: [error, { ignores: [modules, dynamicImport] }]
- prefer-arrow-functions/prefer-arrow-functions:
- - error # only allow arrow functions
- - returnStyle: implicit # required to be set for autofixes
- simple-import-sort/exports: error
- simple-import-sort/imports: error
-
-settings:
- import/resolver:
- typescript:
- alwaysTryTypes: true
-
-overrides:
- - files: ["**/*test.ts"]
- env:
- jest: true
- plugins:
- - jest
- extends:
- - plugin:jest/recommended
diff --git a/.github/actions/action_tests/action.yaml b/.github/actions/action_tests/action.yaml
index 16b5a7251..2da8737b8 100644
--- a/.github/actions/action_tests/action.yaml
+++ b/.github/actions/action_tests/action.yaml
@@ -54,6 +54,7 @@ runs:
shell: bash
working-directory: ${{ inputs.path }}
env:
+ JEST_SUITE_NAME: Action Tests
PLUGINS_TEST_CLI_VERSION: ${{ inputs.cli-version }}
PLUGINS_TEST_CLI_PATH: ${{ env.CLI_PATH }}
@@ -64,10 +65,23 @@ runs:
breakpoint-id: trunk-plugins-action-tests
shell: bash
working-directory: ${{ inputs.path }}
- trunk-token: ${{ inputs.trunk-token }}
+ trunk-token: ${{ inputs.trunk-token }}
org: trunk-staging-org
run:
npm test ${{ inputs.append-args }} ${{ env.PLATFORM_APPEND_ARGS }} --passWithNoTests --ci
env:
+ JEST_SUITE_NAME: Action Tests
PLUGINS_TEST_CLI_VERSION: ${{ inputs.cli-version }}
PLUGINS_TEST_CLI_PATH: ${{ env.CLI_PATH }}
+
+ - name: Upload results
+ # TODO(Tyler): Add upload on MacOS/Windows once the action supports it.
+ if: "!cancelled() && runner.os == 'Linux'"
+ uses: trunk-io/analytics-uploader@main
+ with:
+ junit-paths: junit.xml
+ org-slug: trunk-staging-org
+ token: ${{ inputs.trunk-token }}
+ continue-on-error: true
+ env:
+ TRUNK_PUBLIC_API_ADDRESS: https://api.trunk-staging.io
diff --git a/.github/actions/linter_tests/action.yaml b/.github/actions/linter_tests/action.yaml
index 6ce930423..16e09101f 100644
--- a/.github/actions/linter_tests/action.yaml
+++ b/.github/actions/linter_tests/action.yaml
@@ -24,8 +24,12 @@ inputs:
description: Token to login for sourcery test
required: true
trunk-token:
- description: CI debugger api token
+ description: CI debugger api token (org token)
required: true
+ ref-type:
+ description: release or main
+ required: false
+ default: main
runs:
# TODO(Tyler): See if this can be converted to a js action
@@ -41,6 +45,13 @@ runs:
- name: Install packages and specify defaults
run: |
echo "CLI_PATH=${{ inputs.cli-path }}" >> "$GITHUB_ENV"
+ if [[ "${{ inputs.linter-version }}" == "Latest" ]]; then
+ echo "JEST_LINTER_VERSION=Latest" >> "$GITHUB_ENV"
+ else
+ # If the linter version is KnownGoodVersions, coalesce to Snapshots
+ # For flaky analysis.
+ echo "JEST_LINTER_VERSION=Snapshots" >> "$GITHUB_ENV"
+ fi
case "$RUNNER_OS" in
Linux)
@@ -49,11 +60,11 @@ runs:
sudo rm /var/lib/apt/lists/lock || true
# Install non-hermetic linters
+ sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get -y install libperl-critic-perl perltidy zlib1g-dev software-properties-common
DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC sudo apt-get -y install tzdata
- sudo add-apt-repository ppa:ondrej/php
- sudo apt install -y php8.0-fpm php8.0-xml php8.0-mbstring php8.0-curl
+ sudo apt install -y php8.2-fpm php8.2-xml php8.2-mbstring php8.2-curl
;;
macOS)
brew install cpm
@@ -91,7 +102,10 @@ runs:
PLUGINS_TEST_CLI_PATH: ${{ env.CLI_PATH }}
SOURCERY_TOKEN: ${{ inputs.sourcery-token }}
# Debug recurrent eslint circular JSON errors
- DEBUG: Driver:eslint:*,Driver:cspell:*,Driver:nixpkgs-fmt:*
+ DEBUG: Driver:eslint:*,Driver:nixpkgs-fmt:*
+ JEST_SUITE_NAME: Linter Tests
+ JEST_JUNIT_SUITE_NAME:
+ "{title} ${{ runner.os }} ${{ inputs.ref-type }} ${{ inputs.linter-version }}"
- name: Run plugin tests
if: runner.os != 'Windows'
@@ -101,7 +115,7 @@ runs:
breakpoint-id: trunk-plugins-linter-tests
shell: bash
working-directory: ${{ inputs.path }}
- trunk-token: ${{ inputs.trunk-token }}
+ trunk-token: ${{ inputs.trunk-token }}
org: trunk-staging-org
run: npm test ${{ inputs.append-args }} ${{ env.PLATFORM_APPEND_ARGS }} --ci --runInBand
env:
@@ -110,3 +124,18 @@ runs:
PLUGINS_TEST_CLI_PATH: ${{ env.CLI_PATH }}
SOURCERY_TOKEN: ${{ inputs.sourcery-token }}
DEBUG: Driver:nixpkgs-fmt:*, Driver:eslint:*
+ JEST_SUITE_NAME: Linter Tests
+ JEST_JUNIT_SUITE_NAME:
+ "{title} ${{ runner.os }} ${{ inputs.ref-type }} ${{ env.JEST_LINTER_VERSION }}"
+
+ - name: Upload results
+ # TODO(Tyler): Add upload on MacOS/Windows once the action supports it.
+ if: "!cancelled() && runner.os == 'Linux'"
+ uses: trunk-io/analytics-uploader@main
+ with:
+ junit-paths: junit.xml
+ org-slug: trunk-staging-org
+ token: ${{ inputs.trunk-token }}
+ continue-on-error: true
+ env:
+ TRUNK_PUBLIC_API_ADDRESS: https://api.trunk-staging.io
diff --git a/.github/actions/tool_tests/action.yaml b/.github/actions/tool_tests/action.yaml
index 1aabf985f..9d36c17e3 100644
--- a/.github/actions/tool_tests/action.yaml
+++ b/.github/actions/tool_tests/action.yaml
@@ -17,8 +17,12 @@ inputs:
required: false
default: tools --
trunk-token:
- description: CI debugger api token
+ description: CI debugger api token (org token)
required: true
+ ref-type:
+ description: release or main
+ required: false
+ default: main
runs:
# TODO(Tyler): See if this can be converted to a js action
@@ -29,11 +33,23 @@ runs:
with:
node-version: 18
- - name: Specify defaults
+ - name: Install packages and specify defaults
run: |
echo "CLI_PATH=${{ inputs.cli-path }}" >> "$GITHUB_ENV"
case "$RUNNER_OS" in
+ Linux)
+ # Cleanup any existing apt locks
+ sudo killall apt-get || true
+ sudo rm /var/lib/apt/lists/lock || true
+
+ sudo add-apt-repository ppa:ondrej/php
+ sudo apt-get update
+ sudo apt install -y php8.2-fpm php8.2-xml php8.2-mbstring php8.2-curl
+ ;;
+ macOS)
+ brew install php gnupg
+ ;;
Windows)
echo "PLATFORM_APPEND_ARGS=--maxWorkers=5" >> "$GITHUB_ENV"
if [[ "${{ inputs.cli-path }}" == "" ]]; then
@@ -56,6 +72,8 @@ runs:
env:
PLUGINS_TEST_CLI_VERSION: ${{ inputs.cli-version }}
PLUGINS_TEST_CLI_PATH: ${{ env.CLI_PATH }}
+ JEST_SUITE_NAME: Tool Tests
+ JEST_JUNIT_SUITE_NAME: "{title} ${{ runner.os }} ${{ inputs.ref-type }}"
- name: Run plugin tests
if: runner.os != 'Windows'
@@ -71,3 +89,17 @@ runs:
env:
PLUGINS_TEST_CLI_VERSION: ${{ inputs.cli-version }}
PLUGINS_TEST_CLI_PATH: ${{ env.CLI_PATH }}
+ JEST_SUITE_NAME: Tool Tests
+ JEST_JUNIT_SUITE_NAME: "{title} ${{ runner.os }} ${{ inputs.ref-type }}"
+
+ - name: Upload results
+ # TODO(Tyler): Add upload on MacOS/Windows once the action supports it.
+ if: "!cancelled() && runner.os == 'Linux'"
+ uses: trunk-io/analytics-uploader@main
+ with:
+ junit-paths: junit.xml
+ org-slug: trunk-staging-org
+ token: ${{ inputs.trunk-token }}
+ continue-on-error: true
+ env:
+ TRUNK_PUBLIC_API_ADDRESS: https://api.trunk-staging.io
diff --git a/.github/workflows/annotate_pr.yaml b/.github/workflows/annotate_pr.yaml
index ccd507cf4..2f6afd8f3 100644
--- a/.github/workflows/annotate_pr.yaml
+++ b/.github/workflows/annotate_pr.yaml
@@ -18,7 +18,7 @@ jobs:
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Trunk Check
- uses: trunk-io/trunk-action@da67635060feab46c164bc130690e61864a5d13b # v1.1.13
+ uses: trunk-io/trunk-action@f6c5f1b90503c30e02059667dbc247f2257b63c5 # v1.1.15
with:
post-annotations: true
# This job may fail when the PR was not run on a fork, and that's okay
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index ed448edfb..7db750645 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -34,7 +34,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1
+ uses: github/codeql-action/init@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8
# Override language selection by uncommenting this and choosing your languages
with:
languages: javascript
@@ -42,7 +42,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@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1
+ uses: github/codeql-action/autobuild@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8
# ℹ️ 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
@@ -56,4 +56,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1
+ uses: github/codeql-action/analyze@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8
diff --git a/.github/workflows/nightly.yaml b/.github/workflows/nightly.yaml
index f41a3dc78..91be87085 100644
--- a/.github/workflows/nightly.yaml
+++ b/.github/workflows/nightly.yaml
@@ -66,6 +66,7 @@ jobs:
uses: ./.github/actions/linter_tests
with:
linter-version: ${{ matrix.linter-version }}
+ ref-type: main
sourcery-token: ${{ secrets.TRUNK_SOURCERY_TOKEN }}
trunk-token: ${{ secrets.TRUNK_DEBUGGER_TOKEN }}
@@ -173,13 +174,14 @@ jobs:
with:
linter-version: ${{ matrix.linter-version }}
append-args: linters -- --json --outputFile=${{ matrix.results-file }}-res.json
+ ref-type: release
sourcery-token: ${{ secrets.TRUNK_SOURCERY_TOKEN }}
trunk-token: ${{ secrets.TRUNK_DEBUGGER_TOKEN }}
- name: Upload Test Outputs for Upload Job
# Only upload results from latest. Always run, except when cancelled.
if: (failure() || success()) && matrix.linter-version == 'Latest'
- uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2
+ uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: ${{ matrix.results-file }}-test-results
path: ${{ matrix.results-file }}-res.json
@@ -238,7 +240,7 @@ jobs:
- name: Upload Test Outputs for Notification Job
# Always run, except when cancelled.
if: (failure() || success())
- uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2
+ uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: tools-${{ matrix.results-file }}-test-results
path: ${{ matrix.results-file }}-res.json
diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml
index d1a661a45..a559c6bfa 100644
--- a/.github/workflows/pr.yaml
+++ b/.github/workflows/pr.yaml
@@ -150,6 +150,7 @@ jobs:
uses: ./.github/actions/linter_tests
with:
linter-version: KnownGoodVersion
+ ref-type: main
sourcery-token: ${{ secrets.TRUNK_SOURCERY_TOKEN }}
append-args:
${{ needs.detect_changes.outputs.all-linters }} ${{
@@ -164,6 +165,7 @@ jobs:
uses: ./.github/actions/linter_tests
with:
linter-version: Latest
+ ref-type: main
sourcery-token: ${{ secrets.TRUNK_SOURCERY_TOKEN }}
append-args: ${{ needs.detect_changes.outputs.linters-files }}
trunk-token: ${{ secrets.TRUNK_DEBUGGER_TOKEN }}
@@ -228,7 +230,7 @@ jobs:
lfs: true
- name: Trunk Check
- uses: trunk-io/trunk-action@da67635060feab46c164bc130690e61864a5d13b
+ uses: trunk-io/trunk-action@f6c5f1b90503c30e02059667dbc247f2257b63c5
env:
TRUNK_GITHUB_CHECK_RUN_TITLE: Trunk Check
@@ -255,6 +257,7 @@ jobs:
uses: ./.github/actions/linter_tests
with:
linter-version: Latest
+ ref-type: main
sourcery-token: ${{ secrets.TRUNK_SOURCERY_TOKEN }}
cli-path: ${{ github.workspace }}\trunk.ps1
append-args: ${{needs.detect_changes.outputs.linters-files }} -- --maxWorkers=5
diff --git a/.github/workflows/repo_tests.reusable.yaml b/.github/workflows/repo_tests.reusable.yaml
index 1b0814136..c188d5372 100644
--- a/.github/workflows/repo_tests.reusable.yaml
+++ b/.github/workflows/repo_tests.reusable.yaml
@@ -38,5 +38,6 @@ jobs:
- name: Run repo tests
run: npm test tests/repo_tests --ci
env:
+ JEST_SUITE_NAME: Repo Tests
PLUGINS_TEST_CLI_VERSION: ${{ inputs.cli-version }}
PLUGINS_TEST_CLI_PATH: ${{ inputs.cli-path }}
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index 9000fe624..d7fb300e8 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -35,7 +35,7 @@ jobs:
persist-credentials: false
- name: Run analysis
- uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1
+ uses: ossf/scorecard-action@dc50aa9510b46c811795eb24b2f1ba02a914e534 # v2.3.3
with:
results_file: results.sarif
results_format: sarif
@@ -57,7 +57,7 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: Upload artifact
- uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2
+ uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: SARIF file
path: results.sarif
@@ -65,6 +65,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: Upload to code-scanning
- uses: github/codeql-action/upload-sarif@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1
+ uses: github/codeql-action/upload-sarif@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8
with:
sarif_file: results.sarif
diff --git a/.github/workflows/upgrade_trunk.yaml b/.github/workflows/upgrade_trunk.yaml
index 07cb87ff4..f52157c37 100644
--- a/.github/workflows/upgrade_trunk.yaml
+++ b/.github/workflows/upgrade_trunk.yaml
@@ -26,7 +26,7 @@ jobs:
private_key: ${{ secrets.TRUNK_OPEN_PR_APP_PRIVATE_KEY }}
- name: Trunk Upgrade
- uses: trunk-io/trunk-action/upgrade@da67635060feab46c164bc130690e61864a5d13b
+ uses: trunk-io/trunk-action/upgrade@f6c5f1b90503c30e02059667dbc247f2257b63c5
with:
arguments: -n --bleeding-edge
github-token: ${{ steps.generate-token.outputs.token }}
diff --git a/.github/workflows/upload_results.reusable.yaml b/.github/workflows/upload_results.reusable.yaml
index bd50432f3..8229d46bc 100644
--- a/.github/workflows/upload_results.reusable.yaml
+++ b/.github/workflows/upload_results.reusable.yaml
@@ -60,21 +60,21 @@ jobs:
- name: Retrieve Test Outputs ubuntu
id: download-ubuntu
- uses: actions/download-artifact@8caf195ad4b1dee92908e23f56eeb0696f1dd42d # v4.1.5
+ uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
continue-on-error: true
with:
name: ${{ inputs.results-prefix }}ubuntu-latest-test-results
- name: Retrieve Test Outputs macOS
id: download-macos
- uses: actions/download-artifact@8caf195ad4b1dee92908e23f56eeb0696f1dd42d # v4.1.5
+ uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
continue-on-error: true
with:
name: ${{ inputs.results-prefix }}macos-latest-test-results
- name: Retrieve Test Outputs Windows
id: download-windows
- uses: actions/download-artifact@8caf195ad4b1dee92908e23f56eeb0696f1dd42d # v4.1.5
+ uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
continue-on-error: true
with:
name: ${{ inputs.results-prefix }}windows-latest-test-results
@@ -255,6 +255,7 @@ jobs:
uses: ./.github/actions/linter_tests
with:
linter-version: Latest
+ ref-type: main
append-args: ${{ needs.upload_test_results.outputs.reruns }} -- -u
sourcery-token: ${{ secrets.TRUNK_SOURCERY_TOKEN }}
trunk-token: ${{ secrets.TRUNK_DEBUGGER_TOKEN }}
diff --git a/.github/workflows/windows_nightly.yaml b/.github/workflows/windows_nightly.yaml
index 9c0fa7a7b..6ebf748c9 100644
--- a/.github/workflows/windows_nightly.yaml
+++ b/.github/workflows/windows_nightly.yaml
@@ -44,6 +44,7 @@ jobs:
uses: ./.github/actions/linter_tests
with:
linter-version: ${{ matrix.linter-version }}
+ ref-type: main
sourcery-token: ${{ secrets.TRUNK_SOURCERY_TOKEN }}
cli-path: ${{ github.workspace }}\trunk.ps1
# manually specify more parallelism to avoid bottlenecks
diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml
index 2560edf1d..a43baf62b 100644
--- a/.trunk/trunk.yaml
+++ b/.trunk/trunk.yaml
@@ -2,7 +2,7 @@ version: 0.1
# version used for local trunk runs and testing
cli:
- version: 1.21.1-beta.43
+ version: 1.22.2-beta.9
shell_hooks:
enforce: true
@@ -17,10 +17,32 @@ plugins:
- id: configs
uri: https://github.com/trunk-io/configs
- ref: v1.0.4
+ ref: v1.0.5
lint:
- # enabled linters inherited from github.com/trunk-io/configs plugin
+ files:
+ - name: plugin.yaml
+ filenames: [plugin.yaml]
+ definitions:
+ - name: definition-checker
+ description: Checks plugin.yaml files for repo best practices
+ files: [plugin.yaml]
+ runtime: node
+ extra_packages:
+ - ts-node
+ - yaml
+ commands:
+ - name: check
+ run: ts-node ${workspace}/repo-tools/definition-checker/check.ts ${target}
+ batch: true
+ sandbox_type: expanded
+ output: regex
+ parse_regex: "((?P.*) \\[(?P.*)\\]: (?P.*) \\((?P.*)\\))"
+ success_codes: [0]
+ enabled:
+ # enabled linters inherited from github.com/trunk-io/configs plugin
+ - definition-checker
+ - eslint@9.2.0
disabled:
- pylint # pylint diagnostics are too strict
- semgrep
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c2c767cd2..2d8735670 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,18 +1,24 @@
# Contribution
-Thanks for contributing to trunk's default plugins! Read on to learn more.
+Thanks for contributing to Trunk's default plugins! Read on to learn more.
+- [Prerequisites](#prerequisites)
- [Overview](#overview)
-- [Release process](#releases)
- [Adding new linters](#linters)
-- [Adding new actions](#actions)
- [Adding new tools](#tools)
+- [Adding new actions](#actions)
+- [Release process](#releases)
- [Guidelines](#guidelines)
- [Docs](https://docs.trunk.io)
+## Prerequisites
+
+1. Please [install the trunk CLI](https://docs.trunk.io/check/usage#install-the-cli)
+2. Run `trunk check` in this repo to quickstart git-hooks and codegen
+
## Overview
-We use this repository to provide our users with default linters, actions, and tools. Trunk
+We use this repository to provide our users with default linters, tools, and actions. Trunk
automatically adds the following to users' trunk.yaml:
```yaml
@@ -32,43 +38,24 @@ plugins:
local:
```
-Adding a plugin source lets users run `trunk check enable` or `trunk actions enable` with linters
-and actions defined in that plugin. For more information, see our
+Adding a plugin source lets users run `trunk check enable`, `trunk tools enable`, or
+`trunk actions enable` with definitions in that plugin. For more information, see our
[docs](https://docs.trunk.io/docs/plugins).
+**Please review our [Testing Guide](tests/README.md) for info on writing and running tests.**
+
If you have questions, please [stop by our community Slack](https://slack.trunk.io/), and if you
have a feature request, you can [file it here](https://features.trunk.io/).
-## Releases
-
-`trunk-io/plugins` is released on a fairly regular cadence that is independent of PRs. Users will
-pick up these configuration changes by running `trunk upgrade` to automatically update their plugin
-version to the latest release.
-
-```yaml
-plugins:
- sources:
- - id: trunk
- uri: https://github.com/trunk-io/plugins
- ref: v1.2.5 # will change to the latest release on next `trunk upgrade`
-```
-
-We recommend only setting the above `ref` field to be our released tags, but if you need a linter or
-action that hasn't been released yet, you can set `ref` to be a git SHA. Do **not** set `ref` to be
-a branch name, or `HEAD`, as users will observe buggy behavior.
-
-Note that the ref and the cli version in the trunk.yaml must be compatible. This is managed by
-`required_trunk_version`, as specified in [`plugin.yaml`](plugin.yaml). Users will not be able to
-load a plugin source until they have upgraded to a compliant CLI version.
-
## Linters
To add a new linter:
1. Run `trunk check` to start up Trunk in the background.
-2. Create a directory inside `linters/` with the name of your new linter.
-3. Inside this new directory, create the following structure. Most of these files will be
- automatically created for you:
+2. Run `mkdir linters/` to start. This should autopopulate with a sample
+ [plugin.yaml](./repo-tools/linter-test-helper/linter_sample_plugin.yaml) and
+ [test file](./repo-tools/linter-test-helper/linter_sample.test.ts). If necessary, add them
+ yourself:
```text
linters/
@@ -78,25 +65,57 @@ To add a new linter:
│ README.md (optional)
│ my-config.json (optional)
└─test_data/
- └─basic.in.py (with appropriate extension)
+ └─basic.in.foo (with appropriate extension)
```
-4. Add your linter definition to `plugin.yaml` (consult the docs for [custom linters] and [custom
+3. Add your linter definition to `plugin.yaml` (consult the docs for [custom linters] and [custom
parsers] to understand how it should be defined). Most linters in this repository are defined as
tools as well, so that they can be easily run manually from the command line.
-5. Making sure the plugin in [`.trunk/trunk.yaml`](.trunk/trunk.yaml) is pointing to your local
- repository, run `trunk check enable ` to enable your linter, and run `trunk check` to
- verify that the configuration is valid and that you get desired diagnostics. Running
- `trunk check --verbose` can help provide greater insights when debugging.
-6. Add a few simple test cases to `my_linter.test.ts` to exercise your linter and generate
- snapshots. Refer to [Testing Guidelines](tests/README.md) for more information on writing and
- running tests.
-7. Run `trunk check` to lint your changes.
-8. Open a PR!
+4. Run `trunk check enable ` to enable your linter, and run `trunk check` to verify that
+ the configuration is valid and that you get desired diagnostics. Running `trunk check --verbose`
+ can help provide greater insights when debugging. You may also wish to run on your test data,
+ i.e. `trunk check --verbose --force linters//test_data/basic.in.foo`.
+5. Add a few simple test cases to `my_linter.test.ts` to exercise your linter and generate
+ snapshots. **Refer to the [Testing Guide](tests/README.md) for more information on writing,
+ running, and debugging tests.**
+6. Revert any `.trunk/trunk.yaml` changes, and run `trunk check` to lint your changes.
+7. Open a PR!
[custom linters]: https://docs.trunk.io/check/custom-linters
[custom parsers]: https://docs.trunk.io/check/custom-parsers
+## Tools
+
+If the tool you intend to add functions primarily as a linter, please follow the instruction in
+[linters](#linters). If it functions more as a standalone tool, please add it in the `tools/`
+directory and follow the instructions below.
+
+To add a new tool:
+
+1. Run `trunk check` to start up Trunk in the background.
+2. Run `mkdir tools/` to start. This should autopopulate with a sample
+ [plugin.yaml](./repo-tools/tool-test-helper/tool_sample_plugin.yaml) and
+ [test file](./repo-tools/tool-test-helper/tool_sample.test.ts). If necessary, add them yourself:
+
+ ```text
+ tests/
+ └─my-tool/
+ │ plugin.yaml
+ │ my_tool.test.ts
+ └─README.md (optional)
+ ```
+
+3. Add your tool definition to `plugin.yaml` (consult the docs for
+ [custom tools](https://docs.trunk.io/tools/configuration#tool-definitions) to understand how it
+ should be defined).
+4. Run `trunk tools enable ` to enable your tool, and run its shim(s) from
+ `.trunk/tools/`.
+5. Add a `toolInstallTest` to `my_tool.test.ts` to verify your tool's installation. If neccessary,
+ use `toolTest` instead. **Refer to the [Testing Guide](tests/README.md) for more information on
+ writing, running, and debugging tests.**
+6. Revert any `.trunk/trunk.yaml` changes, and run `trunk check` to lint your changes.
+7. Open a PR!
+
## Actions
To add a new action:
@@ -118,54 +137,44 @@ To add a new action:
`trunk actions enable ` to enable your linter, and run `trunk run ` to
verify that the configuration is valid and that you get desired results. Running
`trunk actions history ` can help provide greater insights when debugging.
-6. We have not yet defined a testing framework for plugin actions, but we are working to add one
- soon! Please briefly document your action in its README.md and in your PR.
+6. Please briefly document your action in its README.md as appropriate.
7. Run `trunk check` to lint your changes.
8. Open a PR!
-[actions]: https://docs.trunk.io/actions
+Testing for Trunk Actions in this repo is in early development, so we do not require testing for new
+action definitions.
-## Tools
+[actions]: https://docs.trunk.io/actions
-If the tool you intend to add functions primarily as a linter, please follow the instruction in
-[linters](#linters). If it functions more as a standalone tool, please add it in the `tools/`
-directory and follow the instructions below.
+## Releases
-To add a new tool:
+`trunk-io/plugins` is released on every few weeks. Users will pick up these configuration changes by
+running `trunk upgrade` to automatically update their plugin version to the latest release.
-1. Run `trunk check` to start up Trunk in the background.
-2. Create a directory inside `tools/` with the name of your new linter.
-3. Inside this new directory, create the following structure. Most of these files will be
- automatically created for you:
+```yaml
+plugins:
+ sources:
+ - id: trunk
+ uri: https://github.com/trunk-io/plugins
+ ref: v1.2.5 # will change to the latest release on next `trunk upgrade`
+```
- ```text
- tests/
- └─my-tool/
- │ plugin.yaml
- │ my_tool.test.ts
- └─README.md (optional)
- ```
+We recommend only setting the above `ref` field to be our released tags, but if you need a
+linter/tool/action that hasn't been released yet, you can set `ref` to be a git SHA. Do **not** set
+`ref` to be a branch name, as plugin branches are not refreshed.
-4. Add your tool definition to `plugin.yaml` (consult the docs for
- [custom tools](https://docs.trunk.io/tools/configuration#tool-definitions) to understand how it
- should be defined).
-5. Making sure the plugin in [`.trunk/trunk.yaml`](.trunk/trunk.yaml) is pointing to your local
- repository, run `trunk tools enable ` to enable your tool, and access its shim(s) to run
- it from `.trunk/tools/`.
-6. Add a `toolInstallTest` to `my_tool.test.ts` to verify your tool's installation. If neccessary,
- use `toolTest` instead. Refer to [Testing Guidelines](tests/README.md) for more information on
- writing and running tests.
-7. Run `trunk check` to lint your changes.
-8. Open a PR!
+Note that the ref and the cli version in the trunk.yaml must be compatible. This is managed by
+`required_trunk_version`, as specified in [`plugin.yaml`](plugin.yaml). Users will not be able to
+load a plugin source until they have upgraded to a compliant CLI version.
## Guidelines
Please follow the guidelines below when contributing:
- After defining a new linter or action, please add it to [`README.md`](README.md).
-- If you run into any problems while defining new linters or actions, feel free to reach out on our
- [Slack](https://slack.trunk.io/). We are continuously working to improve the process of
- integrating with trunk, and all feedback is appreciated!
+- If you run into any problems while defining new linters/tools/actions, feel free to reach out on
+ our [Slack](https://slack.trunk.io/). We are continuously working to improve the process of
+ integrating with Trunk, and all feedback is appreciated!
## Development
diff --git a/README.md b/README.md
index 47e20065f..3df95c43b 100644
--- a/README.md
+++ b/README.md
@@ -3,14 +3,19 @@
[](https://trunk.io)
[][docs]
+[][contributing]
+[][testing guide]
[][slack]
[][vscode]
[](https://api.securityscorecards.dev/projects/github.com/trunk-io/plugins)
+[testing guide]: ./tests/README.md
+[contributing]: ./CONTRIBUTING.md
+
### Welcome
This repository is the official [Trunk.io](https://trunk.io/) repo containing Trunk's integrations
-for linters, formatters, security tools, githooks, and default configs. By default, all trunk users
+for linters, formatters, security tools, githooks, and default configs. By default, all Trunk users
import this repo as a plugin, via this snippet in `.trunk/trunk.yaml`:
```yaml
@@ -18,12 +23,11 @@ plugins:
sources:
- id: trunk
uri: https://github.com/trunk-io/plugins
- ref: v1.4.4
+ ref: v1.5.0
```
-This repo is open to contributions! See our
-[contribution guidelines](https://github.com/trunk-io/plugins/blob/main/CONTRIBUTING.md) and join
-our [slack community][slack] for help. **If you're adding new tools, please see our
+This repo is open to contributions! See our [contribution guidelines](CONTRIBUTING.md) and join our
+[slack community][slack] for help. **If you're adding new tools, please see our
[testing guide](tests/README.md) as well!**
### Supported Linters, Formatters, and Security Tools
@@ -36,7 +40,7 @@ trunk check enable {linter}
| Technology | Linters |
| --------------- | -------------------------------------------------------------------------------------------------------------------- |
-| All | [codespell], [cspell], [gitleaks], [git-diff-check], [pre-commit-hooks], [trunk-toolbox] |
+| All | [codespell], [cspell], [gitleaks], [git-diff-check], [pre-commit-hooks], [trunk-toolbox], [vale] |
| Ansible | [ansible-lint] |
| Apex | [pmd] |
| Bash | [shellcheck], [shfmt] |
@@ -66,7 +70,7 @@ trunk check enable {linter}
| Nix | [nixpkgs-fmt] |
| package.json | [sort-package-json] |
| Perl | [perlcritic], [perltidy] |
-| PHP | [phpstan] |
+| PHP | [php-cs-fixer], [phpstan] |
| PNG | [oxipng] |
| PowerShell | [psscriptanalyzer] |
| Prisma | [prisma] |
@@ -114,7 +118,7 @@ trunk check enable {linter}
[dotenv-linter]: https://github.com/dotenv-linter/dotenv-linter#readme
[dotnet-format]: https://github.com/dotnet/format#readme
[dustilock]: https://github.com/Checkmarx/dustilock
-[eslint]: https://github.com/eslint/eslint#readme
+[eslint]: https://eslint.org/docs/latest/
[flake8]: https://trunk.io/linters/python/flake8
[git-diff-check]: https://git-scm.com/docs/git-diff
[gitleaks]: https://trunk.io/linters/security/gitleaks
@@ -143,6 +147,7 @@ trunk check enable {linter}
[oxipng]: https://github.com/shssoichiro/oxipng#readme
[perlcritic]: https://metacpan.org/pod/Perl::Critic
[perltidy]: https://metacpan.org/dist/Perl-Tidy/view/bin/perltidy
+[php-cs-fixer]: https://github.com/PHP-CS-Fixer/PHP-CS-Fixer#readme
[phpstan]: https://phpstan.org/
[pmd]: https://pmd.github.io/
[pragma-once]: linters/pragma-once/README.md
@@ -187,6 +192,7 @@ trunk check enable {linter}
[trufflehog]: https://trunk.io/linters/security/trufflehog
[trunk-toolbox]: https://github.com/trunk-io/toolbox#readme
[txtpbfmt]: https://github.com/protocolbuffers/txtpbfmt#readme
+[vale]: https://vale.sh/docs/
[yamllint]: https://trunk.io/linters/yaml/yamllint
[yapf]: https://github.com/google/yapf#readme
diff --git a/actions/commitlint/commitlint.test.ts b/actions/commitlint/commitlint.test.ts
index f9dd17fb1..8eaee21c4 100644
--- a/actions/commitlint/commitlint.test.ts
+++ b/actions/commitlint/commitlint.test.ts
@@ -1,4 +1,3 @@
-/* trunk-ignore-all(eslint/import/no-extraneous-dependencies) */
import { actionRunTest } from "tests";
import { TrunkActionDriver } from "tests/driver";
diff --git a/actions/npm-check-pre-push/package.json b/actions/npm-check-pre-push/package.json
index a133bd03c..1d1082a3f 100644
--- a/actions/npm-check-pre-push/package.json
+++ b/actions/npm-check-pre-push/package.json
@@ -1,6 +1,6 @@
{
"dependencies": {
- "chalk": "^5.0.0",
+ "chalk": "4.1.2",
"npm-check": "^6.0.1"
}
}
diff --git a/actions/npm-check/npm_check.js b/actions/npm-check/npm_check.js
index 53643b6a3..8fbe1c2da 100755
--- a/actions/npm-check/npm_check.js
+++ b/actions/npm-check/npm_check.js
@@ -1,6 +1,5 @@
#!/usr/bin/env node
-// trunk-ignore-all(eslint)
const npmCheck = require("npm-check");
const YAML = require("yaml");
const path = require("path");
@@ -30,7 +29,7 @@ npmCheck({})
message: `${uninstalled_count} npm ${pluralize(
uninstalled_count,
"package",
- "packages"
+ "packages",
)} ${pluralize(uninstalled_count, "needs", "need")} to be installed\n`,
commands: [{ run: "npm install", title: "npm install" }],
icon: iconPath,
diff --git a/actions/npm-check/package.json b/actions/npm-check/package.json
index 5d545a016..1d1082a3f 100644
--- a/actions/npm-check/package.json
+++ b/actions/npm-check/package.json
@@ -1,5 +1,6 @@
{
"dependencies": {
+ "chalk": "4.1.2",
"npm-check": "^6.0.1"
}
}
diff --git a/actions/yarn-check/yarn_check.js b/actions/yarn-check/yarn_check.js
index 6fbd71028..7ccfe3488 100755
--- a/actions/yarn-check/yarn_check.js
+++ b/actions/yarn-check/yarn_check.js
@@ -1,6 +1,5 @@
#!/usr/bin/env node
-// trunk-ignore-all(eslint)
const yarnCheck = require("yarn-check");
const YAML = require("yaml");
const path = require("path");
@@ -28,7 +27,7 @@ yarnCheck({})
message: `${uninstalled_count} yarn ${pluralize(
uninstalled_count,
"package",
- "packages"
+ "packages",
)} ${pluralize(uninstalled_count, "needs", "need")} to be installed\n`,
commands: [{ run: "yarn install", title: "yarn install" }],
icon: iconPath,
diff --git a/eslint.config.cjs b/eslint.config.cjs
new file mode 100644
index 000000000..0694f4094
--- /dev/null
+++ b/eslint.config.cjs
@@ -0,0 +1,150 @@
+const eslint = require("@eslint/js");
+const typescriptEslint = require("typescript-eslint");
+const importPlugin = require("eslint-plugin-import-x");
+const nodeRecommended = require("eslint-plugin-n");
+const prettier = require("eslint-config-prettier");
+const jestPlugin = require("eslint-plugin-jest");
+const simpleImportSort = require("eslint-plugin-simple-import-sort");
+// const preferArrowFunctions = require("eslint-plugin-prefer-arrow-functions");
+
+module.exports = [
+ eslint.configs.recommended,
+ prettier,
+ ...typescriptEslint.config({
+ files: ["**/*.ts"],
+ extends: [
+ ...typescriptEslint.configs.recommended,
+ ...typescriptEslint.configs.strictTypeChecked,
+ ...typescriptEslint.configs.stylisticTypeChecked,
+ ],
+ plugins: {
+ // "prefer-arrow-functions": preferArrowFunctions,
+ "simple-import-sort": simpleImportSort,
+ "import-x": importPlugin,
+ n: nodeRecommended,
+ },
+ languageOptions: {
+ ecmaVersion: "latest",
+ parser: typescriptEslint.parser,
+ parserOptions: {
+ ecmaFeatures: {
+ jsx: true,
+ },
+ sourceType: "module",
+ project: "tsconfig.json",
+ },
+ },
+ rules: {
+ ...importPlugin.configs.recommended.rules,
+ ...importPlugin.configs.typescript.rules,
+ ...nodeRecommended.configs.recommended.rules,
+ "no-return-await": "off",
+ "no-shadow": "off",
+ "no-unused-expressions": "off",
+ "no-unused-vars": "off",
+ "no-use-before-define": "off",
+ "no-useless-constructor": "off",
+ "@typescript-eslint/lines-between-class-members": [
+ "error",
+ "always",
+ { exceptAfterSingleLine: true },
+ ],
+ "@typescript-eslint/naming-convention": [
+ "error",
+ { selector: "typeLike", format: ["PascalCase"] },
+ { selector: "function", format: ["camelCase"] },
+ {
+ selector: "variable",
+ modifiers: ["global", "const"],
+ format: ["UPPER_CASE", "camelCase"],
+ },
+ ],
+ "@typescript-eslint/no-shadow": "error",
+ "@typescript-eslint/no-unused-expressions": ["error"],
+ "@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
+ "@typescript-eslint/no-use-before-define": ["error"],
+ "@typescript-eslint/no-useless-constructor": ["error"],
+ "@typescript-eslint/no-explicit-any": "off",
+ "class-methods-use-this": "off",
+ curly: "error",
+ "func-names": ["error", "as-needed"],
+ "func-style": ["error", "expression", { allowArrowFunctions: true }],
+ "import-x/extensions": "off",
+ "import-x/first": "error",
+ "import-x/no-extraneous-dependencies": [
+ "error",
+ {
+ devDependencies: ["**/*.test.ts", "**/tests/**"],
+ },
+ ],
+ "import-x/no-unresolved": "off",
+ "import-x/prefer-default-export": "off",
+ "lines-between-class-members": "off",
+ "max-len": [
+ "error",
+ {
+ code: 120,
+ comments: 130,
+ tabWidth: 2,
+ ignoreComments: false,
+ ignoreTrailingComments: false,
+ ignoreUrls: true,
+ ignoreStrings: true,
+ ignoreTemplateLiterals: true,
+ ignoreRegExpLiterals: true,
+ },
+ ],
+ "no-continue": "off",
+ "no-param-reassign": ["error", { props: false }],
+ "no-restricted-syntax": "off",
+ "n/no-extraneous-import": ["error"],
+ "n/no-unpublished-import": "off",
+ "n/no-missing-import": "off",
+ "n/no-unsupported-features/es-syntax": ["error", { ignores: ["modules", "dynamicImport"] }],
+ // TODO(Tyler): Add prefer-arrow-functions once it becomes compatible.
+ // "prefer-arrow-functions/prefer-arrow-functions": [
+ // "error",
+ // {
+ // returnStyle: "implicit",
+ // },
+ // ],
+ "simple-import-sort/exports": "error",
+ "simple-import-sort/imports": "error",
+ "@typescript-eslint/no-confusing-void-expression": "off",
+ "@typescript-eslint/restrict-template-expressions": "off",
+ },
+ settings: [
+ "error",
+ {
+ "import-x/resolver": {
+ typescript: {
+ alwaysTryTypes: true,
+ },
+ },
+ },
+ ],
+ }),
+ {
+ files: ["**/*test.ts"],
+ plugins: {
+ jest: jestPlugin,
+ },
+ rules: {
+ ...jestPlugin.configs.recommended.rules,
+ },
+ },
+ {
+ // Used for scripts and Trunk Actions.
+ files: ["**/*.{js,cjs}"],
+ languageOptions: {
+ globals: {
+ node: true,
+ require: true,
+ console: true,
+ module: true,
+ __dirname: true,
+ },
+ ecmaVersion: "latest",
+ },
+ },
+];
diff --git a/jest.config.json b/jest.config.json
index 138e05427..a6a94bbe4 100644
--- a/jest.config.json
+++ b/jest.config.json
@@ -2,5 +2,6 @@
"preset": "ts-jest",
"modulePaths": [""],
"setupFilesAfterEnv": ["/tests/jest_setup.ts"],
- "reporters": ["/tests/reporter/index.js", "default"]
+ "reporters": ["/tests/reporter/index.js", "default", "jest-junit"],
+ "testPathIgnorePatterns": ["/node_modules/", "/repo-tools/"]
}
diff --git a/linters/actionlint/actionlint.test.ts b/linters/actionlint/actionlint.test.ts
index b7fe2eb01..fcb655f3c 100644
--- a/linters/actionlint/actionlint.test.ts
+++ b/linters/actionlint/actionlint.test.ts
@@ -6,11 +6,9 @@ import { TEST_DATA } from "tests/utils";
// actionlint is specially triggered to run on github workflow files
const preCheck = async (driver: TrunkLintDriver) => {
- // trunk-ignore-begin(semgrep): driver.getSandbox() is generated during testing and is safe
fs.readdirSync(path.resolve(driver.getSandbox(), TEST_DATA)).forEach((file) => {
driver.moveFile(path.join(TEST_DATA, file), path.join(".github/workflows", file));
});
- // trunk-ignore-end(semgrep)
await driver.gitDriver?.add(".").commit("moved");
};
diff --git a/linters/ansible-lint/test_data/ansible_lint_v24.5.0_FQCN.check.shot b/linters/ansible-lint/test_data/ansible_lint_v24.5.0_FQCN.check.shot
new file mode 100644
index 000000000..ed073c421
--- /dev/null
+++ b/linters/ansible-lint/test_data/ansible_lint_v24.5.0_FQCN.check.shot
@@ -0,0 +1,596 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
+
+exports[`Testing linter ansible-lint test FQCN 1`] = `
+{
+ "issues": [
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/demo-aws-launch.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "28",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.wait_for\` or \`ansible.legacy.wait_for\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/demo-aws-launch.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "5",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[play]",
+ "column": "1",
+ "file": "jboss-standalone/deploy-application.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[play]",
+ "level": "LEVEL_HIGH",
+ "line": "4",
+ "linter": "ansible-lint",
+ "message": "All plays should be named.",
+ "targetType": "custom",
+ },
+ {
+ "code": "role-name",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#role-name",
+ "level": "LEVEL_HIGH",
+ "line": "1",
+ "linter": "ansible-lint",
+ "message": "Role name java-app does not match \`\`^[a-z][a-z0-9_]*$\`\` pattern.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "14",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.copy\` or \`ansible.legacy.copy\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "14",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Copy application WAR file to host",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action]",
+ "level": "LEVEL_HIGH",
+ "line": "19",
+ "linter": "ansible-lint",
+ "message": "Action \`jboss\` is not FQCN.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.copy\` or \`ansible.legacy.copy\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Copy application WAR file to host",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action]",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "ansible-lint",
+ "message": "Action \`jboss\` is not FQCN.",
+ "targetType": "custom",
+ },
+ {
+ "code": "role-name",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#role-name",
+ "level": "LEVEL_HIGH",
+ "line": "1",
+ "linter": "ansible-lint",
+ "message": "Role name jboss-standalone does not match \`\`^[a-z][a-z0-9_]*$\`\` pattern.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: restart jboss",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: restart iptables",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "12",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.get_url\` or \`ansible.legacy.get_url\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "12",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Download JBoss from jboss.org",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "17",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.unarchive\` or \`ansible.legacy.unarchive\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.dnf\` or \`ansible.legacy.dnf\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "22",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "25",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.command\` or \`ansible.legacy.command\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "31",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.template\` or \`ansible.legacy.template\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "31",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Copying standalone.xml configuration file",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "31",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Copying standalone.xml configuration file",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "37",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.group\` or \`ansible.legacy.group\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "41",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.user\` or \`ansible.legacy.user\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "47",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.file\` or \`ansible.legacy.file\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "53",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "55",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.copy\` or \`ansible.legacy.copy\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[octal-values]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[octal-values]",
+ "level": "LEVEL_HIGH",
+ "line": "59",
+ "linter": "ansible-lint",
+ "message": "Forbidden implicit octal value "0755"",
+ "targetType": "custom",
+ },
+ {
+ "code": "command-instead-of-module",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#command-instead-of-module",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Workaround for systemd bug",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.shell\` or \`ansible.legacy.shell\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "ignore-errors",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#ignore-errors",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Workaround for systemd bug",
+ "targetType": "custom",
+ },
+ {
+ "code": "no-changed-when",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#no-changed-when",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Workaround for systemd bug",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "63",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "65",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "68",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "71",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.template\` or \`ansible.legacy.template\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "71",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: deploy iptables rules",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "71",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: deploy iptables rules",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "78",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.dnf\` or \`ansible.legacy.dnf\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "84",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action]",
+ "level": "LEVEL_HIGH",
+ "line": "90",
+ "linter": "ansible-lint",
+ "message": "Action \`firewalld\` is not FQCN.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "90",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: deploy firewalld rules",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "92",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "95",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[play]",
+ "column": "1",
+ "file": "jboss-standalone/site.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[play]",
+ "level": "LEVEL_HIGH",
+ "line": "4",
+ "linter": "ansible-lint",
+ "message": "All plays should be named.",
+ "targetType": "custom",
+ },
+ ],
+ "lintActions": [
+ {
+ "command": "lint",
+ "fileGroupName": "custom",
+ "linter": "ansible-lint",
+ "paths": [
+ "jboss-standalone",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "custom",
+ "linter": "ansible-lint",
+ "paths": [
+ "jboss-standalone",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ ],
+ "taskFailures": [],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/ansible-lint/test_data/ansible_lint_v24.5.0_non_FQCN.check.shot b/linters/ansible-lint/test_data/ansible_lint_v24.5.0_non_FQCN.check.shot
new file mode 100644
index 000000000..5eb027aa2
--- /dev/null
+++ b/linters/ansible-lint/test_data/ansible_lint_v24.5.0_non_FQCN.check.shot
@@ -0,0 +1,584 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
+
+exports[`Testing linter ansible-lint test non_FQCN 1`] = `
+{
+ "issues": [
+ {
+ "code": "syntax-check[unknown-module]",
+ "column": "7",
+ "file": "jboss-standalone/demo-aws-launch.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#syntax-check[unknown-module]",
+ "level": "LEVEL_HIGH",
+ "line": "12",
+ "linter": "ansible-lint",
+ "message": "couldn't resolve module/action 'ec2'. This often indicates a misspelling, missing collection, or incorrect module path.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[play]",
+ "column": "1",
+ "file": "jboss-standalone/deploy-application.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[play]",
+ "level": "LEVEL_HIGH",
+ "line": "4",
+ "linter": "ansible-lint",
+ "message": "All plays should be named.",
+ "targetType": "custom",
+ },
+ {
+ "code": "role-name",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#role-name",
+ "level": "LEVEL_HIGH",
+ "line": "1",
+ "linter": "ansible-lint",
+ "message": "Role name java-app does not match \`\`^[a-z][a-z0-9_]*$\`\` pattern.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "14",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.copy\` or \`ansible.legacy.copy\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "14",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Copy application WAR file to host",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action]",
+ "level": "LEVEL_HIGH",
+ "line": "19",
+ "linter": "ansible-lint",
+ "message": "Action \`jboss\` is not FQCN.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.copy\` or \`ansible.legacy.copy\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Copy application WAR file to host",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action]",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "ansible-lint",
+ "message": "Action \`jboss\` is not FQCN.",
+ "targetType": "custom",
+ },
+ {
+ "code": "role-name",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#role-name",
+ "level": "LEVEL_HIGH",
+ "line": "1",
+ "linter": "ansible-lint",
+ "message": "Role name jboss-standalone does not match \`\`^[a-z][a-z0-9_]*$\`\` pattern.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: restart jboss",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: restart iptables",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "12",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.get_url\` or \`ansible.legacy.get_url\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "12",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Download JBoss from jboss.org",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "17",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.unarchive\` or \`ansible.legacy.unarchive\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.dnf\` or \`ansible.legacy.dnf\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "22",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "25",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.command\` or \`ansible.legacy.command\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "31",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.template\` or \`ansible.legacy.template\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "31",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Copying standalone.xml configuration file",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "31",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Copying standalone.xml configuration file",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "37",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.group\` or \`ansible.legacy.group\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "41",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.user\` or \`ansible.legacy.user\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "47",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.file\` or \`ansible.legacy.file\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "53",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "55",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.copy\` or \`ansible.legacy.copy\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[octal-values]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[octal-values]",
+ "level": "LEVEL_HIGH",
+ "line": "59",
+ "linter": "ansible-lint",
+ "message": "Forbidden implicit octal value "0755"",
+ "targetType": "custom",
+ },
+ {
+ "code": "command-instead-of-module",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#command-instead-of-module",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Workaround for systemd bug",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.shell\` or \`ansible.legacy.shell\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "ignore-errors",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#ignore-errors",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Workaround for systemd bug",
+ "targetType": "custom",
+ },
+ {
+ "code": "no-changed-when",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#no-changed-when",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Workaround for systemd bug",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "63",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "65",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "68",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "71",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.template\` or \`ansible.legacy.template\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "71",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: deploy iptables rules",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "71",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: deploy iptables rules",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "78",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.dnf\` or \`ansible.legacy.dnf\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "84",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action]",
+ "level": "LEVEL_HIGH",
+ "line": "90",
+ "linter": "ansible-lint",
+ "message": "Action \`firewalld\` is not FQCN.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "90",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: deploy firewalld rules",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "92",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "95",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[play]",
+ "column": "1",
+ "file": "jboss-standalone/site.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[play]",
+ "level": "LEVEL_HIGH",
+ "line": "4",
+ "linter": "ansible-lint",
+ "message": "All plays should be named.",
+ "targetType": "custom",
+ },
+ ],
+ "lintActions": [
+ {
+ "command": "lint",
+ "fileGroupName": "custom",
+ "linter": "ansible-lint",
+ "paths": [
+ "jboss-standalone",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "custom",
+ "linter": "ansible-lint",
+ "paths": [
+ "jboss-standalone",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ ],
+ "taskFailures": [],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/ansible-lint/test_data/ansible_lint_v24.6.0_FQCN.check.shot b/linters/ansible-lint/test_data/ansible_lint_v24.6.0_FQCN.check.shot
new file mode 100644
index 000000000..90ea69641
--- /dev/null
+++ b/linters/ansible-lint/test_data/ansible_lint_v24.6.0_FQCN.check.shot
@@ -0,0 +1,584 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
+
+exports[`Testing linter ansible-lint test FQCN 1`] = `
+{
+ "issues": [
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/demo-aws-launch.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "28",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.wait_for\` or \`ansible.legacy.wait_for\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/demo-aws-launch.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "5",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[play]",
+ "column": "1",
+ "file": "jboss-standalone/deploy-application.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[play]",
+ "level": "LEVEL_HIGH",
+ "line": "4",
+ "linter": "ansible-lint",
+ "message": "All plays should be named.",
+ "targetType": "custom",
+ },
+ {
+ "code": "role-name",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#role-name",
+ "level": "LEVEL_HIGH",
+ "line": "1",
+ "linter": "ansible-lint",
+ "message": "Role name java-app does not match \`\`^[a-z][a-z0-9_]*$\`\` pattern.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "14",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.copy\` or \`ansible.legacy.copy\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "14",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Copy application WAR file to host",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action]",
+ "level": "LEVEL_HIGH",
+ "line": "19",
+ "linter": "ansible-lint",
+ "message": "Action \`jboss\` is not FQCN.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.copy\` or \`ansible.legacy.copy\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Copy application WAR file to host",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action]",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "ansible-lint",
+ "message": "Action \`jboss\` is not FQCN.",
+ "targetType": "custom",
+ },
+ {
+ "code": "role-name",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#role-name",
+ "level": "LEVEL_HIGH",
+ "line": "1",
+ "linter": "ansible-lint",
+ "message": "Role name jboss-standalone does not match \`\`^[a-z][a-z0-9_]*$\`\` pattern.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: restart jboss",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: restart iptables",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "12",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.get_url\` or \`ansible.legacy.get_url\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "12",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Download JBoss from jboss.org",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "17",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.unarchive\` or \`ansible.legacy.unarchive\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.dnf\` or \`ansible.legacy.dnf\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "22",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "25",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.command\` or \`ansible.legacy.command\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "31",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.template\` or \`ansible.legacy.template\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "31",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Copying standalone.xml configuration file",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "37",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.group\` or \`ansible.legacy.group\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "41",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.user\` or \`ansible.legacy.user\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "47",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.file\` or \`ansible.legacy.file\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "53",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "55",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.copy\` or \`ansible.legacy.copy\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[octal-values]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[octal-values]",
+ "level": "LEVEL_HIGH",
+ "line": "59",
+ "linter": "ansible-lint",
+ "message": "Forbidden implicit octal value "0755"",
+ "targetType": "custom",
+ },
+ {
+ "code": "command-instead-of-module",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#command-instead-of-module",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Workaround for systemd bug",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.shell\` or \`ansible.legacy.shell\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "ignore-errors",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#ignore-errors",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Workaround for systemd bug",
+ "targetType": "custom",
+ },
+ {
+ "code": "no-changed-when",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#no-changed-when",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Workaround for systemd bug",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "63",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "65",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "68",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "71",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.template\` or \`ansible.legacy.template\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "71",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: deploy iptables rules",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "71",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: deploy iptables rules",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "78",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.dnf\` or \`ansible.legacy.dnf\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "84",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action]",
+ "level": "LEVEL_HIGH",
+ "line": "90",
+ "linter": "ansible-lint",
+ "message": "Action \`firewalld\` is not FQCN.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "90",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: deploy firewalld rules",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "92",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "95",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[play]",
+ "column": "1",
+ "file": "jboss-standalone/site.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[play]",
+ "level": "LEVEL_HIGH",
+ "line": "4",
+ "linter": "ansible-lint",
+ "message": "All plays should be named.",
+ "targetType": "custom",
+ },
+ ],
+ "lintActions": [
+ {
+ "command": "lint",
+ "fileGroupName": "custom",
+ "linter": "ansible-lint",
+ "paths": [
+ "jboss-standalone",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "custom",
+ "linter": "ansible-lint",
+ "paths": [
+ "jboss-standalone",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ ],
+ "taskFailures": [],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/ansible-lint/test_data/ansible_lint_v24.6.0_non_FQCN.check.shot b/linters/ansible-lint/test_data/ansible_lint_v24.6.0_non_FQCN.check.shot
new file mode 100644
index 000000000..8737a2c44
--- /dev/null
+++ b/linters/ansible-lint/test_data/ansible_lint_v24.6.0_non_FQCN.check.shot
@@ -0,0 +1,572 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
+
+exports[`Testing linter ansible-lint test non_FQCN 1`] = `
+{
+ "issues": [
+ {
+ "code": "syntax-check[unknown-module]",
+ "column": "7",
+ "file": "jboss-standalone/demo-aws-launch.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#syntax-check[unknown-module]",
+ "level": "LEVEL_HIGH",
+ "line": "12",
+ "linter": "ansible-lint",
+ "message": "couldn't resolve module/action 'ec2'. This often indicates a misspelling, missing collection, or incorrect module path.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[play]",
+ "column": "1",
+ "file": "jboss-standalone/deploy-application.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[play]",
+ "level": "LEVEL_HIGH",
+ "line": "4",
+ "linter": "ansible-lint",
+ "message": "All plays should be named.",
+ "targetType": "custom",
+ },
+ {
+ "code": "role-name",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#role-name",
+ "level": "LEVEL_HIGH",
+ "line": "1",
+ "linter": "ansible-lint",
+ "message": "Role name java-app does not match \`\`^[a-z][a-z0-9_]*$\`\` pattern.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "14",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.copy\` or \`ansible.legacy.copy\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "14",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Copy application WAR file to host",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action]",
+ "level": "LEVEL_HIGH",
+ "line": "19",
+ "linter": "ansible-lint",
+ "message": "Action \`jboss\` is not FQCN.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.copy\` or \`ansible.legacy.copy\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Copy application WAR file to host",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action]",
+ "column": "1",
+ "file": "jboss-standalone/roles/java-app/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action]",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "ansible-lint",
+ "message": "Action \`jboss\` is not FQCN.",
+ "targetType": "custom",
+ },
+ {
+ "code": "role-name",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#role-name",
+ "level": "LEVEL_HIGH",
+ "line": "1",
+ "linter": "ansible-lint",
+ "message": "Role name jboss-standalone does not match \`\`^[a-z][a-z0-9_]*$\`\` pattern.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: restart jboss",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/handlers/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: restart iptables",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "12",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.get_url\` or \`ansible.legacy.get_url\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "12",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Download JBoss from jboss.org",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "17",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.unarchive\` or \`ansible.legacy.unarchive\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.dnf\` or \`ansible.legacy.dnf\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "22",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "25",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.command\` or \`ansible.legacy.command\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "31",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.template\` or \`ansible.legacy.template\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "31",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Copying standalone.xml configuration file",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "37",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.group\` or \`ansible.legacy.group\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "41",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.user\` or \`ansible.legacy.user\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "47",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.file\` or \`ansible.legacy.file\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "53",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "55",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.copy\` or \`ansible.legacy.copy\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[octal-values]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[octal-values]",
+ "level": "LEVEL_HIGH",
+ "line": "59",
+ "linter": "ansible-lint",
+ "message": "Forbidden implicit octal value "0755"",
+ "targetType": "custom",
+ },
+ {
+ "code": "command-instead-of-module",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#command-instead-of-module",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Workaround for systemd bug",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.shell\` or \`ansible.legacy.shell\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "ignore-errors",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#ignore-errors",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Workaround for systemd bug",
+ "targetType": "custom",
+ },
+ {
+ "code": "no-changed-when",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#no-changed-when",
+ "level": "LEVEL_HIGH",
+ "line": "61",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: Workaround for systemd bug",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "63",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "65",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "68",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "71",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.template\` or \`ansible.legacy.template\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "71",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: deploy iptables rules",
+ "targetType": "custom",
+ },
+ {
+ "code": "risky-file-permissions",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#risky-file-permissions",
+ "level": "LEVEL_HIGH",
+ "line": "71",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: deploy iptables rules",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "78",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.dnf\` or \`ansible.legacy.dnf\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action-core]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
+ "level": "LEVEL_HIGH",
+ "line": "84",
+ "linter": "ansible-lint",
+ "message": "Use \`ansible.builtin.service\` or \`ansible.legacy.service\` instead.",
+ "targetType": "custom",
+ },
+ {
+ "code": "fqcn[action]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action]",
+ "level": "LEVEL_HIGH",
+ "line": "90",
+ "linter": "ansible-lint",
+ "message": "Action \`firewalld\` is not FQCN.",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[casing]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[casing]",
+ "level": "LEVEL_HIGH",
+ "line": "90",
+ "linter": "ansible-lint",
+ "message": "Task/Handler: deploy firewalld rules",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "92",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "yaml[truthy]",
+ "column": "1",
+ "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#yaml[truthy]",
+ "level": "LEVEL_HIGH",
+ "line": "95",
+ "linter": "ansible-lint",
+ "message": "Truthy value should be one of [false, true]",
+ "targetType": "custom",
+ },
+ {
+ "code": "name[play]",
+ "column": "1",
+ "file": "jboss-standalone/site.yml",
+ "issueClass": "ISSUE_CLASS_NEW",
+ "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#name[play]",
+ "level": "LEVEL_HIGH",
+ "line": "4",
+ "linter": "ansible-lint",
+ "message": "All plays should be named.",
+ "targetType": "custom",
+ },
+ ],
+ "lintActions": [
+ {
+ "command": "lint",
+ "fileGroupName": "custom",
+ "linter": "ansible-lint",
+ "paths": [
+ "jboss-standalone",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "custom",
+ "linter": "ansible-lint",
+ "paths": [
+ "jboss-standalone",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ ],
+ "taskFailures": [],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/ansible-lint/test_data/ansible_lint_v6.13.0_FQCN.check.shot b/linters/ansible-lint/test_data/ansible_lint_v6.13.0_FQCN.check.shot
index 0d2e6bcc8..82f916454 100644
--- a/linters/ansible-lint/test_data/ansible_lint_v6.13.0_FQCN.check.shot
+++ b/linters/ansible-lint/test_data/ansible_lint_v6.13.0_FQCN.check.shot
@@ -1,4 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
exports[`Testing linter ansible-lint test FQCN 1`] = `
{
@@ -219,18 +220,6 @@ exports[`Testing linter ansible-lint test FQCN 1`] = `
"message": "Use FQCN for builtin module actions (unarchive).",
"targetType": "custom",
},
- {
- "code": "fqcn[action-core]",
- "column": "1",
- "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
- "issueClass": "ISSUE_CLASS_NEW",
- "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
- "level": "LEVEL_HIGH",
- "line": "2",
- "linter": "ansible-lint",
- "message": "Use FQCN for builtin module actions (yum).",
- "targetType": "custom",
- },
{
"code": "yaml[truthy]",
"column": "1",
@@ -471,18 +460,6 @@ exports[`Testing linter ansible-lint test FQCN 1`] = `
"message": "File permissions unset or incorrect.",
"targetType": "custom",
},
- {
- "code": "fqcn[action-core]",
- "column": "1",
- "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
- "issueClass": "ISSUE_CLASS_NEW",
- "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
- "level": "LEVEL_HIGH",
- "line": "78",
- "linter": "ansible-lint",
- "message": "Use FQCN for builtin module actions (yum).",
- "targetType": "custom",
- },
{
"code": "fqcn[action-core]",
"column": "1",
diff --git a/linters/ansible-lint/test_data/ansible_lint_v6.14.3_FQCN.check.shot b/linters/ansible-lint/test_data/ansible_lint_v6.14.3_FQCN.check.shot
index cd3fa027e..21551177a 100644
--- a/linters/ansible-lint/test_data/ansible_lint_v6.14.3_FQCN.check.shot
+++ b/linters/ansible-lint/test_data/ansible_lint_v6.14.3_FQCN.check.shot
@@ -1,4 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
exports[`Testing linter ansible-lint test FQCN 1`] = `
{
@@ -219,18 +220,6 @@ exports[`Testing linter ansible-lint test FQCN 1`] = `
"message": "Use \`ansible.builtin.unarchive\` or \`ansible.legacy.unarchive\` instead.",
"targetType": "custom",
},
- {
- "code": "fqcn[action-core]",
- "column": "1",
- "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
- "issueClass": "ISSUE_CLASS_NEW",
- "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
- "level": "LEVEL_HIGH",
- "line": "2",
- "linter": "ansible-lint",
- "message": "Use \`ansible.builtin.yum\` or \`ansible.legacy.yum\` instead.",
- "targetType": "custom",
- },
{
"code": "yaml[truthy]",
"column": "1",
@@ -471,18 +460,6 @@ exports[`Testing linter ansible-lint test FQCN 1`] = `
"message": "Task/Handler: deploy iptables rules",
"targetType": "custom",
},
- {
- "code": "fqcn[action-core]",
- "column": "1",
- "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
- "issueClass": "ISSUE_CLASS_NEW",
- "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
- "level": "LEVEL_HIGH",
- "line": "78",
- "linter": "ansible-lint",
- "message": "Use \`ansible.builtin.yum\` or \`ansible.legacy.yum\` instead.",
- "targetType": "custom",
- },
{
"code": "fqcn[action-core]",
"column": "1",
diff --git a/linters/ansible-lint/test_data/ansible_lint_v6.22.1_FQCN.check.shot b/linters/ansible-lint/test_data/ansible_lint_v6.22.1_FQCN.check.shot
index cd3fa027e..21551177a 100644
--- a/linters/ansible-lint/test_data/ansible_lint_v6.22.1_FQCN.check.shot
+++ b/linters/ansible-lint/test_data/ansible_lint_v6.22.1_FQCN.check.shot
@@ -1,4 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
exports[`Testing linter ansible-lint test FQCN 1`] = `
{
@@ -219,18 +220,6 @@ exports[`Testing linter ansible-lint test FQCN 1`] = `
"message": "Use \`ansible.builtin.unarchive\` or \`ansible.legacy.unarchive\` instead.",
"targetType": "custom",
},
- {
- "code": "fqcn[action-core]",
- "column": "1",
- "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
- "issueClass": "ISSUE_CLASS_NEW",
- "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
- "level": "LEVEL_HIGH",
- "line": "2",
- "linter": "ansible-lint",
- "message": "Use \`ansible.builtin.yum\` or \`ansible.legacy.yum\` instead.",
- "targetType": "custom",
- },
{
"code": "yaml[truthy]",
"column": "1",
@@ -471,18 +460,6 @@ exports[`Testing linter ansible-lint test FQCN 1`] = `
"message": "Task/Handler: deploy iptables rules",
"targetType": "custom",
},
- {
- "code": "fqcn[action-core]",
- "column": "1",
- "file": "jboss-standalone/roles/jboss-standalone/tasks/main.yml",
- "issueClass": "ISSUE_CLASS_NEW",
- "issueUrl": "https://ansible-lint.readthedocs.io/en/latest/default_rules.html#fqcn[action-core]",
- "level": "LEVEL_HIGH",
- "line": "78",
- "linter": "ansible-lint",
- "message": "Use \`ansible.builtin.yum\` or \`ansible.legacy.yum\` instead.",
- "targetType": "custom",
- },
{
"code": "fqcn[action-core]",
"column": "1",
diff --git a/linters/biome/biome.test.ts b/linters/biome/biome.test.ts
index d0b29b37b..76425a373 100644
--- a/linters/biome/biome.test.ts
+++ b/linters/biome/biome.test.ts
@@ -1,5 +1,22 @@
-import { linterCheckTest, linterFmtTest } from "tests";
+import path from "path";
+import { customLinterCheckTest, linterCheckTest, linterFmtTest } from "tests";
+import { TrunkLintDriver } from "tests/driver";
+import { TEST_DATA } from "tests/utils";
linterCheckTest({ linterName: "biome", namedTestPrefixes: ["basic_check"] });
linterFmtTest({ linterName: "biome", namedTestPrefixes: ["basic_fmt", "basic_json"] });
+
+const preCheck = (driver: TrunkLintDriver) => {
+ // Write an invalid biome config and verify we surface an error for format.
+ // NOTE(Tyler): We should handle config errors better for 'lint' too, but the JSON
+ // output for biome is not stable and they don't support SARIF.
+ driver.writeFile("biome.json", JSON.stringify({ rules: { "no-foo": "error" } }));
+};
+
+customLinterCheckTest({
+ linterName: "biome",
+ testName: "error",
+ args: path.join(TEST_DATA, "basic_check.in.ts"),
+ preCheck,
+});
diff --git a/linters/biome/plugin.yaml b/linters/biome/plugin.yaml
index 5a7410168..a4b7a65a9 100644
--- a/linters/biome/plugin.yaml
+++ b/linters/biome/plugin.yaml
@@ -30,7 +30,7 @@ lint:
- name: fmt
output: rewrite
run: biome format --write "${target}"
- success_codes: [0, 1]
+ success_codes: [0]
batch: true
cache_results: true
formatter: true
diff --git a/linters/biome/test_data/biome_v1.4.1_error.check.shot b/linters/biome/test_data/biome_v1.4.1_error.check.shot
new file mode 100644
index 000000000..c60995917
--- /dev/null
+++ b/linters/biome/test_data/biome_v1.4.1_error.check.shot
@@ -0,0 +1,36 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Testing linter biome test error 1`] = `
+{
+ "issues": [],
+ "lintActions": [
+ {
+ "command": "lint",
+ "fileGroupName": "typescript",
+ "linter": "biome",
+ "paths": [
+ "test_data/basic_check.in.ts",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "typescript",
+ "linter": "biome",
+ "paths": [
+ "test_data/basic_check.in.ts",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ ],
+ "taskFailures": [
+ {
+ "details": StringMatching /\\.\\*\\$/m,
+ "message": "test_data/basic_check.in.ts",
+ "name": "biome",
+ },
+ ],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/biome/test_data/biome_v1.6.0_error.check.shot b/linters/biome/test_data/biome_v1.6.0_error.check.shot
new file mode 100644
index 000000000..c60995917
--- /dev/null
+++ b/linters/biome/test_data/biome_v1.6.0_error.check.shot
@@ -0,0 +1,36 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Testing linter biome test error 1`] = `
+{
+ "issues": [],
+ "lintActions": [
+ {
+ "command": "lint",
+ "fileGroupName": "typescript",
+ "linter": "biome",
+ "paths": [
+ "test_data/basic_check.in.ts",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "typescript",
+ "linter": "biome",
+ "paths": [
+ "test_data/basic_check.in.ts",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ ],
+ "taskFailures": [
+ {
+ "details": StringMatching /\\.\\*\\$/m,
+ "message": "test_data/basic_check.in.ts",
+ "name": "biome",
+ },
+ ],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/buf/test_data/buf_breaking_v1.32.0_basic.check.shot b/linters/buf/test_data/buf_breaking_v1.32.0_basic.check.shot
new file mode 100644
index 000000000..91b5e3bc0
--- /dev/null
+++ b/linters/buf/test_data/buf_breaking_v1.32.0_basic.check.shot
@@ -0,0 +1,44 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
+
+exports[`Testing linter buf-breaking test basic 1`] = `
+{
+ "issues": [
+ {
+ "code": "FIELD_NO_DELETE",
+ "column": "5",
+ "file": "test_data/buf_breaking.in.proto",
+ "issueUrl": "https://docs.buf.build/breaking/rules#field_no_delete",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "buf-breaking",
+ "message": "Previously present field "2" with name "world" on message "HelloWorld" was deleted.",
+ "targetType": "proto",
+ },
+ {
+ "code": "FIELD_SAME_TYPE",
+ "column": "7",
+ "file": "test_data/buf_breaking.in.proto",
+ "issueUrl": "https://docs.buf.build/breaking/rules#field_same_type",
+ "level": "LEVEL_HIGH",
+ "line": "8",
+ "linter": "buf-breaking",
+ "message": "Field "1" with name "hello" on message "HelloWorld" changed type from "string" to "int32".",
+ "targetType": "proto",
+ },
+ ],
+ "lintActions": [
+ {
+ "command": "lint",
+ "fileGroupName": "proto",
+ "linter": "buf-breaking",
+ "paths": [
+ ".",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ ],
+ "taskFailures": [],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/buf/test_data/buf_breaking_v1.32.0_dupFile.check.shot b/linters/buf/test_data/buf_breaking_v1.32.0_dupFile.check.shot
new file mode 100644
index 000000000..0a106332a
--- /dev/null
+++ b/linters/buf/test_data/buf_breaking_v1.32.0_dupFile.check.shot
@@ -0,0 +1,55 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
+
+exports[`Testing linter buf-breaking test dupFile 1`] = `
+{
+ "issues": [
+ {
+ "code": "COMPILE",
+ "column": "13",
+ "file": "test_data/buf_breaking.in.proto",
+ "issueUrl": "https://docs.buf.build/breaking/rules#compile",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "buf-breaking",
+ "message": "symbol "trunk.HelloWorld" already defined at test_data/buf_breaking.in.proto:7:13",
+ "targetType": "proto",
+ },
+ {
+ "code": "COMPILE",
+ "column": "13",
+ "file": "test_data/buf_breaking.in.proto",
+ "issueUrl": "https://docs.buf.build/breaking/rules#compile",
+ "level": "LEVEL_HIGH",
+ "line": "8",
+ "linter": "buf-breaking",
+ "message": "symbol "trunk.HelloWorld.hello" already defined at test_data/buf_breaking.in.proto:8:13",
+ "targetType": "proto",
+ },
+ {
+ "code": "COMPILE",
+ "column": "13",
+ "file": "test_data/buf_breaking.in.proto",
+ "issueUrl": "https://docs.buf.build/breaking/rules#compile",
+ "level": "LEVEL_HIGH",
+ "line": "9",
+ "linter": "buf-breaking",
+ "message": "symbol "trunk.HelloWorld.world" already defined at test_data/buf_breaking.in.proto:9:13",
+ "targetType": "proto",
+ },
+ ],
+ "lintActions": [
+ {
+ "command": "lint",
+ "fileGroupName": "proto",
+ "linter": "buf-breaking",
+ "paths": [
+ ".",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ ],
+ "taskFailures": [],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/buf/test_data/buf_format_v1.32.0_buf_lint.fmt.shot b/linters/buf/test_data/buf_format_v1.32.0_buf_lint.fmt.shot
new file mode 100644
index 000000000..1e403d81f
--- /dev/null
+++ b/linters/buf/test_data/buf_format_v1.32.0_buf_lint.fmt.shot
@@ -0,0 +1,14 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
+
+exports[`Testing formatter buf-format test buf_lint 1`] = `
+"syntax = "proto3";
+
+package trunk;
+
+enum GoodEnum {
+ lower_case_UNSPECIFIED = 0;
+ GOOD_ENUM_VALUE_1 = 1;
+}
+"
+`;
diff --git a/linters/buf/test_data/buf_lint_v1.32.0_buf_lint.check.shot b/linters/buf/test_data/buf_lint_v1.32.0_buf_lint.check.shot
new file mode 100644
index 000000000..a9b747ee0
--- /dev/null
+++ b/linters/buf/test_data/buf_lint_v1.32.0_buf_lint.check.shot
@@ -0,0 +1,92 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
+
+exports[`Testing linter buf-lint test buf_lint 1`] = `
+{
+ "issues": [
+ {
+ "code": "FILE_LOWER_SNAKE_CASE",
+ "column": "1",
+ "file": "test_data/buf_lint.in.proto",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "issueUrl": "https://docs.buf.build/lint/rules#file_lower_snake_case",
+ "level": "LEVEL_HIGH",
+ "line": "1",
+ "linter": "buf-lint",
+ "message": "Filename "buf_lint.in.proto" should be lower_snake_case.proto, such as "buf_lint_in.proto".",
+ "targetType": "proto",
+ },
+ {
+ "code": "PACKAGE_DIRECTORY_MATCH",
+ "column": "1",
+ "file": "test_data/buf_lint.in.proto",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "issueUrl": "https://docs.buf.build/lint/rules#package_directory_match",
+ "level": "LEVEL_HIGH",
+ "line": "4",
+ "linter": "buf-lint",
+ "message": "Files with package "trunk" must be within a directory "trunk" relative to root but were in directory "test_data".",
+ "targetType": "proto",
+ },
+ {
+ "code": "PACKAGE_VERSION_SUFFIX",
+ "column": "1",
+ "file": "test_data/buf_lint.in.proto",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "issueUrl": "https://docs.buf.build/lint/rules#package_version_suffix",
+ "level": "LEVEL_HIGH",
+ "line": "4",
+ "linter": "buf-lint",
+ "message": "Package name "trunk" should be suffixed with a correctly formed version, such as "trunk.v1".",
+ "targetType": "proto",
+ },
+ {
+ "code": "ENUM_VALUE_PREFIX",
+ "column": "3",
+ "file": "test_data/buf_lint.in.proto",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "issueUrl": "https://docs.buf.build/lint/rules#enum_value_prefix",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "buf-lint",
+ "message": "Enum value name "lower_case_UNSPECIFIED" should be prefixed with "GOOD_ENUM_".",
+ "targetType": "proto",
+ },
+ {
+ "code": "ENUM_VALUE_UPPER_SNAKE_CASE",
+ "column": "3",
+ "file": "test_data/buf_lint.in.proto",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "issueUrl": "https://docs.buf.build/lint/rules#enum_value_upper_snake_case",
+ "level": "LEVEL_HIGH",
+ "line": "7",
+ "linter": "buf-lint",
+ "message": "Enum value name "lower_case_UNSPECIFIED" should be UPPER_SNAKE_CASE, such as "LOWER_CASE_UNSPECIFIED".",
+ "targetType": "proto",
+ },
+ ],
+ "lintActions": [
+ {
+ "command": "lint",
+ "fileGroupName": "proto",
+ "linter": "buf-lint",
+ "paths": [
+ "test_data/buf_lint.in.proto",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "proto",
+ "linter": "buf-lint",
+ "paths": [
+ "test_data/buf_lint.in.proto",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ ],
+ "taskFailures": [],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/buildifier/plugin.yaml b/linters/buildifier/plugin.yaml
index ddfb2f793..ca8f596a4 100644
--- a/linters/buildifier/plugin.yaml
+++ b/linters/buildifier/plugin.yaml
@@ -41,7 +41,7 @@ tools:
lint:
definitions:
- name: buildifier
- files: [starlark, bazel-build, bazel-workspace]
+ files: [bazel, starlark]
tools: [buildifier]
description: Formatter for Bazel files
commands:
diff --git a/linters/buildifier/test_data/buildifier_v7.1.0_basic_check.check.shot b/linters/buildifier/test_data/buildifier_v7.1.0_basic_check.check.shot
index 45eab45ea..b4e4ce520 100644
--- a/linters/buildifier/test_data/buildifier_v7.1.0_basic_check.check.shot
+++ b/linters/buildifier/test_data/buildifier_v7.1.0_basic_check.check.shot
@@ -1,5 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-// trunk-upgrade-validation:RELEASE
exports[`Testing linter buildifier test basic_check 1`] = `
{
diff --git a/linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.add_tables.BUILD.fmt.shot b/linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.add_tables.BUILD.fmt.shot
index 54e82961f..e52dcc749 100644
--- a/linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.add_tables.BUILD.fmt.shot
+++ b/linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.add_tables.BUILD.fmt.shot
@@ -1,5 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-// trunk-upgrade-validation:RELEASE
exports[`Testing formatter buildifier test no_config 1`] = `
"foo_macro(
diff --git a/linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.basic.bzl.fmt.shot b/linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.basic.bzl.fmt.shot
index 0f9da3bb5..3ac3431cb 100644
--- a/linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.basic.bzl.fmt.shot
+++ b/linters/buildifier/test_data/buildifier_v7.1.0_no_config.test_data.basic.bzl.fmt.shot
@@ -1,5 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-// trunk-upgrade-validation:RELEASE
exports[`Testing formatter buildifier test no_config 1`] = `
"# Misformatted file
diff --git a/linters/buildifier/test_data/buildifier_v7.1.0_with_config.test_data.add_tables.BUILD.fmt.shot b/linters/buildifier/test_data/buildifier_v7.1.0_with_config.test_data.add_tables.BUILD.fmt.shot
index e4ce11ada..04d263ebe 100644
--- a/linters/buildifier/test_data/buildifier_v7.1.0_with_config.test_data.add_tables.BUILD.fmt.shot
+++ b/linters/buildifier/test_data/buildifier_v7.1.0_with_config.test_data.add_tables.BUILD.fmt.shot
@@ -1,5 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-// trunk-upgrade-validation:RELEASE
exports[`Testing formatter buildifier test with_config 1`] = `
"foo_macro(
diff --git a/linters/circleci/test_data/circleci_v0.1.28811_CUSTOM.check.shot b/linters/circleci/test_data/circleci_v0.1.28811_CUSTOM.check.shot
index 33f47efd1..f3c35c1f4 100644
--- a/linters/circleci/test_data/circleci_v0.1.28811_CUSTOM.check.shot
+++ b/linters/circleci/test_data/circleci_v0.1.28811_CUSTOM.check.shot
@@ -1,4 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
+
exports[`Testing linter circleci test CUSTOM 1`] = `
{
@@ -69,7 +71,8 @@ exports[`Testing linter circleci test CUSTOM 1`] = `
- | | | | | INPUT:
- | | | | | - true
- 2. [#/jobs/install-node-example] expected type: String, found: Mapping
- - | Job may be a string reference to another job",
+ - | Job may be a string reference to another job
+ - 3. [#/jobs/install-node-example] required key [type] not found",
"targetType": "circleci-config",
},
],
diff --git a/linters/clippy/clippy.test.ts b/linters/clippy/clippy.test.ts
index a2eedad9b..d3fa7b924 100644
--- a/linters/clippy/clippy.test.ts
+++ b/linters/clippy/clippy.test.ts
@@ -3,7 +3,6 @@ import { customLinterCheckTest } from "tests";
import { TrunkLintDriver } from "tests/driver";
import { TEST_DATA } from "tests/utils";
-// trunk-ignore-all(semgrep)
// Ensure that the Cargo files are at the same level as the src/ directory.
const moveCargoFiles = (dest: string) => (driver: TrunkLintDriver) => {
["Cargo.lock", "Cargo.toml"].forEach((file) => {
diff --git a/linters/codespell/test_data/codespell_v2.3.0_basic.check.shot b/linters/codespell/test_data/codespell_v2.3.0_basic.check.shot
new file mode 100644
index 000000000..99c03a06a
--- /dev/null
+++ b/linters/codespell/test_data/codespell_v2.3.0_basic.check.shot
@@ -0,0 +1,169 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
+
+exports[`Testing linter codespell test basic 1`] = `
+{
+ "issues": [
+ {
+ "code": "misspelled",
+ "file": "test_data/basic_md.in.md",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "3",
+ "linter": "codespell",
+ "message": "reallly ==> really",
+ "targetType": "ALL",
+ },
+ {
+ "code": "misspelled",
+ "file": "test_data/basic_md.in.md",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "5",
+ "linter": "codespell",
+ "message": "realy ==> really, relay",
+ "targetType": "ALL",
+ },
+ {
+ "code": "misspelled",
+ "file": "test_data/basic_py.in.py",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "20",
+ "linter": "codespell",
+ "message": "callbak ==> callback",
+ "targetType": "ALL",
+ },
+ {
+ "code": "misspelled",
+ "file": "test_data/basic_py.in.py",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "20",
+ "linter": "codespell",
+ "message": "lamda ==> lambda",
+ "targetType": "ALL",
+ },
+ {
+ "code": "misspelled",
+ "file": "test_data/basic_py.in.py",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "22",
+ "linter": "codespell",
+ "message": "anme ==> name, anime",
+ "targetType": "ALL",
+ },
+ {
+ "code": "misspelled",
+ "file": "test_data/basic_ts.in.ts",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "17",
+ "linter": "codespell",
+ "message": "callbakc ==> callback",
+ "targetType": "ALL",
+ },
+ {
+ "code": "misspelled",
+ "file": "test_data/basic_ts.in.ts",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "18",
+ "linter": "codespell",
+ "message": "callbak ==> callback",
+ "targetType": "ALL",
+ },
+ {
+ "code": "misspelled",
+ "file": "test_data/basic_ts.in.ts",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "19",
+ "linter": "codespell",
+ "message": "asnyc ==> async",
+ "targetType": "ALL",
+ },
+ ],
+ "lintActions": [
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/basic_md.in.md",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/basic_py.in.py",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/basic_ts.in.ts",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/empty.in.txt",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/basic_md.in.md",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/basic_py.in.py",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/basic_ts.in.ts",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/empty.in.txt",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ ],
+ "taskFailures": [],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/codespell/test_data/codespell_v2.3.0_dictionary.check.shot b/linters/codespell/test_data/codespell_v2.3.0_dictionary.check.shot
new file mode 100644
index 000000000..b75a1b02f
--- /dev/null
+++ b/linters/codespell/test_data/codespell_v2.3.0_dictionary.check.shot
@@ -0,0 +1,139 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
+
+exports[`Testing linter codespell test dictionary 1`] = `
+{
+ "issues": [
+ {
+ "code": "misspelled",
+ "file": "test_data/basic_md.in.md",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "3",
+ "linter": "codespell",
+ "message": "reallly ==> really",
+ "targetType": "ALL",
+ },
+ {
+ "code": "misspelled",
+ "file": "test_data/basic_py.in.py",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "20",
+ "linter": "codespell",
+ "message": "lamda ==> lambda",
+ "targetType": "ALL",
+ },
+ {
+ "code": "misspelled",
+ "file": "test_data/basic_py.in.py",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "22",
+ "linter": "codespell",
+ "message": "anme ==> name, anime",
+ "targetType": "ALL",
+ },
+ {
+ "code": "misspelled",
+ "file": "test_data/basic_ts.in.ts",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "17",
+ "linter": "codespell",
+ "message": "callbakc ==> callback",
+ "targetType": "ALL",
+ },
+ {
+ "code": "misspelled",
+ "file": "test_data/basic_ts.in.ts",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "19",
+ "linter": "codespell",
+ "message": "asnyc ==> async",
+ "targetType": "ALL",
+ },
+ ],
+ "lintActions": [
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/basic_md.in.md",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/basic_py.in.py",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/basic_ts.in.ts",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/empty.in.txt",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/basic_md.in.md",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/basic_py.in.py",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/basic_ts.in.ts",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "codespell",
+ "paths": [
+ "test_data/empty.in.txt",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ ],
+ "taskFailures": [],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/cspell/cspell.test.ts b/linters/cspell/cspell.test.ts
index 0261a20c2..31106120e 100644
--- a/linters/cspell/cspell.test.ts
+++ b/linters/cspell/cspell.test.ts
@@ -49,7 +49,7 @@ const normalizeLandingState = (landingState: LandingState) => {
const suggestions = issue.message.match(suggestionsRegex);
const suggestionsContent = suggestions?.groups?.suggestions;
if (suggestionsContent) {
- const sortedSuggestions = suggestionsContent?.split(", ").sort().join(", ");
+ const sortedSuggestions = suggestionsContent.split(", ").sort().join(", ");
issue.message = issue.message.replace(suggestionsContent, sortedSuggestions);
}
}
diff --git a/linters/detekt/detekt.test.ts b/linters/detekt/detekt.test.ts
index 7f492b426..d064c44e1 100644
--- a/linters/detekt/detekt.test.ts
+++ b/linters/detekt/detekt.test.ts
@@ -32,7 +32,6 @@ linterCheckTest({
const gradlePreCheck: TestCallback = (driver) => {
// Based on plugin.yaml, trunk invokes ${workspace}/gradlew and expects gradlew, etc. to exist at the workspace root.
// However, we expect .trunk/trunk.yaml to exist at the workspace root as well, so we move each file up to the workspace.
- // trunk-ignore-begin(semgrep): paths used here are safe
fs.readdirSync(path.resolve(driver.getSandbox(), TEST_DATA, "detekt_gradle")).forEach((file) => {
driver.moveFile(path.join(TEST_DATA, "detekt_gradle", file), file);
});
@@ -55,7 +54,6 @@ const gradlePreCheck: TestCallback = (driver) => {
list: ["\${env.PATH}"]
`);
driver.writeFile(trunkYamlPath, finalContents);
- // trunk-ignore-end(semgrep)
};
// TODO(Tyler): detekt-gradle has issues resolving stdin correctly on Windows.
diff --git a/linters/eslint/README.md b/linters/eslint/README.md
index 721c74fc0..cb23b3e87 100644
--- a/linters/eslint/README.md
+++ b/linters/eslint/README.md
@@ -1,22 +1,8 @@
# eslint
-## Migration Guide
+## Configuration Notice
-Trunk does not yet support `eslint@9.x`, which includes substantial config format changes (see their
-[migration guide](https://eslint.org/docs/latest/use/migrate-to-9.0.0#flat-config)). If you'd like
-to opt-in to `eslint@9.x` with Trunk before we release official support, you can add the following
-override to your `.trunk/trunk.yaml`:
-
-```yaml
-version: 0.1
----
-lint:
- enabled:
- - eslint@9.0.0
- definitions:
- - name: eslint
- direct_configs:
- - eslint.config.js
- - eslint.config.mjs
- - eslint.config.cjs
-```
+`eslint@9.x` requires a flat config format (see their
+[migration guide](https://eslint.org/docs/latest/use/migrate-to-9.0.0#flat-config)) in order to run.
+Trunk will automatically detect which config file you have and by default will only enable a
+compatible version.
diff --git a/linters/eslint/eslint.test.ts b/linters/eslint/eslint.test.ts
index 694f2ad4c..fc5250081 100644
--- a/linters/eslint/eslint.test.ts
+++ b/linters/eslint/eslint.test.ts
@@ -8,15 +8,22 @@ import { osTimeoutMultiplier, TEST_DATA } from "tests/utils";
const INSTALL_TIMEOUT = 150000 * osTimeoutMultiplier;
-const moveConfig = (driver: TrunkLintDriver) => {
- [".eslintrc.yaml", "package.json", "package-lock.json"].forEach((file) => {
- // trunk-ignore(semgrep): paths used here are safe
- driver.moveFile(path.join(TEST_DATA, file), file);
- });
+const preCheck = (driver: TrunkLintDriver) => {
+ const parsedVersion = semver.parse(driver.enabledVersion);
+ if (parsedVersion && parsedVersion.major >= 9) {
+ ["eslint.config.cjs", "package-new.json", "package-lock-new.json"].forEach((file) => {
+ driver.moveFile(path.join(TEST_DATA, file), file.replace("-new", ""));
+ });
+ } else {
+ [".eslintrc.yaml", "package-old.json", "package-lock-old.json"].forEach((file) => {
+ driver.moveFile(path.join(TEST_DATA, file), file.replace("-old", ""));
+ });
+ }
};
-const preCheck = (driver: TrunkLintDriver) => {
- moveConfig(driver);
+const preCheckWithInstall = (driver: TrunkLintDriver) => {
+ preCheck(driver);
+
// TODO(Tyler): Cache node_modules between runs
try {
const trunkYamlPath = ".trunk/trunk.yaml";
@@ -32,7 +39,6 @@ const preCheck = (driver: TrunkLintDriver) => {
driver.debug("About to install shims");
driver.runTrunkSync(["tools", "install"]);
driver.debug("Done installing shims");
- // trunk-ignore-begin(semgrep): Safe paths
const toolsPath = fs.existsSync(path.resolve(driver.getSandbox(), ".trunk/dev-tools"))
? "dev-tools"
: "tools";
@@ -49,7 +55,6 @@ const preCheck = (driver: TrunkLintDriver) => {
`.trunk/${toolsPath}`,
process.platform == "win32" ? "npm.bat" : "npm",
),
- // trunk-ignore-end(semgrep)
["ci"],
{
cwd: driver.getSandbox(),
@@ -70,22 +75,12 @@ const preCheck = (driver: TrunkLintDriver) => {
}
};
-const manualVersionReplacer = (version: string) => {
- // NOTE(Tyler): Continue to test eslint pre-9.0.0 and gate until we have a long-term fix.
- const parsedVersion = semver.parse(version);
- if (parsedVersion && parsedVersion.major >= 9) {
- return "8.57.0";
- }
- return version;
-};
-
// This set of testing is incomplete with regard to failure modes and unicode autofixes with eslint, but it serves as a sampling
// Use upstream=false in order to supply autofixes for committed files.
customLinterCheckTest({
linterName: "eslint",
- args: `${TEST_DATA} -y --upstream=false`,
- preCheck,
- manualVersionReplacer,
+ args: `${TEST_DATA} -y --upstream=false --ignore=**/eslint.config.cjs`,
+ preCheck: preCheckWithInstall,
pathsToSnapshot: [
path.join(TEST_DATA, "non_ascii.ts"),
path.join(TEST_DATA, "eof_autofix.ts"),
@@ -96,7 +91,6 @@ customLinterCheckTest({
customLinterCheckTest({
linterName: "eslint",
testName: "bad_install",
- args: `${TEST_DATA} -y`,
- preCheck: moveConfig,
- manualVersionReplacer,
+ args: `${TEST_DATA} -y --ignore=**/eslint.config.cjs`,
+ preCheck,
});
diff --git a/linters/eslint/plugin.yaml b/linters/eslint/plugin.yaml
index 1562bcb3a..c11551710 100644
--- a/linters/eslint/plugin.yaml
+++ b/linters/eslint/plugin.yaml
@@ -14,19 +14,31 @@ lint:
description: Find and fix problems in your TS/JS code
commands:
- name: lint
+ version: ">=9.0.0"
+ direct_configs:
+ - eslint.config.js
+ - eslint.config.mjs
+ - eslint.config.cjs
+ output: eslint
+ run: eslint --output-file ${tmpfile} --format json ${target}
+ error_codes: [2]
+ read_output_from: tmp_file
+ batch: true
+ - name: lint
+ version: <=8.57.0
+ direct_configs:
+ - .eslintrc
+ - .eslintrc.cjs
+ - .eslintrc.js
+ - .eslintrc.json
+ - .eslintrc.mjs
+ - .eslintrc.yaml
+ - .eslintrc.yml
output: eslint
run: eslint --output-file ${tmpfile} --format json ${target}
error_codes: [2]
read_output_from: tmp_file
batch: true
- direct_configs:
- - .eslintrc
- - .eslintrc.cjs
- - .eslintrc.js
- - .eslintrc.json
- - .eslintrc.mjs
- - .eslintrc.yaml
- - .eslintrc.yml
suggest_if: config_present
affects_cache:
- .eslintignore
diff --git a/linters/eslint/test_data/eslint.config.cjs b/linters/eslint/test_data/eslint.config.cjs
new file mode 100644
index 000000000..be83063ad
--- /dev/null
+++ b/linters/eslint/test_data/eslint.config.cjs
@@ -0,0 +1,40 @@
+const eslint = require("@eslint/js");
+const typescriptEslint = require('typescript-eslint');
+const importPlugin = require('eslint-plugin-import-x');
+const parser = require("@typescript-eslint/parser");
+const nodeRecommended = require('eslint-plugin-n');
+const prettier = require('eslint-config-prettier');
+
+module.exports = [
+ eslint.configs.recommended,
+ ...typescriptEslint.configs.recommended,
+ prettier,
+ {
+ files: ["**/*.ts"],
+ languageOptions: {
+ ecmaVersion: 12,
+ parser,
+ parserOptions: {
+ ecmaFeatures: {
+ jsx: true,
+ },
+ },
+ },
+ rules: {
+ ...importPlugin.configs.recommended.rules,
+ ...importPlugin.configs.typescript.rules,
+ ...nodeRecommended.configs.recommended.rules,
+ "import-x/first": "error",
+ },
+ plugins: {
+ // TODO(Tyler): Use import, not import-x for this once there is official flat config support
+ "import-x": importPlugin,
+ "n": nodeRecommended,
+ },
+ settings: {
+ 'import/parsers': {
+ '@typescript-eslint/parser': ['.ts', '.tsx'],
+ },
+ },
+ }
+];
diff --git a/linters/eslint/test_data/eslint_v9.0.0_CUSTOM.check.shot b/linters/eslint/test_data/eslint_v9.0.0_CUSTOM.check.shot
new file mode 100644
index 000000000..2ece8ba0c
--- /dev/null
+++ b/linters/eslint/test_data/eslint_v9.0.0_CUSTOM.check.shot
@@ -0,0 +1,215 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Testing linter eslint test CUSTOM 1`] = `
+{
+ "issues": [
+ {
+ "code": "import/first",
+ "column": "1",
+ "file": "test_data/format_imports.ts",
+ "issueUrl": "https://eslint.org/docs/rules/import/first",
+ "level": "LEVEL_HIGH",
+ "line": "1",
+ "linter": "eslint",
+ "message": "Definition for rule 'import/first' was not found.",
+ "targetType": "typescript",
+ },
+ {
+ "code": "@typescript-eslint/no-unused-vars",
+ "column": "10",
+ "file": "test_data/format_imports.ts",
+ "issueUrl": "https://eslint.org/docs/rules/@typescript-eslint/no-unused-vars",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "eslint",
+ "message": "'zaphod' is defined but never used.",
+ "targetType": "typescript",
+ },
+ {
+ "code": "import-x/no-unresolved",
+ "column": "24",
+ "file": "test_data/format_imports.ts",
+ "issueUrl": "https://eslint.org/docs/rules/import-x/no-unresolved",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "eslint",
+ "message": "Unable to resolve path to module 'beetlebrox'.",
+ "targetType": "typescript",
+ },
+ {
+ "code": "n/no-missing-import",
+ "column": "24",
+ "file": "test_data/format_imports.ts",
+ "issueUrl": "https://eslint.org/docs/rules/n/no-missing-import",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "eslint",
+ "message": ""beetlebrox" is not found.",
+ "targetType": "typescript",
+ },
+ {
+ "code": "@typescript-eslint/no-unused-vars",
+ "column": "10",
+ "file": "test_data/format_imports.ts",
+ "issueUrl": "https://eslint.org/docs/rules/@typescript-eslint/no-unused-vars",
+ "level": "LEVEL_HIGH",
+ "line": "3",
+ "linter": "eslint",
+ "message": "'arthur' is defined but never used.",
+ "targetType": "typescript",
+ },
+ {
+ "code": "import-x/no-unresolved",
+ "column": "24",
+ "file": "test_data/format_imports.ts",
+ "issueUrl": "https://eslint.org/docs/rules/import-x/no-unresolved",
+ "level": "LEVEL_HIGH",
+ "line": "3",
+ "linter": "eslint",
+ "message": "Unable to resolve path to module 'dent'.",
+ "targetType": "typescript",
+ },
+ {
+ "code": "n/no-missing-import",
+ "column": "24",
+ "file": "test_data/format_imports.ts",
+ "issueUrl": "https://eslint.org/docs/rules/n/no-missing-import",
+ "level": "LEVEL_HIGH",
+ "line": "3",
+ "linter": "eslint",
+ "message": ""dent" is not found.",
+ "targetType": "typescript",
+ },
+ {
+ "code": "@typescript-eslint/no-unused-vars",
+ "column": "10",
+ "file": "test_data/format_imports.ts",
+ "issueUrl": "https://eslint.org/docs/rules/@typescript-eslint/no-unused-vars",
+ "level": "LEVEL_HIGH",
+ "line": "4",
+ "linter": "eslint",
+ "message": "'ford' is defined but never used.",
+ "targetType": "typescript",
+ },
+ {
+ "code": "import-x/no-unresolved",
+ "column": "22",
+ "file": "test_data/format_imports.ts",
+ "issueUrl": "https://eslint.org/docs/rules/import-x/no-unresolved",
+ "level": "LEVEL_HIGH",
+ "line": "4",
+ "linter": "eslint",
+ "message": "Unable to resolve path to module 'prefect'.",
+ "targetType": "typescript",
+ },
+ {
+ "code": "n/no-missing-import",
+ "column": "22",
+ "file": "test_data/format_imports.ts",
+ "issueUrl": "https://eslint.org/docs/rules/n/no-missing-import",
+ "level": "LEVEL_HIGH",
+ "line": "4",
+ "linter": "eslint",
+ "message": ""prefect" is not found.",
+ "targetType": "typescript",
+ },
+ {
+ "code": "@typescript-eslint/no-explicit-any",
+ "column": "36",
+ "file": "test_data/null_rule_id.ts",
+ "issueUrl": "https://eslint.org/docs/rules/@typescript-eslint/no-explicit-any",
+ "level": "LEVEL_HIGH",
+ "line": "16",
+ "linter": "eslint",
+ "message": "Unexpected any. Specify a different type.",
+ "targetType": "typescript",
+ },
+ {
+ "code": "@typescript-eslint/no-explicit-any",
+ "column": "53",
+ "file": "test_data/null_rule_id.ts",
+ "issueUrl": "https://eslint.org/docs/rules/@typescript-eslint/no-explicit-any",
+ "level": "LEVEL_HIGH",
+ "line": "16",
+ "linter": "eslint",
+ "message": "Unexpected any. Specify a different type.",
+ "targetType": "typescript",
+ },
+ {
+ "code": "@typescript-eslint/no-explicit-any",
+ "column": "60",
+ "file": "test_data/null_rule_id.ts",
+ "issueUrl": "https://eslint.org/docs/rules/@typescript-eslint/no-explicit-any",
+ "level": "LEVEL_HIGH",
+ "line": "16",
+ "linter": "eslint",
+ "message": "Unexpected any. Specify a different type.",
+ "targetType": "typescript",
+ },
+ {
+ "code": "@typescript-eslint/no-explicit-any",
+ "column": "54",
+ "file": "test_data/null_rule_id.ts",
+ "issueUrl": "https://eslint.org/docs/rules/@typescript-eslint/no-explicit-any",
+ "level": "LEVEL_HIGH",
+ "line": "17",
+ "linter": "eslint",
+ "message": "Unexpected any. Specify a different type.",
+ "targetType": "typescript",
+ },
+ {
+ "code": "@typescript-eslint/no-explicit-any",
+ "column": "42",
+ "file": "test_data/null_rule_id.ts",
+ "issueUrl": "https://eslint.org/docs/rules/@typescript-eslint/no-explicit-any",
+ "level": "LEVEL_HIGH",
+ "line": "18",
+ "linter": "eslint",
+ "message": "Unexpected any. Specify a different type.",
+ "targetType": "typescript",
+ },
+ {
+ "code": "@typescript-eslint/no-explicit-any",
+ "column": "49",
+ "file": "test_data/null_rule_id.ts",
+ "issueUrl": "https://eslint.org/docs/rules/@typescript-eslint/no-explicit-any",
+ "level": "LEVEL_HIGH",
+ "line": "18",
+ "linter": "eslint",
+ "message": "Unexpected any. Specify a different type.",
+ "targetType": "typescript",
+ },
+ ],
+ "lintActions": [
+ {
+ "command": "lint",
+ "fileGroupName": "typescript",
+ "linter": "eslint",
+ "paths": [
+ "test_data/eof_autofix.ts",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "typescript",
+ "linter": "eslint",
+ "paths": [
+ "test_data/format_imports.ts",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "typescript",
+ "linter": "eslint",
+ "paths": [
+ "test_data/non_ascii.ts",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ ],
+ "taskFailures": [],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/eslint/test_data/eslint_v9.0.0_bad_install.check.shot b/linters/eslint/test_data/eslint_v9.0.0_bad_install.check.shot
new file mode 100644
index 000000000..438aa0f6a
--- /dev/null
+++ b/linters/eslint/test_data/eslint_v9.0.0_bad_install.check.shot
@@ -0,0 +1,51 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Testing linter eslint test bad_install 1`] = `
+{
+ "issues": [],
+ "lintActions": [],
+ "taskFailures": [
+ {
+ "details": StringMatching /\\.\\*\\$/m,
+ "message": "test_data/eof_autofix.ts",
+ "name": "eslint",
+ },
+ {
+ "details": StringMatching /\\.\\*\\$/m,
+ "message": "test_data/eof_autofix.ts",
+ "name": "eslint",
+ },
+ {
+ "details": StringMatching /\\.\\*\\$/m,
+ "message": "test_data/format_imports.ts",
+ "name": "eslint",
+ },
+ {
+ "details": StringMatching /\\.\\*\\$/m,
+ "message": "test_data/format_imports.ts",
+ "name": "eslint",
+ },
+ {
+ "details": StringMatching /\\.\\*\\$/m,
+ "message": "test_data/non_ascii.ts",
+ "name": "eslint",
+ },
+ {
+ "details": StringMatching /\\.\\*\\$/m,
+ "message": "test_data/non_ascii.ts",
+ "name": "eslint",
+ },
+ {
+ "details": StringMatching /\\.\\*\\$/m,
+ "message": "test_data/null_rule_id.ts",
+ "name": "eslint",
+ },
+ {
+ "details": StringMatching /\\.\\*\\$/m,
+ "message": "test_data/null_rule_id.ts",
+ "name": "eslint",
+ },
+ ],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/eslint/test_data/eslint_v9.0.0_test_data.eof_autofix.ts.check.shot b/linters/eslint/test_data/eslint_v9.0.0_test_data.eof_autofix.ts.check.shot
new file mode 100644
index 000000000..62b32acd3
--- /dev/null
+++ b/linters/eslint/test_data/eslint_v9.0.0_test_data.eof_autofix.ts.check.shot
@@ -0,0 +1,7 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Testing linter eslint test CUSTOM 1`] = `
+"/* eslint "eol-last": "error" */
+"perfectly normal ascii string";
+"
+`;
diff --git a/linters/eslint/test_data/eslint_v9.0.0_test_data.format_imports.ts.check.shot b/linters/eslint/test_data/eslint_v9.0.0_test_data.format_imports.ts.check.shot
new file mode 100644
index 000000000..9752d92df
--- /dev/null
+++ b/linters/eslint/test_data/eslint_v9.0.0_test_data.format_imports.ts.check.shot
@@ -0,0 +1,13 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Testing linter eslint test CUSTOM 1`] = `
+"/* eslint "import/first": "error" */
+import { zaphod } from "beetlebrox";
+import { arthur } from "dent";
+import { ford } from "prefect";
+
+export interface Marvin {
+ paranoid: boolean;
+}
+"
+`;
diff --git a/linters/eslint/test_data/eslint_v9.0.0_test_data.non_ascii.ts.check.shot b/linters/eslint/test_data/eslint_v9.0.0_test_data.non_ascii.ts.check.shot
new file mode 100644
index 000000000..2a01c35bc
--- /dev/null
+++ b/linters/eslint/test_data/eslint_v9.0.0_test_data.non_ascii.ts.check.shot
@@ -0,0 +1,7 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Testing linter eslint test CUSTOM 1`] = `
+"!false;
+// some of these non-ascii chars (✔, », ✖) trigger wrong offsets
+"
+`;
diff --git a/linters/eslint/test_data/package-lock-new.json b/linters/eslint/test_data/package-lock-new.json
new file mode 100644
index 000000000..d4964d745
--- /dev/null
+++ b/linters/eslint/test_data/package-lock-new.json
@@ -0,0 +1,2075 @@
+{
+ "name": "plugins_436bSh",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "dependencies": {
+ "typescript-eslint": "^7.6.0"
+ },
+ "devDependencies": {
+ "@eslint/js": "^9.0.0",
+ "@typescript-eslint/parser": "^6.12.0",
+ "eslint": "^8.10.0",
+ "eslint-config-prettier": "^9.0.0",
+ "eslint-plugin-import-x": "^0.5.0",
+ "eslint-plugin-n": "^17.1.0",
+ "eslint-plugin-prettier": "^4.2.1",
+ "prettier": "^2.8.0",
+ "tslib": "^2.6.2",
+ "typescript": "4.9.5"
+ }
+ },
+ "node_modules/@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
+ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
+ "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/js": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.0.0.tgz",
+ "integrity": "sha512-RThY/MnKrhubF6+s1JflwUjPEsnCEmYCWwqa/aRISKWNXGZ9epUwft4bUMM35SdKF9xvBrLydAM1RDHd1Z//ZQ==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.14",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^2.0.2",
+ "debug": "^4.3.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA=="
+ },
+ "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"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
+ },
+ "node_modules/@types/semver": {
+ "version": "7.5.8",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
+ "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ=="
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "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": "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": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/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": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "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": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "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": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "9.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/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/typescript-estree/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": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "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": {
+ "@typescript-eslint/types": "6.21.0",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@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.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "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/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==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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=="
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/chalk": {
+ "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"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+ },
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "5.16.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz",
+ "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
+ "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-compat-utils": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
+ "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "eslint": ">=6.0.0"
+ }
+ },
+ "node_modules/eslint-config-prettier": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
+ "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
+ "dev": true,
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
+ }
+ },
+ "node_modules/eslint-import-resolver-node/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-es-x": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.6.0.tgz",
+ "integrity": "sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.1.2",
+ "@eslint-community/regexpp": "^4.6.0",
+ "eslint-compat-utils": "^0.5.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ota-meshi"
+ },
+ "peerDependencies": {
+ "eslint": ">=8"
+ }
+ },
+ "node_modules/eslint-plugin-import-x": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-0.5.0.tgz",
+ "integrity": "sha512-C7R8Z4IzxmsoOPMtSzwuOBW5FH6iRlxHR6iTks+MzVlrk3r3TUxokkWTx3ypdj9nGOEP+CG/5e6ebZzHbxgbbQ==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/utils": "^7.4.0",
+ "debug": "^4.3.4",
+ "doctrine": "^3.0.0",
+ "eslint-import-resolver-node": "^0.3.9",
+ "get-tsconfig": "^4.7.3",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.3",
+ "semver": "^7.6.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0 || ^9.0.0-0"
+ }
+ },
+ "node_modules/eslint-plugin-import-x/node_modules/@typescript-eslint/scope-manager": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.6.0.tgz",
+ "integrity": "sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "7.6.0",
+ "@typescript-eslint/visitor-keys": "7.6.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/eslint-plugin-import-x/node_modules/@typescript-eslint/types": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.6.0.tgz",
+ "integrity": "sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/eslint-plugin-import-x/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.6.0.tgz",
+ "integrity": "sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "7.6.0",
+ "@typescript-eslint/visitor-keys": "7.6.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-import-x/node_modules/@typescript-eslint/utils": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.6.0.tgz",
+ "integrity": "sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.15",
+ "@types/semver": "^7.5.8",
+ "@typescript-eslint/scope-manager": "7.6.0",
+ "@typescript-eslint/types": "7.6.0",
+ "@typescript-eslint/typescript-estree": "7.6.0",
+ "semver": "^7.6.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ }
+ },
+ "node_modules/eslint-plugin-import-x/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.6.0.tgz",
+ "integrity": "sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "7.6.0",
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/eslint-plugin-import-x/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/eslint-plugin-import-x/node_modules/minimatch": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+ "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/eslint-plugin-n": {
+ "version": "17.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.1.0.tgz",
+ "integrity": "sha512-+MTiTej3B07+8vS/RfSMD1w4O9VVR9BSJT9kSa9QUsBlXzKi5PZc+lB3w+iu/2eIS3drFU7zCikSrD8Yn8PEBQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "enhanced-resolve": "^5.15.0",
+ "eslint-plugin-es-x": "^7.5.0",
+ "get-tsconfig": "^4.7.0",
+ "globals": "^14.0.0",
+ "ignore": "^5.2.4",
+ "minimatch": "^9.0.0",
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=8.23.0"
+ }
+ },
+ "node_modules/eslint-plugin-n/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/eslint-plugin-n/node_modules/minimatch": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+ "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/eslint-plugin-prettier": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
+ "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
+ "dev": true,
+ "dependencies": {
+ "prettier-linter-helpers": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.28.0",
+ "prettier": ">=2.0.0"
+ },
+ "peerDependenciesMeta": {
+ "eslint-config-prettier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/@eslint/eslintrc": {
+ "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.6.0",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/@eslint/js": {
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
+ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/espree": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "dependencies": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/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": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/esquery": {
+ "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"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ },
+ "node_modules/fast-diff": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
+ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
+ "dev": true
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw=="
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-tsconfig": {
+ "version": "4.7.3",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz",
+ "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==",
+ "dev": true,
+ "dependencies": {
+ "resolve-pkg-maps": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ }
+ },
+ "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": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "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": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/ignore": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
+ "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dev": true,
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
+ },
+ "node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/optionator": {
+ "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"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "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,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "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/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "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/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "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/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/ts-api-utils": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
+ "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
+ "engines": {
+ "node": ">=16"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.2.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
+ "dev": true
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "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/typescript": {
+ "version": "4.9.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/typescript-eslint": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.6.0.tgz",
+ "integrity": "sha512-LY6vH6F1l5jpGqRtU+uK4+mOecIb4Cd4kaz1hAiJrgnNiHUA8wiw8BkJyYS+MRLM69F1QuSKwtGlQqnGl1Rc6w==",
+ "dependencies": {
+ "@typescript-eslint/eslint-plugin": "7.6.0",
+ "@typescript-eslint/parser": "7.6.0",
+ "@typescript-eslint/utils": "7.6.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.6.0.tgz",
+ "integrity": "sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==",
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.10.0",
+ "@typescript-eslint/scope-manager": "7.6.0",
+ "@typescript-eslint/type-utils": "7.6.0",
+ "@typescript-eslint/utils": "7.6.0",
+ "@typescript-eslint/visitor-keys": "7.6.0",
+ "debug": "^4.3.4",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.3.1",
+ "natural-compare": "^1.4.0",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^7.0.0",
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.6.0.tgz",
+ "integrity": "sha512-usPMPHcwX3ZoPWnBnhhorc14NJw9J4HpSXQX4urF2TPKG0au0XhJoZyX62fmvdHONUkmyUe74Hzm1//XA+BoYg==",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "7.6.0",
+ "@typescript-eslint/types": "7.6.0",
+ "@typescript-eslint/typescript-estree": "7.6.0",
+ "@typescript-eslint/visitor-keys": "7.6.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/scope-manager": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.6.0.tgz",
+ "integrity": "sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==",
+ "dependencies": {
+ "@typescript-eslint/types": "7.6.0",
+ "@typescript-eslint/visitor-keys": "7.6.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/type-utils": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.6.0.tgz",
+ "integrity": "sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==",
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "7.6.0",
+ "@typescript-eslint/utils": "7.6.0",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/types": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.6.0.tgz",
+ "integrity": "sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==",
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.6.0.tgz",
+ "integrity": "sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==",
+ "dependencies": {
+ "@typescript-eslint/types": "7.6.0",
+ "@typescript-eslint/visitor-keys": "7.6.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.6.0.tgz",
+ "integrity": "sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.15",
+ "@types/semver": "^7.5.8",
+ "@typescript-eslint/scope-manager": "7.6.0",
+ "@typescript-eslint/types": "7.6.0",
+ "@typescript-eslint/typescript-estree": "7.6.0",
+ "semver": "^7.6.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ }
+ },
+ "node_modules/typescript-eslint/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.6.0.tgz",
+ "integrity": "sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==",
+ "dependencies": {
+ "@typescript-eslint/types": "7.6.0",
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/typescript-eslint/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/typescript-eslint/node_modules/minimatch": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+ "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ }
+}
diff --git a/linters/eslint/test_data/package-lock.json b/linters/eslint/test_data/package-lock-old.json
similarity index 100%
rename from linters/eslint/test_data/package-lock.json
rename to linters/eslint/test_data/package-lock-old.json
diff --git a/linters/eslint/test_data/package-new.json b/linters/eslint/test_data/package-new.json
new file mode 100644
index 000000000..52663af6a
--- /dev/null
+++ b/linters/eslint/test_data/package-new.json
@@ -0,0 +1,18 @@
+{
+ "private": true,
+ "devDependencies": {
+ "@eslint/js": "^9.0.0",
+ "@typescript-eslint/parser": "^6.12.0",
+ "eslint": "^8.10.0",
+ "eslint-config-prettier": "^9.0.0",
+ "eslint-plugin-import-x": "^0.5.0",
+ "eslint-plugin-n": "^17.1.0",
+ "eslint-plugin-prettier": "^4.2.1",
+ "prettier": "^2.8.0",
+ "tslib": "^2.6.2",
+ "typescript": "4.9.5"
+ },
+ "dependencies": {
+ "typescript-eslint": "^7.6.0"
+ }
+}
diff --git a/linters/eslint/test_data/package.json b/linters/eslint/test_data/package-old.json
similarity index 100%
rename from linters/eslint/test_data/package.json
rename to linters/eslint/test_data/package-old.json
diff --git a/linters/flake8/test_data/flake8_v4.0.1_basic.check.shot b/linters/flake8/test_data/flake8_v4.0.1_basic.check.shot
index 829a6f99b..442584e5a 100644
--- a/linters/flake8/test_data/flake8_v4.0.1_basic.check.shot
+++ b/linters/flake8/test_data/flake8_v4.0.1_basic.check.shot
@@ -1,4 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
exports[`Testing linter flake8 test basic 1`] = `
{
@@ -28,11 +29,12 @@ exports[`Testing linter flake8 test basic 1`] = `
"targetType": "python",
},
{
+ "belowThreshold": true,
"code": "ignore-does-nothing",
"column": "3",
"file": "test_data/basic.in.py",
"issueClass": "ISSUE_CLASS_EXISTING",
- "level": "LEVEL_MEDIUM",
+ "level": "LEVEL_NOTE",
"line": "9",
"linter": "trunk",
"message": "trunk-ignore(flake8/F401) is not suppressing a lint issue",
diff --git a/linters/golangci-lint/plugin.yaml b/linters/golangci-lint/plugin.yaml
index a67f80d6c..e9311d3ba 100644
--- a/linters/golangci-lint/plugin.yaml
+++ b/linters/golangci-lint/plugin.yaml
@@ -30,6 +30,8 @@ lint:
- name: lint
# Custom parser type defined in the trunk cli to handle golangci-lint's JSON output.
output: golangci_lint
+ # We need to run golangci-lint on directories since running on files only works for --fast
+ # and can also produce false positives.
target: ${parent}
# Exclude go linters we already include.
run:
@@ -46,7 +48,8 @@ lint:
# 7 - error logged
success_codes: [0, 2, 7]
run_from: ${root_or_parent_with(go.mod)}
- disable_upstream: true # TODO(Sam): re-enable the upstream for golang (needs test coverage)
+ # TODO(Tyler): Audit golangci-lint running on upstream once sandboxing and relative path fix is landed.
+ disable_upstream: true
suggest_if: files_present
direct_configs:
- .golangci.json
diff --git a/linters/golangci-lint/test_data/.golangci.yml b/linters/golangci-lint/test_data/.golangci.yml
index 97b1d95c2..47d0bea54 100644
--- a/linters/golangci-lint/test_data/.golangci.yml
+++ b/linters/golangci-lint/test_data/.golangci.yml
@@ -6,7 +6,6 @@ linters:
- govet
- asciicheck
- bodyclose
- - deadcode
- depguard
- dogsled
- errcheck
@@ -25,12 +24,9 @@ linters:
- nakedret
- nolintlint
- rowserrcheck
- - scopelint
- staticcheck
- - structcheck
- stylecheck
- typecheck
- unconvert
- unused
- - varcheck
- whitespace
diff --git a/linters/golangci-lint/test_data/golangci_lint_v1.49.0_all.check.shot b/linters/golangci-lint/test_data/golangci_lint_v1.49.0_all.check.shot
index 920a5f43c..f41914e81 100644
--- a/linters/golangci-lint/test_data/golangci_lint_v1.49.0_all.check.shot
+++ b/linters/golangci-lint/test_data/golangci_lint_v1.49.0_all.check.shot
@@ -41,7 +41,7 @@ exports[`Testing linter golangci-lint test all 1`] = `
"targetType": "go",
},
{
- "code": "deadcode",
+ "code": "unused",
"column": "6",
"file": "test_data/unused_func.go",
"issueClass": "ISSUE_CLASS_EXISTING",
@@ -49,7 +49,7 @@ exports[`Testing linter golangci-lint test all 1`] = `
"level": "LEVEL_HIGH",
"line": "5",
"linter": "golangci-lint",
- "message": "\`helper\` is unused",
+ "message": "func \`helper\` is unused",
"targetType": "go",
},
{
diff --git a/linters/golangci-lint/test_data/golangci_lint_v1.57.0_all.check.shot b/linters/golangci-lint/test_data/golangci_lint_v1.57.0_all.check.shot
index 897738f10..f41914e81 100644
--- a/linters/golangci-lint/test_data/golangci_lint_v1.57.0_all.check.shot
+++ b/linters/golangci-lint/test_data/golangci_lint_v1.57.0_all.check.shot
@@ -1,5 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-// trunk-upgrade-validation:RELEASE
exports[`Testing linter golangci-lint test all 1`] = `
{
diff --git a/linters/golangci-lint/test_data/golangci_lint_v1.57.0_empty.check.shot b/linters/golangci-lint/test_data/golangci_lint_v1.57.0_empty.check.shot
index 08f295adc..6e0e756ca 100644
--- a/linters/golangci-lint/test_data/golangci_lint_v1.57.0_empty.check.shot
+++ b/linters/golangci-lint/test_data/golangci_lint_v1.57.0_empty.check.shot
@@ -1,5 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-// trunk-upgrade-validation:RELEASE
exports[`Testing linter golangci-lint test empty 1`] = `
{
diff --git a/linters/golangci-lint/test_data/golangci_lint_v1.57.0_unbuildable.check.shot b/linters/golangci-lint/test_data/golangci_lint_v1.57.0_unbuildable.check.shot
index 5e14a0891..5853ba59e 100644
--- a/linters/golangci-lint/test_data/golangci_lint_v1.57.0_unbuildable.check.shot
+++ b/linters/golangci-lint/test_data/golangci_lint_v1.57.0_unbuildable.check.shot
@@ -1,5 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-// trunk-upgrade-validation:RELEASE
exports[`Testing linter golangci-lint test unbuildable 1`] = `
{
diff --git a/linters/iwyu/iwyu.test.ts b/linters/iwyu/iwyu.test.ts
index 2b96c45c2..5b6d152ef 100644
--- a/linters/iwyu/iwyu.test.ts
+++ b/linters/iwyu/iwyu.test.ts
@@ -31,7 +31,7 @@ const preCheck = (driver: TrunkLintDriver) => {
const oldCompileContents = driver.readFile(compileCommandsPath);
const newCompileContents = oldCompileContents.replace(
/\$\{EXECUTION_ROOT\}/g,
- `${path.resolve(driver.getSandbox(), TEST_DATA)}`,
+ path.resolve(driver.getSandbox(), TEST_DATA),
);
driver.writeFile(compileCommandsPath, newCompileContents);
};
diff --git a/linters/mypy/test_data/mypy_v0.931_CUSTOM.check.shot b/linters/mypy/test_data/mypy_v0.931_CUSTOM.check.shot
index f4da0157c..37f0e4cfc 100644
--- a/linters/mypy/test_data/mypy_v0.931_CUSTOM.check.shot
+++ b/linters/mypy/test_data/mypy_v0.931_CUSTOM.check.shot
@@ -1,4 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
exports[`Testing linter mypy test CUSTOM 1`] = `
{
@@ -28,12 +29,13 @@ exports[`Testing linter mypy test CUSTOM 1`] = `
"targetType": "python",
},
{
+ "belowThreshold": true,
"code": "note",
"column": "1",
"file": "test_data/basic.py",
"issueClass": "ISSUE_CLASS_EXISTING",
"issueUrl": "https://mypy.readthedocs.io/en/stable/error_code_list.html",
- "level": "LEVEL_HIGH",
+ "level": "LEVEL_NOTE",
"line": "1",
"linter": "mypy",
"message": "Hint: "python3 -m pip install types-protobuf". (or run "mypy --install-types" to install all missing stub packages). See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports",
diff --git a/linters/mypy/test_data/mypy_v0.990_CUSTOM.check.shot b/linters/mypy/test_data/mypy_v0.990_CUSTOM.check.shot
index 4a3da162b..f934d8d42 100644
--- a/linters/mypy/test_data/mypy_v0.990_CUSTOM.check.shot
+++ b/linters/mypy/test_data/mypy_v0.990_CUSTOM.check.shot
@@ -1,4 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
exports[`Testing linter mypy test CUSTOM 1`] = `
{
@@ -28,12 +29,13 @@ exports[`Testing linter mypy test CUSTOM 1`] = `
"targetType": "python",
},
{
+ "belowThreshold": true,
"code": "note",
"column": "1",
"file": "test_data/basic.py",
"issueClass": "ISSUE_CLASS_EXISTING",
"issueUrl": "https://mypy.readthedocs.io/en/stable/error_code_list.html",
- "level": "LEVEL_HIGH",
+ "level": "LEVEL_NOTE",
"line": "1",
"linter": "mypy",
"message": "Hint: "python3 -m pip install types-protobuf". (or run "mypy --install-types" to install all missing stub packages). See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports",
diff --git a/linters/mypy/test_data/mypy_v1.10.0_CUSTOM.check.shot b/linters/mypy/test_data/mypy_v1.10.0_CUSTOM.check.shot
index 8e50c461f..4600e4dfa 100644
--- a/linters/mypy/test_data/mypy_v1.10.0_CUSTOM.check.shot
+++ b/linters/mypy/test_data/mypy_v1.10.0_CUSTOM.check.shot
@@ -1,4 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
exports[`Testing linter mypy test CUSTOM 1`] = `
{
@@ -28,12 +29,13 @@ exports[`Testing linter mypy test CUSTOM 1`] = `
"targetType": "python",
},
{
+ "belowThreshold": true,
"code": "note",
"column": "1",
"file": "test_data/basic.py",
"issueClass": "ISSUE_CLASS_EXISTING",
"issueUrl": "https://mypy.readthedocs.io/en/stable/error_code_list.html",
- "level": "LEVEL_HIGH",
+ "level": "LEVEL_NOTE",
"line": "1",
"linter": "mypy",
"message": "Hint: "python3 -m pip install types-protobuf". (or run "mypy --install-types" to install all missing stub packages). See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports",
diff --git a/linters/mypy/test_data/mypy_v1.6.0_CUSTOM.check.shot b/linters/mypy/test_data/mypy_v1.6.0_CUSTOM.check.shot
index 8664e9612..8a4d90713 100644
--- a/linters/mypy/test_data/mypy_v1.6.0_CUSTOM.check.shot
+++ b/linters/mypy/test_data/mypy_v1.6.0_CUSTOM.check.shot
@@ -1,4 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
exports[`Testing linter mypy test CUSTOM 1`] = `
{
@@ -28,12 +29,13 @@ exports[`Testing linter mypy test CUSTOM 1`] = `
"targetType": "python",
},
{
+ "belowThreshold": true,
"code": "note",
"column": "1",
"file": "test_data/basic.py",
"issueClass": "ISSUE_CLASS_EXISTING",
"issueUrl": "https://mypy.readthedocs.io/en/stable/error_code_list.html",
- "level": "LEVEL_HIGH",
+ "level": "LEVEL_NOTE",
"line": "1",
"linter": "mypy",
"message": "Hint: "python3 -m pip install types-protobuf". (or run "mypy --install-types" to install all missing stub packages). See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports",
diff --git a/linters/mypy/test_data/mypy_v1.7.0_CUSTOM.check.shot b/linters/mypy/test_data/mypy_v1.7.0_CUSTOM.check.shot
index 8e50c461f..4600e4dfa 100644
--- a/linters/mypy/test_data/mypy_v1.7.0_CUSTOM.check.shot
+++ b/linters/mypy/test_data/mypy_v1.7.0_CUSTOM.check.shot
@@ -1,4 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
exports[`Testing linter mypy test CUSTOM 1`] = `
{
@@ -28,12 +29,13 @@ exports[`Testing linter mypy test CUSTOM 1`] = `
"targetType": "python",
},
{
+ "belowThreshold": true,
"code": "note",
"column": "1",
"file": "test_data/basic.py",
"issueClass": "ISSUE_CLASS_EXISTING",
"issueUrl": "https://mypy.readthedocs.io/en/stable/error_code_list.html",
- "level": "LEVEL_HIGH",
+ "level": "LEVEL_NOTE",
"line": "1",
"linter": "mypy",
"message": "Hint: "python3 -m pip install types-protobuf". (or run "mypy --install-types" to install all missing stub packages). See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports",
diff --git a/linters/nancy/nancy.test.ts b/linters/nancy/nancy.test.ts
index 9289c51a8..ae6867010 100644
--- a/linters/nancy/nancy.test.ts
+++ b/linters/nancy/nancy.test.ts
@@ -7,11 +7,9 @@ import { TEST_DATA } from "tests/utils";
import { createFuzzyMatcher } from "tests/utils/landing_state";
const preCheck = (driver: TrunkLintDriver) => {
- // trunk-ignore-begin(semgrep): driver.getSandbox() is generated during testing and is safe
fs.readdirSync(path.resolve(driver.getSandbox(), TEST_DATA)).forEach((file) => {
driver.moveFile(path.join(TEST_DATA, file), file);
});
- // trunk-ignore-end(semgrep)
};
// trunk-ignore(eslint/@typescript-eslint/no-unsafe-assignment)
diff --git a/linters/osv-scanner/expected_issues.json b/linters/osv-scanner/expected_issues.json
index 90f75897c..f62a00908 100644
--- a/linters/osv-scanner/expected_issues.json
+++ b/linters/osv-scanner/expected_issues.json
@@ -57,33 +57,33 @@
{
"file": "test_data/Gemfile.lock",
"line": "16",
- "message": "Possible XSS Security Vulnerability in SafeBuffer#bytesplice. Current version of 'activesupport' is vulnerable: 5.2.8.1. Patch available: upgrade to 7.0.4.3 or higher.",
- "code": "GHSA-pj73-v5mw-pm9j",
- "level": "LEVEL_MEDIUM",
+ "message": "Active Support Possibly Discloses Locally Encrypted Files. Current version of 'activesupport' is vulnerable: 5.2.8.1. Patch available: upgrade to 6.1.7.5 or higher.",
+ "code": "GHSA-cr5q-6q9f-rq6q",
+ "level": "LEVEL_LOW",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-pj73-v5mw-pm9j",
+ "issueUrl": "https://osv.dev/GHSA-cr5q-6q9f-rq6q",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/Gemfile.lock",
"line": "16",
- "message": "ReDoS based DoS vulnerability in Active Support's underscore. Current version of 'activesupport' is vulnerable: 5.2.8.1. Patch available: upgrade to 6.1.7.1 or higher.",
- "code": "GHSA-j6gc-792m-qgm2",
- "level": "LEVEL_LOW",
+ "message": "Possible XSS Security Vulnerability in SafeBuffer#bytesplice. Current version of 'activesupport' is vulnerable: 5.2.8.1. Patch available: upgrade to 7.0.4.3 or higher.",
+ "code": "GHSA-pj73-v5mw-pm9j",
+ "level": "LEVEL_MEDIUM",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-j6gc-792m-qgm2",
+ "issueUrl": "https://osv.dev/GHSA-pj73-v5mw-pm9j",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/Gemfile.lock",
"line": "16",
- "message": "Active Support Possibly Discloses Locally Encrypted Files. Current version of 'activesupport' is vulnerable: 5.2.8.1. Patch available: upgrade to 6.1.7.5 or higher.",
- "code": "GHSA-cr5q-6q9f-rq6q",
+ "message": "ReDoS based DoS vulnerability in Active Support's underscore. Current version of 'activesupport' is vulnerable: 5.2.8.1. Patch available: upgrade to 6.1.7.1 or higher.",
+ "code": "GHSA-j6gc-792m-qgm2",
"level": "LEVEL_LOW",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-cr5q-6q9f-rq6q",
+ "issueUrl": "https://osv.dev/GHSA-j6gc-792m-qgm2",
"targetType": "lockfile",
"isSecurity": true
},
@@ -120,6 +120,17 @@
"targetType": "lockfile",
"isSecurity": true
},
+ {
+ "file": "test_data/Gemfile.lock",
+ "line": "97",
+ "message": "Use-after-free in libxml2 via Nokogiri::XML::Reader. Current version of 'nokogiri' is vulnerable: 1.14.1. Patch available: upgrade to 1.15.6 or higher.",
+ "code": "GHSA-vcc3-rw6f-jv97",
+ "level": "LEVEL_MEDIUM",
+ "linter": "osv-scanner",
+ "issueUrl": "https://osv.dev/GHSA-vcc3-rw6f-jv97",
+ "targetType": "lockfile",
+ "isSecurity": true
+ },
{
"file": "test_data/Gemfile.lock",
"line": "97",
@@ -202,7 +213,7 @@
"line": "102",
"message": "'Rack' vulnerable to ReDoS in content type parsing (2nd degree polynomial). Current version of 'rack' is vulnerable: 2.2.6.2. Patch available: upgrade to 3.0.9.1 or higher.",
"code": "GHSA-22f2-v57c-j9cx",
- "level": "LEVEL_LOW",
+ "level": "LEVEL_MEDIUM",
"linter": "osv-scanner",
"issueUrl": "https://osv.dev/GHSA-22f2-v57c-j9cx",
"targetType": "lockfile",
@@ -210,51 +221,21 @@
},
{
"file": "test_data/go.mod",
- "message": "Panic on inputs with large exponents in math/big. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2021-33198",
- "level": "LEVEL_HIGH",
- "linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2021-33198",
- "targetType": "lockfile",
- "isSecurity": true
- },
- {
- "file": "test_data/go.mod",
- "message": "Panic due to crafted inputs in archive/zip. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2021-39293",
- "level": "LEVEL_HIGH",
- "linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2021-39293",
- "targetType": "lockfile",
- "isSecurity": true
- },
- {
- "file": "test_data/go.mod",
- "message": "Incorrect computation for some invalid field elements in crypto/elliptic. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-23806",
- "level": "LEVEL_HIGH",
- "linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-23806",
- "targetType": "lockfile",
- "isSecurity": true
- },
- {
- "file": "test_data/go.mod",
- "message": "Stack exhaustion when compiling deeply nested expressions in regexp. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-24921",
+ "message": "Improper handling of JavaScript whitespace in html/template. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-24540",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-24921",
+ "issueUrl": "https://osv.dev/CVE-2023-24540",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Improper handling of HTML-like comments in script contexts in html/template. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-39318",
+ "message": "Excessive resource consumption in mime/multipart. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-41725",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-39318",
+ "issueUrl": "https://osv.dev/CVE-2022-41725",
"targetType": "lockfile",
"isSecurity": true
},
@@ -290,131 +271,131 @@
},
{
"file": "test_data/go.mod",
- "message": "Excessive memory growth in net/http and golang.org/x/net/http2. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "GHSA-xrjj-mj9h-534m",
+ "message": "Improper handling of empty HTML attributes in html/template. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-29400",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-xrjj-mj9h-534m",
+ "issueUrl": "https://osv.dev/CVE-2023-29400",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Denial of service via crafted HTTP/2 stream in net/http and golang.org/x/net. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "GHSA-vvpx-j8f3-3w6h",
+ "message": "Improper handling of special tags within script contexts in html/template. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-39319",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-vvpx-j8f3-3w6h",
+ "issueUrl": "https://osv.dev/CVE-2023-39319",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Unbounded memory growth in net/http and golang.org/x/net/http2. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "GHSA-vc3p-29h2-gpcp",
+ "message": "Denial of service via chunk extensions in net/http. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-39326",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-vc3p-29h2-gpcp",
+ "issueUrl": "https://osv.dev/CVE-2023-39326",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Improper handling of empty HTML attributes in html/template. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-29400",
+ "message": "Insecure parsing of Windows paths with a \\??\\ prefix in path/filepath. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-45283",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-29400",
+ "issueUrl": "https://osv.dev/CVE-2023-45283",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Improper handling of JavaScript whitespace in html/template. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-24540",
+ "message": "Incorrect detection of reserved device names on Windows in path/filepath. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-45284",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-24540",
+ "issueUrl": "https://osv.dev/CVE-2023-45284",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Improper sanitization of CSS values in html/template. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-24539",
+ "message": "Before Go 1.20, the RSA based key exchange methods in crypto/tls may exhibit a timing side channel. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-45287",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-24539",
+ "issueUrl": "https://osv.dev/CVE-2023-45287",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Backticks not treated as string delimiters in html/template. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-24538",
+ "message": "Incorrect forwarding of sensitive headers and cookies on HTTP redirect in net/http. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-45289",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-24538",
+ "issueUrl": "https://osv.dev/CVE-2023-45289",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Infinite loop in parsing in go/scanner. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-24537",
+ "message": "Memory exhaustion in multipart form parsing in net/textproto and net/http. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-45290",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-24537",
+ "issueUrl": "https://osv.dev/CVE-2023-45290",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Excessive resource consumption in net/http, net/textproto and mime/multipart. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-24536",
+ "message": "Verify panics on certificates with an unknown public key algorithm in crypto/x509. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2024-24783",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-24536",
+ "issueUrl": "https://osv.dev/CVE-2024-24783",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Excessive memory allocation in net/http and net/textproto. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-24534",
+ "message": "Comments in display names are incorrectly handled in net/mail. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2024-24784",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-24534",
+ "issueUrl": "https://osv.dev/CVE-2024-24784",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Incorrect calculation on P256 curves in crypto/internal/nistec. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-24532",
+ "message": "Errors returned from JSON marshaling may break template escaping in html/template. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2024-24785",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-24532",
+ "issueUrl": "https://osv.dev/CVE-2024-24785",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Incorrect privilege reporting in syscall and golang.org/x/sys/unix. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "GHSA-p782-xgp4-8hr8",
+ "message": "HTTP/2 rapid reset can cause excessive work in net/http. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "GHSA-4374-p667-p6c8",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-p782-xgp4-8hr8",
+ "issueUrl": "https://osv.dev/GHSA-4374-p667-p6c8",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Panic due to large headers in net/http and golang.org/x/net/http/httpguts. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "GHSA-h86h-8ppg-mxmh",
+ "message": "HTTP/2 CONTINUATION flood in net/http. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "GHSA-4v7x-pqxf-cx7m",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-h86h-8ppg-mxmh",
+ "issueUrl": "https://osv.dev/GHSA-4v7x-pqxf-cx7m",
"targetType": "lockfile",
"isSecurity": true
},
@@ -430,71 +411,61 @@
},
{
"file": "test_data/go.mod",
- "message": "HTTP/2 rapid reset can cause excessive work in net/http. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "GHSA-4374-p667-p6c8",
- "level": "LEVEL_HIGH",
- "linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-4374-p667-p6c8",
- "targetType": "lockfile",
- "isSecurity": true
- },
- {
- "file": "test_data/go.mod",
- "message": "Errors returned from JSON marshaling may break template escaping in html/template. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2024-24785",
+ "message": "Panic due to large headers in net/http and golang.org/x/net/http/httpguts. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "GHSA-h86h-8ppg-mxmh",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2024-24785",
+ "issueUrl": "https://osv.dev/GHSA-h86h-8ppg-mxmh",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Comments in display names are incorrectly handled in net/mail. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2024-24784",
+ "message": "Incorrect privilege reporting in syscall and golang.org/x/sys/unix. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "GHSA-p782-xgp4-8hr8",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2024-24784",
+ "issueUrl": "https://osv.dev/GHSA-p782-xgp4-8hr8",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Verify panics on certificates with an unknown public key algorithm in crypto/x509. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2024-24783",
+ "message": "Unbounded memory growth in net/http and golang.org/x/net/http2. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "GHSA-vc3p-29h2-gpcp",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2024-24783",
+ "issueUrl": "https://osv.dev/GHSA-vc3p-29h2-gpcp",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Memory exhaustion in multipart form parsing in net/textproto and net/http. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-45290",
+ "message": "Denial of service via crafted HTTP/2 stream in net/http and golang.org/x/net. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "GHSA-vvpx-j8f3-3w6h",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-45290",
+ "issueUrl": "https://osv.dev/GHSA-vvpx-j8f3-3w6h",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Incorrect forwarding of sensitive headers and cookies on HTTP redirect in net/http. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-45289",
+ "message": "Excessive memory growth in net/http and golang.org/x/net/http2. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "GHSA-xrjj-mj9h-534m",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-45289",
+ "issueUrl": "https://osv.dev/GHSA-xrjj-mj9h-534m",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Excessive resource consumption in mime/multipart. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-41725",
+ "message": "Incorrect calculation on P256 curves in crypto/internal/nistec. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-24532",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-41725",
+ "issueUrl": "https://osv.dev/CVE-2023-24532",
"targetType": "lockfile",
"isSecurity": true
},
@@ -510,221 +481,221 @@
},
{
"file": "test_data/go.mod",
- "message": "Path traversal on Windows in path/filepath. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-41722",
+ "message": "Improper sanitization of CSS values in html/template. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-24539",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-41722",
+ "issueUrl": "https://osv.dev/CVE-2023-24539",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Restricted file access on Windows in os and net/http. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-41720",
+ "message": "Backticks not treated as string delimiters in html/template. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-24538",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-41720",
+ "issueUrl": "https://osv.dev/CVE-2023-24538",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Unsanitized NUL in environment variables on Windows in syscall and os/exec. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-41716",
+ "message": "Infinite loop in parsing in go/scanner. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-24537",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-41716",
+ "issueUrl": "https://osv.dev/CVE-2023-24537",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Memory exhaustion when compiling regular expressions in regexp/syntax. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-41715",
+ "message": "Excessive resource consumption in net/http, net/textproto and mime/multipart. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-24536",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-41715",
+ "issueUrl": "https://osv.dev/CVE-2023-24536",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Panic when decoding Float and Rat types in math/big. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-32189",
+ "message": "Excessive memory allocation in net/http and net/textproto. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-24534",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-32189",
+ "issueUrl": "https://osv.dev/CVE-2023-24534",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Exposure of client IP addresses in net/http. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-32148",
+ "message": "Cross-site scripting in net/http/cgi and net/http/fcgi. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2020-24553",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-32148",
+ "issueUrl": "https://osv.dev/CVE-2020-24553",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Stack exhaustion when decoding certain messages in encoding/gob. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-30635",
+ "message": "Infinite loop when decoding inputs in encoding/xml. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2021-27918",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-30635",
+ "issueUrl": "https://osv.dev/CVE-2021-27918",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Indefinite hang with large buffers on Windows in crypto/rand. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-30634",
+ "message": "Incorrect operations on the P-224 curve in crypto/elliptic. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2021-3114",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-30634",
+ "issueUrl": "https://osv.dev/CVE-2021-3114",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Stack exhaustion when unmarshaling certain documents in encoding/xml. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-30633",
+ "message": "Improper sanitization when resolving values from DNS in net. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2021-33195",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-30633",
+ "issueUrl": "https://osv.dev/CVE-2021-33195",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Stack exhaustion on crafted paths in path/filepath. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-30632",
+ "message": "Panic when reading certain archives in archive/zip. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2021-33196",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-30632",
+ "issueUrl": "https://osv.dev/CVE-2021-33196",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Stack exhaustion when reading certain archives in compress/gzip. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-30631",
+ "message": "Attacker can drop certain headers in net/http/httputil. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2021-33197",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-30631",
+ "issueUrl": "https://osv.dev/CVE-2021-33197",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Stack exhaustion in Glob on certain paths in io/fs. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-30630",
+ "message": "Panic on inputs with large exponents in math/big. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2021-33198",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-30630",
+ "issueUrl": "https://osv.dev/CVE-2021-33198",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Session tickets lack random ticket_age_add in crypto/tls. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-30629",
+ "message": "Panic on certain certificates in crypto/tls. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2021-34558",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-30629",
+ "issueUrl": "https://osv.dev/CVE-2021-34558",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Empty Cmd.Path can trigger unintended binary in os/exec on Windows. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-30580",
+ "message": "Panic in ReverseProxy in net/http/httputil. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2021-36221",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-30580",
+ "issueUrl": "https://osv.dev/CVE-2021-36221",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Before Go 1.20, the RSA based key exchange methods in crypto/tls may exhibit a timing side channel. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-45287",
+ "message": "Panic due to crafted inputs in archive/zip. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2021-39293",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-45287",
+ "issueUrl": "https://osv.dev/CVE-2021-39293",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Incorrect detection of reserved device names on Windows in path/filepath. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-45284",
+ "message": "Panic on invalid symbol tables in debug/macho. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2021-41771",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-45284",
+ "issueUrl": "https://osv.dev/CVE-2021-41771",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Path traversal via Clean on Windows in path/filepath. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-29804",
+ "message": "Panic when opening certain archives in archive/zip. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2021-41772",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-29804",
+ "issueUrl": "https://osv.dev/CVE-2021-41772",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Incorrect sanitization of forwarded query parameters in net/http/httputil. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-2880",
+ "message": "Misdirected I/O in syscall. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2021-44717",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-2880",
+ "issueUrl": "https://osv.dev/CVE-2021-44717",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Unbounded memory consumption when reading headers in archive/tar. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-2879",
+ "message": "Improper sanitization of Transfer-Encoding headers in net/http. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-1705",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-2879",
+ "issueUrl": "https://osv.dev/CVE-2022-1705",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Panic due to large inputs affecting P-256 curves in crypto/elliptic. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-28327",
+ "message": "Stack exhaustion due to deeply nested types in go/parser. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-1962",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-28327",
+ "issueUrl": "https://osv.dev/CVE-2022-1962",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Stack exhaustion from deeply nested XML documents in encoding/xml. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-28131",
+ "message": "Uncontrolled memory consumption in math/big. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-23772",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-28131",
+ "issueUrl": "https://osv.dev/CVE-2022-23772",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Insecure parsing of Windows paths with a \\??\\ prefix in path/filepath. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-45283",
+ "message": "Incorrect computation for some invalid field elements in crypto/elliptic. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-23806",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-45283",
+ "issueUrl": "https://osv.dev/CVE-2022-23806",
"targetType": "lockfile",
"isSecurity": true
},
@@ -740,172 +711,211 @@
},
{
"file": "test_data/go.mod",
- "message": "Panic on certain certificates in crypto/tls. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2021-34558",
+ "message": "Stack exhaustion when compiling deeply nested expressions in regexp. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-24921",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2021-34558",
+ "issueUrl": "https://osv.dev/CVE-2022-24921",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Uncontrolled memory consumption in math/big. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-23772",
+ "message": "Stack exhaustion from deeply nested XML documents in encoding/xml. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-28131",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-23772",
+ "issueUrl": "https://osv.dev/CVE-2022-28131",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Stack exhaustion due to deeply nested types in go/parser. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-1962",
+ "message": "Panic due to large inputs affecting P-256 curves in crypto/elliptic. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-28327",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-1962",
+ "issueUrl": "https://osv.dev/CVE-2022-28327",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Denial of service via chunk extensions in net/http. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-39326",
+ "message": "Unbounded memory consumption when reading headers in archive/tar. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-2879",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-39326",
+ "issueUrl": "https://osv.dev/CVE-2022-2879",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Improper sanitization of Transfer-Encoding headers in net/http. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2022-1705",
+ "message": "Incorrect sanitization of forwarded query parameters in net/http/httputil. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-2880",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2022-1705",
+ "issueUrl": "https://osv.dev/CVE-2022-2880",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Misdirected I/O in syscall. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2021-44717",
+ "message": "Path traversal via Clean on Windows in path/filepath. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-29804",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2021-44717",
+ "issueUrl": "https://osv.dev/CVE-2022-29804",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Cross-site scripting in net/http/cgi and net/http/fcgi. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2020-24553",
+ "message": "Empty Cmd.Path can trigger unintended binary in os/exec on Windows. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-30580",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2020-24553",
+ "issueUrl": "https://osv.dev/CVE-2022-30580",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Infinite loop when decoding inputs in encoding/xml. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2021-27918",
+ "message": "Session tickets lack random ticket_age_add in crypto/tls. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-30629",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2021-27918",
+ "issueUrl": "https://osv.dev/CVE-2022-30629",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Incorrect operations on the P-224 curve in crypto/elliptic. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2021-3114",
+ "message": "Stack exhaustion in Glob on certain paths in io/fs. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-30630",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2021-3114",
+ "issueUrl": "https://osv.dev/CVE-2022-30630",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Improper sanitization when resolving values from DNS in net. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2021-33195",
+ "message": "Stack exhaustion when reading certain archives in compress/gzip. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-30631",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2021-33195",
+ "issueUrl": "https://osv.dev/CVE-2022-30631",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Panic when reading certain archives in archive/zip. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2021-33196",
+ "message": "Stack exhaustion on crafted paths in path/filepath. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-30632",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2021-33196",
+ "issueUrl": "https://osv.dev/CVE-2022-30632",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Attacker can drop certain headers in net/http/httputil. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2021-33197",
+ "message": "Stack exhaustion when unmarshaling certain documents in encoding/xml. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-30633",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2021-33197",
+ "issueUrl": "https://osv.dev/CVE-2022-30633",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Panic when opening certain archives in archive/zip. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2021-41772",
+ "message": "Indefinite hang with large buffers on Windows in crypto/rand. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-30634",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2021-41772",
+ "issueUrl": "https://osv.dev/CVE-2022-30634",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Panic on invalid symbol tables in debug/macho. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2021-41771",
+ "message": "Stack exhaustion when decoding certain messages in encoding/gob. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-30635",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2021-41771",
+ "issueUrl": "https://osv.dev/CVE-2022-30635",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Panic in ReverseProxy in net/http/httputil. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2021-36221",
+ "message": "Exposure of client IP addresses in net/http. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-32148",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2021-36221",
+ "issueUrl": "https://osv.dev/CVE-2022-32148",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "message": "Improper handling of special tags within script contexts in html/template. Current version of 'stdlib' is vulnerable: 1.13.",
- "code": "CVE-2023-39319",
+ "message": "Panic when decoding Float and Rat types in math/big. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-32189",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2023-39319",
+ "issueUrl": "https://osv.dev/CVE-2022-32189",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
- "line": "7",
- "message": "Stored Cross-site Scripting in gitea. Current version of 'code.gitea.io/gitea' is vulnerable: 1.9.0-dev.",
- "code": "GHSA-ph3w-2843-72mx",
- "level": "LEVEL_MEDIUM",
+ "message": "Memory exhaustion when compiling regular expressions in regexp/syntax. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-41715",
+ "level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-ph3w-2843-72mx",
+ "issueUrl": "https://osv.dev/CVE-2022-41715",
+ "targetType": "lockfile",
+ "isSecurity": true
+ },
+ {
+ "file": "test_data/go.mod",
+ "message": "Unsanitized NUL in environment variables on Windows in syscall and os/exec. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-41716",
+ "level": "LEVEL_HIGH",
+ "linter": "osv-scanner",
+ "issueUrl": "https://osv.dev/CVE-2022-41716",
+ "targetType": "lockfile",
+ "isSecurity": true
+ },
+ {
+ "file": "test_data/go.mod",
+ "message": "Restricted file access on Windows in os and net/http. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-41720",
+ "level": "LEVEL_HIGH",
+ "linter": "osv-scanner",
+ "issueUrl": "https://osv.dev/CVE-2022-41720",
+ "targetType": "lockfile",
+ "isSecurity": true
+ },
+ {
+ "file": "test_data/go.mod",
+ "message": "Path traversal on Windows in path/filepath. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2022-41722",
+ "level": "LEVEL_HIGH",
+ "linter": "osv-scanner",
+ "issueUrl": "https://osv.dev/CVE-2022-41722",
+ "targetType": "lockfile",
+ "isSecurity": true
+ },
+ {
+ "file": "test_data/go.mod",
+ "message": "Improper handling of HTML-like comments in script contexts in html/template. Current version of 'stdlib' is vulnerable: 1.13.",
+ "code": "CVE-2023-39318",
+ "level": "LEVEL_HIGH",
+ "linter": "osv-scanner",
+ "issueUrl": "https://osv.dev/CVE-2023-39318",
"targetType": "lockfile",
"isSecurity": true
},
@@ -923,11 +933,11 @@
{
"file": "test_data/go.mod",
"line": "7",
- "message": "'code.gitea.io/gitea' Open Redirect vulnerability. Current version is vulnerable: 1.9.0-dev.",
- "code": "GHSA-cf6v-9j57-v6r6",
- "level": "LEVEL_LOW",
+ "message": "Stored Cross-site Scripting in gitea. Current version of 'code.gitea.io/gitea' is vulnerable: 1.9.0-dev.",
+ "code": "GHSA-ph3w-2843-72mx",
+ "level": "LEVEL_MEDIUM",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-cf6v-9j57-v6r6",
+ "issueUrl": "https://osv.dev/GHSA-ph3w-2843-72mx",
"targetType": "lockfile",
"isSecurity": true
},
@@ -942,6 +952,17 @@
"targetType": "lockfile",
"isSecurity": true
},
+ {
+ "file": "test_data/go.mod",
+ "line": "7",
+ "message": "Gitea allowed assignment of private issues. Current version of 'code.gitea.io/gitea' is vulnerable: 1.9.0-dev.",
+ "code": "GHSA-fhv8-m4j4-cww2",
+ "level": "LEVEL_MEDIUM",
+ "linter": "osv-scanner",
+ "issueUrl": "https://osv.dev/GHSA-fhv8-m4j4-cww2",
+ "targetType": "lockfile",
+ "isSecurity": true
+ },
{
"file": "test_data/go.mod",
"line": "7",
@@ -953,6 +974,28 @@
"targetType": "lockfile",
"isSecurity": true
},
+ {
+ "file": "test_data/go.mod",
+ "line": "7",
+ "message": "Arbitrary Code Execution in Gitea. Current version of 'code.gitea.io/gitea' is vulnerable: 1.9.0-dev.",
+ "code": "GHSA-3h6c-c475-jm7v",
+ "level": "LEVEL_HIGH",
+ "linter": "osv-scanner",
+ "issueUrl": "https://osv.dev/GHSA-3h6c-c475-jm7v",
+ "targetType": "lockfile",
+ "isSecurity": true
+ },
+ {
+ "file": "test_data/go.mod",
+ "line": "7",
+ "message": "'code.gitea.io/gitea' Open Redirect vulnerability. Current version is vulnerable: 1.9.0-dev.",
+ "code": "GHSA-cf6v-9j57-v6r6",
+ "level": "LEVEL_LOW",
+ "linter": "osv-scanner",
+ "issueUrl": "https://osv.dev/GHSA-cf6v-9j57-v6r6",
+ "targetType": "lockfile",
+ "isSecurity": true
+ },
{
"file": "test_data/go.mod",
"line": "7",
@@ -997,6 +1040,17 @@
"targetType": "lockfile",
"isSecurity": true
},
+ {
+ "file": "test_data/go.mod",
+ "line": "7",
+ "message": "Gitea Open Redirect. Current version of 'code.gitea.io/gitea' is vulnerable: 1.9.0-dev.",
+ "code": "GHSA-4rqq-rxvc-v2rc",
+ "level": "LEVEL_MEDIUM",
+ "linter": "osv-scanner",
+ "issueUrl": "https://osv.dev/GHSA-4rqq-rxvc-v2rc",
+ "targetType": "lockfile",
+ "isSecurity": true
+ },
{
"file": "test_data/go.mod",
"line": "16",
@@ -1033,22 +1087,22 @@
{
"file": "test_data/go.mod",
"line": "58",
- "message": "Cross Site Request Forgery in Gitea. Current version of 'github.com/go-gitea/gitea' is vulnerable: 1.2.3.",
- "code": "GHSA-4wp3-8q92-mh8w",
- "level": "LEVEL_HIGH",
+ "message": "Open redirect in Gitea. Current version of 'github.com/go-gitea/gitea' is vulnerable: 1.2.3.",
+ "code": "GHSA-36h2-95gj-w488",
+ "level": "LEVEL_MEDIUM",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-4wp3-8q92-mh8w",
+ "issueUrl": "https://osv.dev/GHSA-36h2-95gj-w488",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
"line": "58",
- "message": "Open redirect in Gitea. Current version of 'github.com/go-gitea/gitea' is vulnerable: 1.2.3.",
- "code": "GHSA-36h2-95gj-w488",
- "level": "LEVEL_MEDIUM",
+ "message": "Cross Site Request Forgery in Gitea. Current version of 'github.com/go-gitea/gitea' is vulnerable: 1.2.3.",
+ "code": "GHSA-4wp3-8q92-mh8w",
+ "level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-36h2-95gj-w488",
+ "issueUrl": "https://osv.dev/GHSA-4wp3-8q92-mh8w",
"targetType": "lockfile",
"isSecurity": true
},
@@ -1085,17 +1139,6 @@
"targetType": "lockfile",
"isSecurity": true
},
- {
- "file": "test_data/go.mod",
- "line": "58",
- "message": "Gitea Remote Code Execution. Current version of 'github.com/go-gitea/gitea' is vulnerable: 1.2.3.",
- "code": "GHSA-hpmr-prr2-cqc4",
- "level": "LEVEL_HIGH",
- "linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-hpmr-prr2-cqc4",
- "targetType": "lockfile",
- "isSecurity": true
- },
{
"file": "test_data/go.mod",
"line": "58",
@@ -1129,6 +1172,17 @@
"targetType": "lockfile",
"isSecurity": true
},
+ {
+ "file": "test_data/go.mod",
+ "line": "58",
+ "message": "Improper Access Control in Gitea. Current version of 'github.com/go-gitea/gitea' is vulnerable: 1.2.3.",
+ "code": "GHSA-r7h7-chh4-5rvm",
+ "level": "LEVEL_HIGH",
+ "linter": "osv-scanner",
+ "issueUrl": "https://osv.dev/GHSA-r7h7-chh4-5rvm",
+ "targetType": "lockfile",
+ "isSecurity": true
+ },
{
"file": "test_data/go.mod",
"line": "58",
@@ -1136,7 +1190,18 @@
"code": "GHSA-w8xw-7crf-h23x",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-w8xw-7crf-h23x",
+ "issueUrl": "https://osv.dev/GHSA-w8xw-7crf-h23x",
+ "targetType": "lockfile",
+ "isSecurity": true
+ },
+ {
+ "file": "test_data/go.mod",
+ "line": "58",
+ "message": "Gitea Remote Code Execution. Current version of 'github.com/go-gitea/gitea' is vulnerable: 1.2.3.",
+ "code": "GHSA-hpmr-prr2-cqc4",
+ "level": "LEVEL_HIGH",
+ "linter": "osv-scanner",
+ "issueUrl": "https://osv.dev/GHSA-hpmr-prr2-cqc4",
"targetType": "lockfile",
"isSecurity": true
},
@@ -1154,88 +1219,88 @@
{
"file": "test_data/go.mod",
"line": "84",
- "message": "Gophish before 0.12.0 vulnerable to Open Redirect. Current version of 'github.com/gophish/gophish' is vulnerable: 0.1.2.",
- "code": "GHSA-hvw3-p9px-gpc9",
- "level": "LEVEL_MEDIUM",
+ "message": "Gophish vulnerable to Denial of Service via crafted payload involving autofocus. Current version of 'github.com/gophish/gophish' is vulnerable: 0.1.2.",
+ "code": "GHSA-8gg8-wr4j-v2wr",
+ "level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-hvw3-p9px-gpc9",
+ "issueUrl": "https://osv.dev/GHSA-8gg8-wr4j-v2wr",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
"line": "84",
- "message": "Gophish XSS Vulnerability. Current version of 'github.com/gophish/gophish' is vulnerable: 0.1.2.",
- "code": "GHSA-9h9f-9q8g-6764",
+ "message": "Gophish vulnerable to Server-Side Request Forgery. Current version of 'github.com/gophish/gophish' is vulnerable: 0.1.2.",
+ "code": "GHSA-9c9w-9pq7-f35h",
"level": "LEVEL_MEDIUM",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-9h9f-9q8g-6764",
+ "issueUrl": "https://osv.dev/GHSA-9c9w-9pq7-f35h",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
"line": "84",
- "message": "Gophish vulnerable to Server-Side Request Forgery. Current version of 'github.com/gophish/gophish' is vulnerable: 0.1.2.",
- "code": "GHSA-9c9w-9pq7-f35h",
+ "message": "Gophish XSS Vulnerability. Current version of 'github.com/gophish/gophish' is vulnerable: 0.1.2.",
+ "code": "GHSA-9h9f-9q8g-6764",
"level": "LEVEL_MEDIUM",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-9c9w-9pq7-f35h",
+ "issueUrl": "https://osv.dev/GHSA-9h9f-9q8g-6764",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
"line": "84",
- "message": "Gophish vulnerable to Denial of Service via crafted payload involving autofocus. Current version of 'github.com/gophish/gophish' is vulnerable: 0.1.2.",
- "code": "GHSA-8gg8-wr4j-v2wr",
- "level": "LEVEL_HIGH",
+ "message": "Gophish before 0.12.0 vulnerable to Open Redirect. Current version of 'github.com/gophish/gophish' is vulnerable: 0.1.2.",
+ "code": "GHSA-hvw3-p9px-gpc9",
+ "level": "LEVEL_MEDIUM",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-8gg8-wr4j-v2wr",
+ "issueUrl": "https://osv.dev/GHSA-hvw3-p9px-gpc9",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
"line": "91",
- "message": "pgx SQL Injection via Line Comment Creation. Current version of 'github.com/jackc/pgx' is vulnerable: 3.6.0+incompatible.",
- "code": "GHSA-m7wr-2xf7-cm9p",
+ "message": "pgx SQL Injection via Protocol Message Size Overflow. Current version of 'github.com/jackc/pgx' is vulnerable: 3.6.0+incompatible.",
+ "code": "GHSA-7jwh-3vrq-q3m8",
"level": "LEVEL_MEDIUM",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-m7wr-2xf7-cm9p",
+ "issueUrl": "https://osv.dev/GHSA-7jwh-3vrq-q3m8",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
"line": "91",
- "message": "pgx SQL Injection via Protocol Message Size Overflow. Current version of 'github.com/jackc/pgx' is vulnerable: 3.6.0+incompatible.",
- "code": "GHSA-mrww-27vc-gghv",
+ "message": "pgx SQL Injection via Line Comment Creation. Current version of 'github.com/jackc/pgx' is vulnerable: 3.6.0+incompatible.",
+ "code": "GHSA-m7wr-2xf7-cm9p",
"level": "LEVEL_MEDIUM",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-mrww-27vc-gghv",
+ "issueUrl": "https://osv.dev/GHSA-m7wr-2xf7-cm9p",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
"line": "116",
- "message": "Cross-site scripting due to incorrect sanitization in 'github.com/microcosm-cc/bluemonday'. Current version is vulnerable: 0.0.0-20161012083705-f77f16ffc87a.",
- "code": "GHSA-3x58-xr87-2fcj",
+ "message": "Cross-site scripting via leaked style elements in 'github.com/microcosm-cc/bluemonday'. Current version is vulnerable: 0.0.0-20161012083705-f77f16ffc87a.",
+ "code": "GHSA-x95h-979x-cf3j",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-3x58-xr87-2fcj",
+ "issueUrl": "https://osv.dev/GHSA-x95h-979x-cf3j",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
"line": "116",
- "message": "Cross-site scripting via leaked style elements in 'github.com/microcosm-cc/bluemonday'. Current version is vulnerable: 0.0.0-20161012083705-f77f16ffc87a.",
- "code": "GHSA-x95h-979x-cf3j",
+ "message": "Cross-site scripting due to incorrect sanitization in 'github.com/microcosm-cc/bluemonday'. Current version is vulnerable: 0.0.0-20161012083705-f77f16ffc87a.",
+ "code": "GHSA-3x58-xr87-2fcj",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-x95h-979x-cf3j",
+ "issueUrl": "https://osv.dev/GHSA-3x58-xr87-2fcj",
"targetType": "lockfile",
"isSecurity": true
},
@@ -1374,22 +1439,22 @@
{
"file": "test_data/go.mod",
"line": "173",
- "message": "Denial of service via crafted TIFF image in golang.org/x/image/tiff. Current version is vulnerable: 0.0.0-20190802002840-cff245a6509b.",
- "code": "GHSA-qgc7-mgm3-q253",
+ "message": "Excessive resource consumption in golang.org/x/image/tiff. Current version is vulnerable: 0.0.0-20190802002840-cff245a6509b.",
+ "code": "GHSA-x92r-3vfx-4cv3",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-qgc7-mgm3-q253",
+ "issueUrl": "https://osv.dev/GHSA-x92r-3vfx-4cv3",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
"line": "173",
- "message": "Excessive resource consumption in golang.org/x/image/tiff. Current version is vulnerable: 0.0.0-20190802002840-cff245a6509b.",
- "code": "GHSA-x92r-3vfx-4cv3",
+ "message": "Denial of service via crafted TIFF image in golang.org/x/image/tiff. Current version is vulnerable: 0.0.0-20190802002840-cff245a6509b.",
+ "code": "GHSA-qgc7-mgm3-q253",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-x92r-3vfx-4cv3",
+ "issueUrl": "https://osv.dev/GHSA-qgc7-mgm3-q253",
"targetType": "lockfile",
"isSecurity": true
},
@@ -1407,11 +1472,11 @@
{
"file": "test_data/go.mod",
"line": "174",
- "message": "Excessive memory growth in net/http and golang.org/x/net/http2. Current version is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
- "code": "GHSA-xrjj-mj9h-534m",
+ "message": "Denial of service in net/http and golang.org/x/net/http2. Current version is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
+ "code": "GHSA-69cg-p879-7622",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-xrjj-mj9h-534m",
+ "issueUrl": "https://osv.dev/GHSA-69cg-p879-7622",
"targetType": "lockfile",
"isSecurity": true
},
@@ -1429,77 +1494,88 @@
{
"file": "test_data/go.mod",
"line": "174",
- "message": "Unbounded memory growth in net/http and golang.org/x/net/http2. Current version is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
- "code": "GHSA-vc3p-29h2-gpcp",
+ "message": "HTTP/2 Stream Cancellation Attack. Current version of 'golang.org/x/net' is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
+ "code": "GHSA-2m7v-gc89-fjqf",
+ "level": "LEVEL_MEDIUM",
+ "linter": "osv-scanner",
+ "issueUrl": "https://osv.dev/GHSA-2m7v-gc89-fjqf",
+ "targetType": "lockfile",
+ "isSecurity": true
+ },
+ {
+ "file": "test_data/go.mod",
+ "line": "174",
+ "message": "Improper rendering of text nodes in golang.org/x/net/html. Current version is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
+ "code": "GHSA-2wrh-6pvc-2jm9",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-vc3p-29h2-gpcp",
+ "issueUrl": "https://osv.dev/GHSA-2wrh-6pvc-2jm9",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
"line": "174",
- "message": "Panic due to large headers in net/http and golang.org/x/net/http/httpguts. Current version is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
- "code": "GHSA-h86h-8ppg-mxmh",
+ "message": "HTTP/2 rapid reset can cause excessive work in net/http. Current version of 'golang.org/x/net' is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
+ "code": "GHSA-4374-p667-p6c8",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-h86h-8ppg-mxmh",
+ "issueUrl": "https://osv.dev/GHSA-4374-p667-p6c8",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
"line": "174",
- "message": "Infinite loop when parsing inputs in golang.org/x/net/html. Current version is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
- "code": "GHSA-83g2-8m93-v3w7",
+ "message": "HTTP/2 CONTINUATION flood in net/http. Current version of 'golang.org/x/net' is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
+ "code": "GHSA-4v7x-pqxf-cx7m",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-83g2-8m93-v3w7",
+ "issueUrl": "https://osv.dev/GHSA-4v7x-pqxf-cx7m",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
"line": "174",
- "message": "Denial of service in net/http and golang.org/x/net/http2. Current version is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
- "code": "GHSA-69cg-p879-7622",
+ "message": "Excessive memory growth in net/http and golang.org/x/net/http2. Current version is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
+ "code": "GHSA-xrjj-mj9h-534m",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-69cg-p879-7622",
+ "issueUrl": "https://osv.dev/GHSA-xrjj-mj9h-534m",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
"line": "174",
- "message": "HTTP/2 rapid reset can cause excessive work in net/http. Current version of 'golang.org/x/net' is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
- "code": "GHSA-4374-p667-p6c8",
+ "message": "Infinite loop when parsing inputs in golang.org/x/net/html. Current version is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
+ "code": "GHSA-83g2-8m93-v3w7",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-4374-p667-p6c8",
+ "issueUrl": "https://osv.dev/GHSA-83g2-8m93-v3w7",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
"line": "174",
- "message": "Improper rendering of text nodes in golang.org/x/net/html. Current version is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
- "code": "GHSA-2wrh-6pvc-2jm9",
+ "message": "Panic due to large headers in net/http and golang.org/x/net/http/httpguts. Current version is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
+ "code": "GHSA-h86h-8ppg-mxmh",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-2wrh-6pvc-2jm9",
+ "issueUrl": "https://osv.dev/GHSA-h86h-8ppg-mxmh",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/go.mod",
"line": "174",
- "message": "HTTP/2 Stream Cancellation Attack. Current version of 'golang.org/x/net' is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
- "code": "GHSA-2m7v-gc89-fjqf",
- "level": "LEVEL_MEDIUM",
+ "message": "Unbounded memory growth in net/http and golang.org/x/net/http2. Current version is vulnerable: 0.0.0-20200324143707-d3edc9973b7e.",
+ "code": "GHSA-vc3p-29h2-gpcp",
+ "level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-2m7v-gc89-fjqf",
+ "issueUrl": "https://osv.dev/GHSA-vc3p-29h2-gpcp",
"targetType": "lockfile",
"isSecurity": true
},
@@ -1536,6 +1612,17 @@
"targetType": "lockfile",
"isSecurity": true
},
+ {
+ "file": "test_data/go.mod",
+ "line": "186",
+ "message": "Decompression bomb vulnerability in github.com/go-jose/go-jose. Current version of 'gopkg.in/square/go-jose.v2' is vulnerable: 2.3.1.",
+ "code": "GHSA-c5q2-7r4c-mv6g",
+ "level": "LEVEL_HIGH",
+ "linter": "osv-scanner",
+ "issueUrl": "https://osv.dev/GHSA-c5q2-7r4c-mv6g",
+ "targetType": "lockfile",
+ "isSecurity": true
+ },
{
"file": "test_data/go.mod",
"line": "189",
@@ -1561,33 +1648,44 @@
{
"file": "test_data/requirements.txt",
"line": "1",
- "message": "Invalid-free in _dealloc. Current version of 'pillow' is vulnerable: 9.1.1.",
- "code": "OSV-2022-1074",
+ "message": "'Pillow' buffer overflow vulnerability. Current version of 'pillow' is vulnerable: 9.1.1. Patch available: upgrade to 10.3.0 or higher.",
+ "code": "GHSA-44wm-f244-xhp3",
+ "level": "LEVEL_MEDIUM",
+ "linter": "osv-scanner",
+ "issueUrl": "https://osv.dev/GHSA-44wm-f244-xhp3",
+ "targetType": "lockfile",
+ "isSecurity": true
+ },
+ {
+ "file": "test_data/requirements.txt",
+ "line": "1",
+ "message": "'Pillow' before 9.2.0 performs Improper Handling of Highly Compressed GIF Data (Data Amplification). Current version of 'pillow' is vulnerable: 9.1.1. Patch available: upgrade to 9.2.0 or higher.",
+ "code": "GHSA-m2vv-5vj5-2hm7",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/OSV-2022-1074",
+ "issueUrl": "https://osv.dev/GHSA-m2vv-5vj5-2hm7",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/requirements.txt",
"line": "1",
- "message": "Segv on unknown address in jpeg_read_scanlines. Current version of 'pillow' is vulnerable: 9.1.1.",
- "code": "OSV-2022-715",
+ "message": "Invalid-free in _dealloc. Current version of 'pillow' is vulnerable: 9.1.1.",
+ "code": "OSV-2022-1074",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/OSV-2022-715",
+ "issueUrl": "https://osv.dev/OSV-2022-1074",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/requirements.txt",
"line": "1",
- "message": "An issue was discovered in 'Pillow' before 10.0.0. It is a Denial of Service that uncontrollably allocates memory to process a given task, potentially causing a service to crash by having it run out of memory. This occurs for truetype in ImageFont when textlength in an ImageDraw instance operates on a long text argument. Current version of 'pillow' is vulnerable: 9.1.1. Patch available: upgrade to 10.0.0 or higher.",
- "code": "GHSA-8ghj-p4vj-mr35",
+ "message": "Segv on unknown address in jpeg_read_scanlines. Current version of 'pillow' is vulnerable: 9.1.1.",
+ "code": "OSV-2022-715",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-8ghj-p4vj-mr35",
+ "issueUrl": "https://osv.dev/OSV-2022-715",
"targetType": "lockfile",
"isSecurity": true
},
@@ -1605,11 +1703,11 @@
{
"file": "test_data/requirements.txt",
"line": "1",
- "message": "'Pillow' versions before v10.0.1 bundled libwebp binaries in wheels that are vulnerable to CVE-2023-5129 (previously CVE-2023-4863). 'Pillow' v10.0.1 upgrades the bundled libwebp binary to v1.3.2. Current version of 'pillow' is vulnerable: 9.1.1. Patch available: upgrade to 10.0.1 or higher.",
- "code": "PYSEC-2023-175",
+ "message": "An issue was discovered in 'Pillow' before 10.0.0. It is a Denial of Service that uncontrollably allocates memory to process a given task, potentially causing a service to crash by having it run out of memory. This occurs for truetype in ImageFont when textlength in an ImageDraw instance operates on a long text argument. Current version of 'pillow' is vulnerable: 9.1.1. Patch available: upgrade to 10.0.0 or higher.",
+ "code": "GHSA-8ghj-p4vj-mr35",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/PYSEC-2023-175",
+ "issueUrl": "https://osv.dev/GHSA-8ghj-p4vj-mr35",
"targetType": "lockfile",
"isSecurity": true
},
@@ -1624,6 +1722,17 @@
"targetType": "lockfile",
"isSecurity": true
},
+ {
+ "file": "test_data/requirements.txt",
+ "line": "1",
+ "message": "'Pillow' versions before v10.0.1 bundled libwebp binaries in wheels that are vulnerable to CVE-2023-5129 (previously CVE-2023-4863). 'Pillow' v10.0.1 upgrades the bundled libwebp binary to v1.3.2. Current version of 'pillow' is vulnerable: 9.1.1. Patch available: upgrade to 10.0.1 or higher.",
+ "code": "PYSEC-2023-175",
+ "level": "LEVEL_HIGH",
+ "linter": "osv-scanner",
+ "issueUrl": "https://osv.dev/PYSEC-2023-175",
+ "targetType": "lockfile",
+ "isSecurity": true
+ },
{
"file": "test_data/requirements.txt",
"line": "1",
@@ -1637,144 +1746,144 @@
},
{
"file": "test_data/requirements.txt",
- "line": "1",
- "message": "'Pillow' before 9.2.0 performs Improper Handling of Highly Compressed GIF Data (Data Amplification). Current version of 'pillow' is vulnerable: 9.1.1. Patch available: upgrade to 9.2.0 or higher.",
- "code": "GHSA-m2vv-5vj5-2hm7",
- "level": "LEVEL_HIGH",
+ "line": "2",
+ "message": "'langchain' vulnerable to path traversal. Current version is vulnerable: 0.0.171. Patch available: upgrade to 0.0.353 or higher.",
+ "code": "GHSA-rgp8-pm28-3759",
+ "level": "LEVEL_MEDIUM",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-m2vv-5vj5-2hm7",
+ "issueUrl": "https://osv.dev/GHSA-rgp8-pm28-3759",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/requirements.txt",
"line": "2",
- "message": "'Langchain' 0.0.171 is vulnerable to Arbitrary Code Execution. Current version of 'langchain' is vulnerable: 0.0.171. Patch available: upgrade to 0.0.225 or higher.",
- "code": "GHSA-x32c-59v5-h7fg",
+ "message": "'Langchain' 0.0.171 is vulnerable to Arbitrary code execution in load_prompt. Current version of 'langchain' is vulnerable: 0.0.171. Patch available: upgrade to 0.0.247 or higher.",
+ "code": "GHSA-6643-h7h5-x9wh",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-x32c-59v5-h7fg",
+ "issueUrl": "https://osv.dev/GHSA-6643-h7h5-x9wh",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/requirements.txt",
"line": "2",
- "message": "An issue in 'langchain' langchain-ai v.0.0.232 and before allows a remote attacker to execute arbitrary code via a crafted script to the PythonAstREPLTool._run component. Current version is vulnerable: 0.0.171. Patch available: upgrade to 0.0.233 or higher.",
- "code": "GHSA-prgp-w7vf-ch62",
+ "message": "'Langchain' Server-Side Request Forgery vulnerability. Current version of 'langchain' is vulnerable: 0.0.171. Patch available: upgrade to 0.0.329 or higher.",
+ "code": "GHSA-6h8p-4hx9-w66c",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-prgp-w7vf-ch62",
+ "issueUrl": "https://osv.dev/GHSA-6h8p-4hx9-w66c",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/requirements.txt",
"line": "2",
- "message": "'langchain' Server-Side Request Forgery vulnerability. Current version is vulnerable: 0.0.171. Patch available: upgrade to 0.1.0 or higher.",
- "code": "GHSA-h9j7-5xvc-qhg5",
- "level": "LEVEL_LOW",
+ "message": "'langchain' vulnerable to arbitrary code execution. Current version is vulnerable: 0.0.171. Patch available: upgrade to 0.0.312 or higher.",
+ "code": "GHSA-7gfq-f96f-g85j",
+ "level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-h9j7-5xvc-qhg5",
+ "issueUrl": "https://osv.dev/GHSA-7gfq-f96f-g85j",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/requirements.txt",
"line": "2",
- "message": "An issue in Harrison Chase 'langchain' v.0.0.194 allows an attacker to execute arbitrary code via the python exec calls in the PALChain, affected functions include from_math_prompt and from_colored_object_prompt. Current version is vulnerable: 0.0.171. Patch available: upgrade to 0.0.236 or higher.",
- "code": "GHSA-gwqq-6vq7-5j86",
+ "message": "SQL injection vulnerability in 'langchain' v.0.0.64 allows a remote attacker to obtain sensitive information via the SQLDatabaseChain component. Current version is vulnerable: 0.0.171. Patch available: upgrade to 0.0.247 or higher.",
+ "code": "GHSA-7q94-qpjr-xpgm",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-gwqq-6vq7-5j86",
+ "issueUrl": "https://osv.dev/GHSA-7q94-qpjr-xpgm",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/requirements.txt",
"line": "2",
- "message": "An issue in 'LangChain' v.0.0.231 allows a remote attacker to execute arbitrary code via the prompt parameter. Current version of 'langchain' is vulnerable: 0.0.171. Patch available: upgrade to 0.0.247 or higher.",
- "code": "GHSA-fj32-q626-pjjc",
+ "message": "An issue in Harrison Chase 'langchain' v.0.0.194 and before allows a remote attacker to execute arbitrary code via the from_math_prompt and from_colored_object_prompt functions. Current version is vulnerable: 0.0.171. Patch available: upgrade to 0.0.195 or higher.",
+ "code": "GHSA-92j5-3459-qgp4",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-fj32-q626-pjjc",
+ "issueUrl": "https://osv.dev/GHSA-92j5-3459-qgp4",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/requirements.txt",
"line": "2",
- "message": "An issue in LanChain-ai 'Langchain' v.0.0.245 allows a remote attacker to execute arbitrary code via the evaluate function in the numexpr library. Current version of 'langchain' is vulnerable: 0.0.171. Patch available: upgrade to 0.0.308 or higher.",
- "code": "GHSA-f73w-4m7g-ch9x",
+ "message": "'Langchain' 0.0.171 is vulnerable to Arbitrary Code Execution. Current version of 'langchain' is vulnerable: 0.0.171. Patch available: upgrade to 0.0.225 or higher.",
+ "code": "GHSA-x32c-59v5-h7fg",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-f73w-4m7g-ch9x",
+ "issueUrl": "https://osv.dev/GHSA-x32c-59v5-h7fg",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/requirements.txt",
"line": "2",
- "message": "An issue in Harrison Chase 'langchain' v.0.0.194 and before allows a remote attacker to execute arbitrary code via the from_math_prompt and from_colored_object_prompt functions. Current version is vulnerable: 0.0.171. Patch available: upgrade to 0.0.195 or higher.",
- "code": "GHSA-92j5-3459-qgp4",
+ "message": "An issue in LanChain-ai 'Langchain' v.0.0.245 allows a remote attacker to execute arbitrary code via the evaluate function in the numexpr library. Current version of 'langchain' is vulnerable: 0.0.171. Patch available: upgrade to 0.0.308 or higher.",
+ "code": "GHSA-f73w-4m7g-ch9x",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-92j5-3459-qgp4",
+ "issueUrl": "https://osv.dev/GHSA-f73w-4m7g-ch9x",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/requirements.txt",
"line": "2",
- "message": "SQL injection vulnerability in 'langchain' v.0.0.64 allows a remote attacker to obtain sensitive information via the SQLDatabaseChain component. Current version is vulnerable: 0.0.171. Patch available: upgrade to 0.0.247 or higher.",
- "code": "GHSA-7q94-qpjr-xpgm",
+ "message": "An issue in 'LangChain' v.0.0.231 allows a remote attacker to execute arbitrary code via the prompt parameter. Current version of 'langchain' is vulnerable: 0.0.171. Patch available: upgrade to 0.0.247 or higher.",
+ "code": "GHSA-fj32-q626-pjjc",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-7q94-qpjr-xpgm",
+ "issueUrl": "https://osv.dev/GHSA-fj32-q626-pjjc",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/requirements.txt",
"line": "2",
- "message": "'langchain' vulnerable to arbitrary code execution. Current version is vulnerable: 0.0.171. Patch available: upgrade to 0.0.312 or higher.",
- "code": "GHSA-7gfq-f96f-g85j",
+ "message": "An issue in Harrison Chase 'langchain' v.0.0.194 allows an attacker to execute arbitrary code via the python exec calls in the PALChain, affected functions include from_math_prompt and from_colored_object_prompt. Current version is vulnerable: 0.0.171. Patch available: upgrade to 0.0.236 or higher.",
+ "code": "GHSA-gwqq-6vq7-5j86",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-7gfq-f96f-g85j",
+ "issueUrl": "https://osv.dev/GHSA-gwqq-6vq7-5j86",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/requirements.txt",
"line": "2",
- "message": "'Langchain' Server-Side Request Forgery vulnerability. Current version of 'langchain' is vulnerable: 0.0.171. Patch available: upgrade to 0.0.329 or higher.",
- "code": "GHSA-6h8p-4hx9-w66c",
+ "message": "'LangChain' through 0.1.10 allows ../ directory traversal by an actor who is able to control the final part of the path parameter in a load_chain call. This bypasses the intended behavior of loading configurations only from the hwchase17/langchain-hub GitHub repository. The outcome can be disclosure of an API key for a large language model online service, or remote code execution. Current version is vulnerable: 0.0.171. Patch available: upgrade to 0.1.11 or higher.",
+ "code": "GHSA-h59x-p739-982c",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-6h8p-4hx9-w66c",
+ "issueUrl": "https://osv.dev/GHSA-h59x-p739-982c",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/requirements.txt",
"line": "2",
- "message": "'Langchain' 0.0.171 is vulnerable to Arbitrary code execution in load_prompt. Current version of 'langchain' is vulnerable: 0.0.171. Patch available: upgrade to 0.0.247 or higher.",
- "code": "GHSA-6643-h7h5-x9wh",
- "level": "LEVEL_HIGH",
+ "message": "'langchain' Server-Side Request Forgery vulnerability. Current version is vulnerable: 0.0.171. Patch available: upgrade to 0.1.0 or higher.",
+ "code": "GHSA-h9j7-5xvc-qhg5",
+ "level": "LEVEL_LOW",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-6643-h7h5-x9wh",
+ "issueUrl": "https://osv.dev/GHSA-h9j7-5xvc-qhg5",
"targetType": "lockfile",
"isSecurity": true
},
{
"file": "test_data/requirements.txt",
"line": "2",
- "message": "'LangChain' before 0.0.317 allows SSRF via document_loaders/recursive_url_loader.py because crawling can proceed from an external server to an internal server. Current version of 'langchain' is vulnerable: 0.0.171. Patch available: upgrade to 0.0.317 or higher.",
- "code": "GHSA-655w-fm8m-m478",
+ "message": "An issue in 'langchain' langchain-ai v.0.0.232 and before allows a remote attacker to execute arbitrary code via a crafted script to the PythonAstREPLTool._run component. Current version is vulnerable: 0.0.171. Patch available: upgrade to 0.0.233 or higher.",
+ "code": "GHSA-prgp-w7vf-ch62",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/GHSA-655w-fm8m-m478",
+ "issueUrl": "https://osv.dev/GHSA-prgp-w7vf-ch62",
"targetType": "lockfile",
"isSecurity": true
},
@@ -1803,11 +1912,11 @@
{
"file": "test_data/requirements.txt",
"line": "2",
- "message": "'LangChain' through 0.1.10 allows ../ directory traversal by an actor who is able to control the final part of the path parameter in a load_chain call. This bypasses the intended behavior of loading configurations only from the hwchase17/langchain-hub GitHub repository. The outcome can be disclosure of an API key for a large language model online service, or remote code execution. Current version is vulnerable: 0.0.171. Patch available: upgrade to 0.1.11 or higher.",
- "code": "CVE-2024-28088",
+ "message": "'LangChain' before 0.0.317 allows SSRF via document_loaders/recursive_url_loader.py because crawling can proceed from an external server to an internal server. Current version of 'langchain' is vulnerable: 0.0.171. Patch available: upgrade to 0.0.317 or higher.",
+ "code": "GHSA-655w-fm8m-m478",
"level": "LEVEL_HIGH",
"linter": "osv-scanner",
- "issueUrl": "https://osv.dev/CVE-2024-28088",
+ "issueUrl": "https://osv.dev/GHSA-655w-fm8m-m478",
"targetType": "lockfile",
"isSecurity": true
}
diff --git a/linters/oxipng/oxipng.test.ts b/linters/oxipng/oxipng.test.ts
index e3da0d5d4..32b28d3cb 100644
--- a/linters/oxipng/oxipng.test.ts
+++ b/linters/oxipng/oxipng.test.ts
@@ -19,10 +19,8 @@ const preCheck = (driver: TrunkLintDriver) => {
const postCheck = (driver: TrunkLintDriver) => {
const originalSize = fs.statSync(
- // trunk-ignore(semgrep): paths used here are safe
path.resolve(driver.getSandbox(), TEST_DATA, "good.png.bak"),
).size;
- // trunk-ignore(semgrep): paths used here are safe
const compressedSize = fs.statSync(path.resolve(driver.getSandbox(), TEST_DATA, "good.png")).size;
expect(compressedSize).toBeLessThan(originalSize);
};
diff --git a/linters/php-cs-fixer/php-cs-fixer.test.ts b/linters/php-cs-fixer/php-cs-fixer.test.ts
new file mode 100644
index 000000000..5b52856fb
--- /dev/null
+++ b/linters/php-cs-fixer/php-cs-fixer.test.ts
@@ -0,0 +1,7 @@
+import { linterFmtTest } from "tests";
+import { skipOS } from "tests/utils";
+
+linterFmtTest({
+ linterName: "php-cs-fixer",
+ skipTestIf: skipOS(["win32"]),
+});
diff --git a/linters/php-cs-fixer/plugin.yaml b/linters/php-cs-fixer/plugin.yaml
new file mode 100644
index 000000000..c809cd798
--- /dev/null
+++ b/linters/php-cs-fixer/plugin.yaml
@@ -0,0 +1,36 @@
+version: 0.1
+tools:
+ definitions:
+ - name: php-cs-fixer
+ runtime: php
+ package: friendsofphp/php-cs-fixer
+ known_good_version: 3.54.0
+ shims: [php-cs-fixer]
+ environment:
+ - name: PATH
+ list: ["${tool}/vendor/bin"]
+ health_checks:
+ - command: php-cs-fixer --version
+ parse_regex: PHP CS Fixer ${semver}
+lint:
+ definitions:
+ - name: php-cs-fixer
+ description: Keeps PHP code up to standards
+ tools: [php-cs-fixer]
+ known_good_version: 3.54.0
+ files: [php]
+ commands:
+ # TODO(Tyler): Do we want to define a lint command here?
+ - name: format
+ output: rewrite
+ success_codes: [0]
+ formatter: true
+ batch: true
+ in_place: true
+ run: php-cs-fixer fix --using-cache=no --show-progress=none ${target}
+ direct_configs:
+ # uses ruleset @PSR12 when a config is not present.
+ - .php-cs-fixer.dist.php
+ affects_cache:
+ - .php-cs-fixer.php
+ suggest_if: config_present
diff --git a/linters/php-cs-fixer/test_data/basic.in.php b/linters/php-cs-fixer/test_data/basic.in.php
new file mode 100644
index 000000000..103f07dc4
--- /dev/null
+++ b/linters/php-cs-fixer/test_data/basic.in.php
@@ -0,0 +1,15 @@
+format('j. n. Y');
+ }
+}
diff --git a/linters/php-cs-fixer/test_data/php_cs_fixer_v3.54.0_basic.fmt.shot b/linters/php-cs-fixer/test_data/php_cs_fixer_v3.54.0_basic.fmt.shot
new file mode 100644
index 000000000..8807a2082
--- /dev/null
+++ b/linters/php-cs-fixer/test_data/php_cs_fixer_v3.54.0_basic.fmt.shot
@@ -0,0 +1,22 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Testing formatter php-cs-fixer test basic 1`] = `
+"format('j. n. Y');
+ }
+}
+"
+`;
diff --git a/linters/phpstan/plugin.yaml b/linters/phpstan/plugin.yaml
index e2f117e2a..9f13e3501 100644
--- a/linters/phpstan/plugin.yaml
+++ b/linters/phpstan/plugin.yaml
@@ -9,12 +9,16 @@ tools:
environment:
- name: PATH
list: ["${tool}/vendor/bin"]
+ health_checks:
+ - command: phpstan --version
+ parse_regex: PHP Static Analysis Tool ${semver}
lint:
definitions:
- name: phpstan
main_tool: phpstan
known_good_version: 1.10.58
description: PHP Static Analysis Tool
+ suggest_if: never
commands:
- run: phpstan analyze "${target}" --error-format=json --level=9
output: sarif
diff --git a/linters/plugin.yaml b/linters/plugin.yaml
index f5249f4a8..ad0c73ec0 100644
--- a/linters/plugin.yaml
+++ b/linters/plugin.yaml
@@ -77,6 +77,18 @@ lint:
comments:
- hash
+ - name: bazel-module
+ filenames:
+ - MODULE.bazel
+ comments:
+ - hash
+
+ - name: bazel
+ inherit:
+ - bazel-build
+ - bazel-workspace
+ - bazel-module
+
- name: c
inherit:
- c-header
@@ -572,6 +584,10 @@ lint:
extensions:
- tf
- tf.json
+ comments:
+ - hash
+ - slashes-inline
+ - slashes-block
- name: textproto
extensions:
diff --git a/linters/pragma-once/pragma_once.test.ts b/linters/pragma-once/pragma_once.test.ts
index 2d5dfd16e..c339a2131 100644
--- a/linters/pragma-once/pragma_once.test.ts
+++ b/linters/pragma-once/pragma_once.test.ts
@@ -1,4 +1,4 @@
import { linterFmtTest } from "tests";
-// TODO(Tyler): We will eventually need to add a couple more test cases involving failure modes and other autofixes.
+// A simple formatter test to run 'pragma-once' on 'test_data/basic.in.hh'
linterFmtTest({ linterName: "pragma-once" });
diff --git a/linters/pyright/test_data/pyright_v1.1.359_basic.check.shot b/linters/pyright/test_data/pyright_v1.1.359_basic.check.shot
index ca818b2ac..a2f529712 100644
--- a/linters/pyright/test_data/pyright_v1.1.359_basic.check.shot
+++ b/linters/pyright/test_data/pyright_v1.1.359_basic.check.shot
@@ -1,5 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-// trunk-upgrade-validation:RELEASE
exports[`Testing linter pyright test basic 1`] = `
{
diff --git a/linters/ruff/plugin.yaml b/linters/ruff/plugin.yaml
index ad2d5b9ad..d2cb7a7e3 100644
--- a/linters/ruff/plugin.yaml
+++ b/linters/ruff/plugin.yaml
@@ -64,6 +64,7 @@ lint:
run: ruff --version
- name: ruff-nbqa
+ description: A Python linter for Jupyter notebooks
files: [jupyter]
commands:
- name: lint
diff --git a/linters/sort-package-json/plugin.yaml b/linters/sort-package-json/plugin.yaml
index e660659fd..dbfbda8d1 100644
--- a/linters/sort-package-json/plugin.yaml
+++ b/linters/sort-package-json/plugin.yaml
@@ -13,6 +13,7 @@ lint:
definitions:
- name: sort-package-json
+ description: Sorts package.json keys
files: [package-json]
commands:
- name: format
diff --git a/linters/sourcery/sourcery.test.ts b/linters/sourcery/sourcery.test.ts
index 3001a750b..19ac943b7 100644
--- a/linters/sourcery/sourcery.test.ts
+++ b/linters/sourcery/sourcery.test.ts
@@ -23,7 +23,6 @@ lint:`,
// NOTE(Tyler): Sourcery relies on checking if the repo is open source for its pricing model.
// The sandbox tests run on a subset of the main repo, and it needs access to the repo root .git folder in order to run.
driver.deleteFile(".git");
- // trunk-ignore(semgrep): This path is safe.
fs.symlinkSync(path.join(REPO_ROOT, ".git"), path.join(driver.getSandbox(), ".git"));
};
diff --git a/linters/sqlfluff/sqlfluff.test.ts b/linters/sqlfluff/sqlfluff.test.ts
index 1019e9593..6a8c24177 100644
--- a/linters/sqlfluff/sqlfluff.test.ts
+++ b/linters/sqlfluff/sqlfluff.test.ts
@@ -1,5 +1,6 @@
import { linterCheckTest, linterFmtTest, TestCallback } from "tests";
+// A simple test to run 'sqlfluff lint'
// basic_check.out.json is the result of running:
// trunk check linters/sqlfluff/test/basic_check.in.sql --force --filter=sqlfluff --output=json
linterCheckTest({ linterName: "sqlfluff", namedTestPrefixes: ["basic_check"] });
@@ -11,10 +12,10 @@ const fmtCallbacks: TestCallback = (driver) => {
const sqlfluffRegex = /- sqlfluff@(.+)\n/;
const newContents = currentContents.replace(
sqlfluffRegex,
- "- sqlfluff@$1:\n commands: [lint, fix]\n"
+ "- sqlfluff@$1:\n commands: [lint, fix]\n",
);
driver.writeFile(trunkYamlPath, newContents);
};
-// TODO(Tyler): We will eventually need to add a couple more test cases involving failure modes.
+// An additional test to run 'sqlfluff fmt' with some additional test setup.
linterFmtTest({ linterName: "sqlfluff", namedTestPrefixes: ["basic_fmt"], preCheck: fmtCallbacks });
diff --git a/linters/stylelint/stylelint.test.ts b/linters/stylelint/stylelint.test.ts
index fc2db68a3..3f70eea79 100644
--- a/linters/stylelint/stylelint.test.ts
+++ b/linters/stylelint/stylelint.test.ts
@@ -12,6 +12,7 @@ const preCheck = (driver: TrunkLintDriver) => {
driver.writeFile(".trunk/configs/.stylelintrc", stylelintContents);
+ // trunk-ignore(eslint/@typescript-eslint/no-non-null-assertion)
const configVersion = semver.gte(driver.enabledVersion!, "16.0.0")
? "stylelint-config-standard@35.0.0"
: "stylelint-config-standard@25.0.0";
diff --git a/linters/swiftlint/test_data/swiftlint_v0.55.0_basic.check.shot b/linters/swiftlint/test_data/swiftlint_v0.55.0_basic.check.shot
new file mode 100644
index 000000000..ed72c2f8e
--- /dev/null
+++ b/linters/swiftlint/test_data/swiftlint_v0.55.0_basic.check.shot
@@ -0,0 +1,76 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
+
+exports[`Testing linter swiftlint test basic 1`] = `
+{
+ "issues": [
+ {
+ "code": "type_name",
+ "column": "8",
+ "file": "test_data/basic.swift",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "1",
+ "linter": "swiftlint",
+ "message": "Type Name Violation: Type name 'a' should start with an uppercase character",
+ "targetType": "swift",
+ },
+ {
+ "code": "line_length",
+ "column": "1",
+ "file": "test_data/basic.swift",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_MEDIUM",
+ "line": "3",
+ "linter": "swiftlint",
+ "message": "Line Length Violation: Line should be 120 characters or less; currently it has 139 characters",
+ "targetType": "swift",
+ },
+ {
+ "code": "vertical_whitespace",
+ "column": "1",
+ "file": "test_data/basic.swift",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_MEDIUM",
+ "line": "5",
+ "linter": "swiftlint",
+ "message": "Vertical Whitespace Violation: Limit vertical whitespace to a single empty line; currently 2",
+ "targetType": "swift",
+ },
+ {
+ "code": "identifier_name",
+ "column": "6",
+ "file": "test_data/basic.swift",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "6",
+ "linter": "swiftlint",
+ "message": "Identifier Name Violation: Function name 'Bar()' should start with a lowercase character",
+ "targetType": "swift",
+ },
+ ],
+ "lintActions": [
+ {
+ "command": "lint",
+ "fileGroupName": "swift",
+ "linter": "swiftlint",
+ "paths": [
+ "test_data/basic.swift",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "swift",
+ "linter": "swiftlint",
+ "paths": [
+ "test_data/basic.swift",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ ],
+ "taskFailures": [],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/swiftlint/test_data/swiftlint_v0.55.0_nested_configs.check.shot b/linters/swiftlint/test_data/swiftlint_v0.55.0_nested_configs.check.shot
new file mode 100644
index 000000000..ee95a000c
--- /dev/null
+++ b/linters/swiftlint/test_data/swiftlint_v0.55.0_nested_configs.check.shot
@@ -0,0 +1,80 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+// trunk-upgrade-validation:RELEASE
+
+exports[`Testing linter swiftlint test nested_configs 1`] = `
+{
+ "issues": [
+ {
+ "code": "type_name",
+ "column": "8",
+ "file": "basic.swift",
+ "level": "LEVEL_HIGH",
+ "line": "1",
+ "linter": "swiftlint",
+ "message": "Type Name Violation: Type name 'a' should start with an uppercase character",
+ "targetType": "swift",
+ },
+ {
+ "code": "vertical_whitespace",
+ "column": "1",
+ "file": "basic.swift",
+ "level": "LEVEL_MEDIUM",
+ "line": "5",
+ "linter": "swiftlint",
+ "message": "Vertical Whitespace Violation: Limit vertical whitespace to a single empty line; currently 2",
+ "targetType": "swift",
+ },
+ {
+ "code": "vertical_whitespace",
+ "column": "1",
+ "file": "test_data/basic.swift",
+ "level": "LEVEL_MEDIUM",
+ "line": "5",
+ "linter": "swiftlint",
+ "message": "Vertical Whitespace Violation: Limit vertical whitespace to a single empty line; currently 2",
+ "targetType": "swift",
+ },
+ {
+ "code": "type_name",
+ "column": "8",
+ "file": "test_data/subdir/basic.swift",
+ "level": "LEVEL_HIGH",
+ "line": "1",
+ "linter": "swiftlint",
+ "message": "Type Name Violation: Type name 'a' should start with an uppercase character",
+ "targetType": "swift",
+ },
+ ],
+ "lintActions": [
+ {
+ "command": "lint",
+ "fileGroupName": "swift",
+ "linter": "swiftlint",
+ "paths": [
+ "basic.swift",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "swift",
+ "linter": "swiftlint",
+ "paths": [
+ "test_data/basic.swift",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "swift",
+ "linter": "swiftlint",
+ "paths": [
+ "test_data/subdir/basic.swift",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ ],
+ "taskFailures": [],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/trivy/config_expected_issues.json b/linters/trivy/config_expected_issues.json
index 3146e2434..42cd243ec 100644
--- a/linters/trivy/config_expected_issues.json
+++ b/linters/trivy/config_expected_issues.json
@@ -1,158 +1,169 @@
[
{
+ "file": "test_data/aws.tf",
"line": "1",
+ "message": "Instance does not require IMDS access to require a token",
"code": "AVD-AWS-0028",
"level": "LEVEL_HIGH",
"linter": "trivy",
"targetType": "terraform",
- "isSecurity": true,
- "message": "Instance does not require IMDS access to require a token",
- "file": "test_data/aws.tf"
+ "isSecurity": true
},
{
+ "file": "test_data/aws.tf",
"line": "1",
+ "message": "Root block device is not encrypted.",
"code": "AVD-AWS-0131",
"level": "LEVEL_HIGH",
"linter": "trivy",
"targetType": "terraform",
- "isSecurity": true,
- "message": "Root block device is not encrypted.",
- "file": "test_data/aws.tf"
+ "isSecurity": true
},
{
- "code": "DS026",
+ "file": "test_data/basic.Dockerfile",
+ "message": "Specify at least 1 USER command in Dockerfile with non-root user as argument",
+ "code": "DS002",
"level": "LEVEL_HIGH",
"linter": "trivy",
"targetType": "docker",
- "isSecurity": true,
- "message": "Add HEALTHCHECK instruction in your Dockerfile",
- "file": "test_data/basic.Dockerfile"
+ "isSecurity": true
},
{
- "code": "DS002",
+ "file": "test_data/basic.Dockerfile",
+ "message": "Add HEALTHCHECK instruction in your Dockerfile",
+ "code": "DS026",
"level": "LEVEL_HIGH",
"linter": "trivy",
"targetType": "docker",
- "isSecurity": true,
- "message": "Specify at least 1 USER command in Dockerfile with non-root user as argument",
- "file": "test_data/basic.Dockerfile"
+ "isSecurity": true
},
{
- "code": "KSV116",
+ "file": "test_data/basic.yaml",
+ "message": "container \"sec-ctx-demo\" of pod \"security-context-demo\" in \"default\" namespace should specify a seccomp profile",
+ "code": "KSV104",
"level": "LEVEL_HIGH",
"linter": "trivy",
"targetType": "yaml",
- "isSecurity": true,
- "message": "pod security-context-demo in default namespace should set spec.securityContext.runAsGroup, spec.securityContext.supplementalGroups[*] and spec.securityContext.fsGroup to integer greater than 0",
- "file": "test_data/basic.yaml"
+ "isSecurity": true
},
{
- "code": "KSV104",
+ "file": "test_data/basic.yaml",
+ "line": "14",
+ "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should add 'ALL' to 'securityContext.capabilities.drop'",
+ "code": "KSV003",
"level": "LEVEL_HIGH",
"linter": "trivy",
"targetType": "yaml",
- "isSecurity": true,
- "message": "container sec-ctx-demo of pod security-context-demo in default namespace should specify a seccomp profile",
- "file": "test_data/basic.yaml"
+ "isSecurity": true
},
{
+ "file": "test_data/basic.yaml",
"line": "14",
- "code": "KSV106",
+ "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should set 'resources.limits.cpu'",
+ "code": "KSV011",
"level": "LEVEL_HIGH",
"linter": "trivy",
"targetType": "yaml",
- "isSecurity": true,
- "message": "container should drop all",
- "file": "test_data/basic.yaml"
+ "isSecurity": true
},
{
+ "file": "test_data/basic.yaml",
"line": "14",
- "code": "KSV020",
+ "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should set 'securityContext.runAsNonRoot' to true",
+ "code": "KSV012",
"level": "LEVEL_HIGH",
"linter": "trivy",
"targetType": "yaml",
- "isSecurity": true,
- "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should set 'securityContext.runAsUser' > 10000",
- "file": "test_data/basic.yaml"
+ "isSecurity": true
},
{
+ "file": "test_data/basic.yaml",
"line": "14",
- "code": "KSV003",
+ "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should specify an image tag",
+ "code": "KSV013",
"level": "LEVEL_HIGH",
"linter": "trivy",
"targetType": "yaml",
- "isSecurity": true,
- "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should add 'ALL' to 'securityContext.capabilities.drop'",
- "file": "test_data/basic.yaml"
+ "isSecurity": true
},
{
+ "file": "test_data/basic.yaml",
"line": "14",
- "code": "KSV013",
+ "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should set 'securityContext.readOnlyRootFilesystem' to true",
+ "code": "KSV014",
"level": "LEVEL_HIGH",
"linter": "trivy",
"targetType": "yaml",
- "isSecurity": true,
- "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should specify an image tag",
- "file": "test_data/basic.yaml"
+ "isSecurity": true
},
{
+ "file": "test_data/basic.yaml",
"line": "14",
- "code": "KSV021",
+ "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should set 'resources.limits.memory'",
+ "code": "KSV018",
"level": "LEVEL_HIGH",
"linter": "trivy",
"targetType": "yaml",
- "isSecurity": true,
- "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should set 'securityContext.runAsGroup' > 10000",
- "file": "test_data/basic.yaml"
+ "isSecurity": true
},
{
+ "file": "test_data/basic.yaml",
"line": "14",
- "code": "KSV014",
+ "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should set 'securityContext.runAsUser' > 10000",
+ "code": "KSV020",
"level": "LEVEL_HIGH",
"linter": "trivy",
"targetType": "yaml",
- "isSecurity": true,
- "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should set 'securityContext.readOnlyRootFilesystem' to true",
- "file": "test_data/basic.yaml"
+ "isSecurity": true
},
{
+ "file": "test_data/basic.yaml",
"line": "14",
- "code": "KSV030",
+ "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should set 'securityContext.runAsGroup' > 10000",
+ "code": "KSV021",
"level": "LEVEL_HIGH",
"linter": "trivy",
"targetType": "yaml",
- "isSecurity": true,
- "message": "Either Pod or Container should set 'securityContext.seccompProfile.type' to 'RuntimeDefault'",
- "file": "test_data/basic.yaml"
+ "isSecurity": true
},
{
+ "file": "test_data/basic.yaml",
"line": "14",
- "code": "KSV011",
+ "message": "Either Pod or Container should set 'securityContext.seccompProfile.type' to 'RuntimeDefault'",
+ "code": "KSV030",
"level": "LEVEL_HIGH",
"linter": "trivy",
"targetType": "yaml",
- "isSecurity": true,
- "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should set 'resources.limits.cpu'",
- "file": "test_data/basic.yaml"
+ "isSecurity": true
},
{
+ "file": "test_data/basic.yaml",
"line": "14",
- "code": "KSV012",
+ "message": "container should drop all",
+ "code": "KSV106",
"level": "LEVEL_HIGH",
"linter": "trivy",
"targetType": "yaml",
- "isSecurity": true,
- "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should set 'securityContext.runAsNonRoot' to true",
- "file": "test_data/basic.yaml"
+ "isSecurity": true
},
{
- "line": "14",
- "code": "KSV018",
+ "file": "test_data/main.tf",
+ "line": "17",
+ "message": "IAM policy document uses sensitive action 'logs:CreateLogGroup' on wildcarded resource '34c9c025-d988-4bcc-9d4a-4581749e7576:*'",
+ "code": "AVD-AWS-0057",
"level": "LEVEL_HIGH",
"linter": "trivy",
- "targetType": "yaml",
- "isSecurity": true,
- "message": "Container 'sec-ctx-demo' of Pod 'security-context-demo' should set 'resources.limits.memory'",
- "file": "test_data/basic.yaml"
+ "targetType": "terraform",
+ "isSecurity": true
+ },
+ {
+ "file": "test_data/main.tf",
+ "line": "17",
+ "message": "Function does not have tracing enabled.",
+ "code": "AVD-AWS-0066",
+ "level": "LEVEL_HIGH",
+ "linter": "trivy",
+ "targetType": "terraform",
+ "isSecurity": true
}
]
diff --git a/linters/trivy/plugin.yaml b/linters/trivy/plugin.yaml
index 05cb25422..9bb7e9f7c 100644
--- a/linters/trivy/plugin.yaml
+++ b/linters/trivy/plugin.yaml
@@ -30,6 +30,7 @@ lint:
suggest_if: files_present
description: A comprehensive and versatile security scanner
known_good_version: 0.44.1
+ # trivy supports --format template --template "@contrib/sarif.tpl", but it reports the wrong filepaths.
commands:
- name: fs-vuln
files: [lockfile]
diff --git a/linters/trivy/test_data/main.tf b/linters/trivy/test_data/main.tf
new file mode 100644
index 000000000..66d9016c6
--- /dev/null
+++ b/linters/trivy/test_data/main.tf
@@ -0,0 +1,34 @@
+terraform {
+ required_version = ">= 1.4.6"
+ backend "local" {
+ path = "terraform.tfstate"
+ }
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = ">= 5.47.0"
+ }
+ }
+}
+
+# AWS Provider
+provider "aws" {}
+
+module "lambda_function" {
+ source = "terraform-aws-modules/lambda/aws"
+ version = "7.4.0"
+ function_name = "LambdaFunction"
+ handler = "lambda_handler.lambda_handler"
+ runtime = "python3.12"
+ local_existing_package = "lambda_package.zip"
+ create_package = false
+ create_current_version_allowed_triggers = false
+ attach_policy_json = false
+ timeout = 900
+ ignore_source_code_hash = true
+ maximum_retry_attempts = 0
+ # Because tc-db is private, this lambda function must run within the VPC
+ vpc_subnet_ids = ["subnet-1", "subnet-2", "subnet-3"]
+ vpc_security_group_ids = ["security-group-1", "security-group-2"]
+ attach_network_policy = true
+}
diff --git a/linters/trivy/test_data/trivy_v0.44.1_config.check.shot b/linters/trivy/test_data/trivy_v0.44.1_config.check.shot
index 91efaf296..bcf500d03 100644
--- a/linters/trivy/test_data/trivy_v0.44.1_config.check.shot
+++ b/linters/trivy/test_data/trivy_v0.44.1_config.check.shot
@@ -49,6 +49,15 @@ exports[`Testing linter trivy test config 1`] = `
],
"verb": "TRUNK_VERB_CHECK",
},
+ {
+ "command": "config",
+ "fileGroupName": "terraform",
+ "linter": "trivy",
+ "paths": [
+ "test_data/main.tf",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
],
"taskFailures": [],
"unformattedFiles": [],
diff --git a/linters/trivy/test_data/trivy_v0.44.1_fs-secret.check.shot b/linters/trivy/test_data/trivy_v0.44.1_fs-secret.check.shot
index 07f0019fd..c5a910f63 100644
--- a/linters/trivy/test_data/trivy_v0.44.1_fs-secret.check.shot
+++ b/linters/trivy/test_data/trivy_v0.44.1_fs-secret.check.shot
@@ -96,6 +96,15 @@ exports[`Testing linter trivy test fs-secret 1`] = `
],
"verb": "TRUNK_VERB_CHECK",
},
+ {
+ "command": "fs-secret",
+ "fileGroupName": "ALL",
+ "linter": "trivy",
+ "paths": [
+ "test_data/main.tf",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
{
"command": "fs-secret",
"fileGroupName": "ALL",
diff --git a/linters/trivy/trivy_config_to_sarif.py b/linters/trivy/trivy_config_to_sarif.py
index 281d9a704..1bfa6d7f5 100755
--- a/linters/trivy/trivy_config_to_sarif.py
+++ b/linters/trivy/trivy_config_to_sarif.py
@@ -1,6 +1,7 @@
#!/usr/bin/env python3
import json
+import os
import sys
@@ -29,6 +30,7 @@ def to_result_sarif(path: str, vuln_id: str, description: str, line: int = 0):
def main(argv):
trivy_json = json.load(sys.stdin)
+ path = trivy_json["ArtifactName"]
results = []
for result in trivy_json.get("Results", []):
@@ -37,11 +39,15 @@ def main(argv):
for vuln in result["Misconfigurations"]:
vuln_id = vuln["ID"]
message = vuln["Message"]
- line_num = vuln.get("CauseMetadata", {}).get("StartLine", 0)
-
- results.append(
- to_result_sarif(trivy_json["ArtifactName"], vuln_id, message, line_num)
- )
+ location_info = vuln.get("CauseMetadata", {})
+ line_num = location_info.get("StartLine", 0)
+ for occurrence in location_info.get("Occurrences", []):
+ # Sometimes the original StartLine will reference a resource file
+ if occurrence.get("Filename") == os.path.basename(path):
+ line_num = occurrence["Location"]["StartLine"]
+ break
+
+ results.append(to_result_sarif(path, vuln_id, message, line_num))
sarif = {
"$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
diff --git a/linters/trufflehog/plugin.yaml b/linters/trufflehog/plugin.yaml
index b3952118e..1a293e212 100644
--- a/linters/trufflehog/plugin.yaml
+++ b/linters/trufflehog/plugin.yaml
@@ -49,6 +49,7 @@ lint:
# Variant of trufflehog that scans git history.
- name: trufflehog-git
+ description: Scan git history for secrets
files: [ALL]
download: trufflehog
known_good_version: 3.59.0
diff --git a/linters/vale/.vale.ini b/linters/vale/.vale.ini
new file mode 100644
index 000000000..ee11cf249
--- /dev/null
+++ b/linters/vale/.vale.ini
@@ -0,0 +1,5 @@
+[formats]
+markdoc = md
+
+[*.md]
+BasedOnStyles = Vale
diff --git a/linters/vale/plugin.yaml b/linters/vale/plugin.yaml
new file mode 100644
index 000000000..81e3d99d4
--- /dev/null
+++ b/linters/vale/plugin.yaml
@@ -0,0 +1,46 @@
+version: 0.1
+
+downloads:
+ - name: vale
+ downloads:
+ - os:
+ linux: Linux
+ macos: macOS
+ cpu:
+ x86_64: 64-bit
+ arm_64: arm64
+ url: https://github.com/errata-ai/vale/releases/download/v${version}/vale_${version}_${os}_${cpu}.tar.gz
+ - os:
+ windows: Windows
+ cpu:
+ x86_64: 64-bit
+ arm_64: arm64
+ url: https://github.com/errata-ai/vale/releases/download/v${version}/vale_${version}_Windows_${cpu}.zip
+
+tools:
+ definitions:
+ - name: vale
+ download: vale
+ shims: [vale]
+ known_good_version: 3.4.1
+ environment:
+ - name: PATH
+ list: ["${tool}"]
+
+lint:
+ definitions:
+ - name: vale
+ files: [ALL]
+ description: Enforce editorial standards in your text documents
+ commands:
+ - name: lint
+ output: regex
+ parse_regex: (?P.*):(?P\d+):(?P\d+):(?P[^:]+):(?P.+)
+ run: vale --output=line ${target}
+ success_codes: [0, 1]
+ read_output_from: stdout
+ batch: true
+ suggest_if: config_present
+ tools: [vale]
+ known_good_version: 3.4.1
+ direct_configs: [.vale.ini]
diff --git a/linters/vale/test_data/basic.in.md b/linters/vale/test_data/basic.in.md
new file mode 100644
index 000000000..a9354fa9b
--- /dev/null
+++ b/linters/vale/test_data/basic.in.md
@@ -0,0 +1,2 @@
+Hello world!
+Hallo, wurld?
diff --git a/linters/vale/test_data/vale_v3.4.1_basic.check.shot b/linters/vale/test_data/vale_v3.4.1_basic.check.shot
new file mode 100644
index 000000000..36c4a858f
--- /dev/null
+++ b/linters/vale/test_data/vale_v3.4.1_basic.check.shot
@@ -0,0 +1,53 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Testing linter vale test basic 1`] = `
+{
+ "issues": [
+ {
+ "code": "error",
+ "column": "1",
+ "file": "test_data/basic.in.md",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "vale",
+ "message": "Did you really mean 'Hallo'?",
+ "targetType": "ALL",
+ },
+ {
+ "code": "error",
+ "column": "8",
+ "file": "test_data/basic.in.md",
+ "issueClass": "ISSUE_CLASS_EXISTING",
+ "level": "LEVEL_HIGH",
+ "line": "2",
+ "linter": "vale",
+ "message": "Did you really mean 'wurld'?",
+ "targetType": "ALL",
+ },
+ ],
+ "lintActions": [
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "vale",
+ "paths": [
+ "test_data/basic.in.md",
+ ],
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ {
+ "command": "lint",
+ "fileGroupName": "ALL",
+ "linter": "vale",
+ "paths": [
+ "test_data/basic.in.md",
+ ],
+ "upstream": true,
+ "verb": "TRUNK_VERB_CHECK",
+ },
+ ],
+ "taskFailures": [],
+ "unformattedFiles": [],
+}
+`;
diff --git a/linters/vale/vale.test.ts b/linters/vale/vale.test.ts
new file mode 100644
index 000000000..ff7a73ac6
--- /dev/null
+++ b/linters/vale/vale.test.ts
@@ -0,0 +1,3 @@
+import { linterCheckTest } from "tests";
+
+linterCheckTest({ linterName: "vale" });
diff --git a/package-lock.json b/package-lock.json
index b3b3ca265..20a91a0de 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "plugins",
- "lockfileVersion": 2,
+ "lockfileVersion": 3,
"requires": true,
"packages": {
"": {
@@ -16,30 +16,33 @@
"@types/debug": "^4.1.12",
"@types/jest": "^29.5.12",
"@types/jest-specific-snapshot": "^0.5.9",
- "@types/node": "^20.12.7",
- "@typescript-eslint/eslint-plugin": "^7.7.0",
- "@typescript-eslint/parser": "^7.7.0",
+ "@types/node": "^20.14.2",
+ "@types/semver": "^7.5.8",
+ "@typescript-eslint/eslint-plugin": "^7.12.0",
+ "@typescript-eslint/parser": "^7.12.0",
"caller": "^1.1.0",
- "debug": "^4.3.4",
+ "debug": "^4.3.5",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-import-resolver-typescript": "^3.5.2",
"eslint-plugin-import": "^2.29.1",
- "eslint-plugin-jest": "^28.2.0",
- "eslint-plugin-node": "^11.1.0",
- "eslint-plugin-prefer-arrow-functions": "^3.3.2",
+ "eslint-plugin-import-x": "^0.5.1",
+ "eslint-plugin-jest": "^28.6.0",
+ "eslint-plugin-n": "^17.8.1",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-simple-import-sort": "^12.1.0",
"fast-sort": "^3.2.0",
"jest": "^29.3.1",
+ "jest-junit": "^16.0.0",
"jest-specific-snapshot": "^8.0.0",
- "semver": "^7.6.0",
+ "semver": "^7.6.2",
"simple-git": "^3.24.0",
- "ts-jest": "^29.1.2",
+ "ts-jest": "^29.1.4",
"ts-node": "^10.9.2",
"tsconfig-paths": "^4.1.2",
"typescript": "^5.4.5",
- "yaml": "^2.4.1"
+ "typescript-eslint": "^7.12.0",
+ "yaml": "^2.4.5"
},
"engines": {
"node": ">=16"
@@ -47,18 +50,16 @@
},
"node_modules/@aashutoshrathi/word-wrap": {
"version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
- "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/@ampproject/remapping": {
"version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
- "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@jridgewell/gen-mapping": "^0.1.0",
"@jridgewell/trace-mapping": "^0.3.9"
@@ -69,9 +70,8 @@
},
"node_modules/@babel/code-frame": {
"version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/highlight": "^7.18.6"
},
@@ -81,18 +81,16 @@
},
"node_modules/@babel/compat-data": {
"version": "7.20.10",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz",
- "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
"version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.7.tgz",
- "integrity": "sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.18.6",
@@ -120,24 +118,21 @@
},
"node_modules/@babel/core/node_modules/convert-source-map": {
"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
+ "dev": true,
+ "license": "MIT"
},
"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==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/generator": {
"version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz",
- "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.20.7",
"@jridgewell/gen-mapping": "^0.3.2",
@@ -149,9 +144,8 @@
},
"node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
"version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jridgewell/set-array": "^1.0.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -163,9 +157,8 @@
},
"node_modules/@babel/helper-compilation-targets": {
"version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz",
- "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/compat-data": "^7.20.5",
"@babel/helper-validator-option": "^7.18.6",
@@ -182,27 +175,24 @@
},
"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==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@babel/helper-environment-visitor": {
"version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
- "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-function-name": {
"version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
- "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/template": "^7.18.10",
"@babel/types": "^7.19.0"
@@ -213,9 +203,8 @@
},
"node_modules/@babel/helper-hoist-variables": {
"version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.18.6"
},
@@ -225,9 +214,8 @@
},
"node_modules/@babel/helper-module-imports": {
"version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
- "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.18.6"
},
@@ -237,9 +225,8 @@
},
"node_modules/@babel/helper-module-transforms": {
"version": "7.20.11",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz",
- "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-module-imports": "^7.18.6",
@@ -256,18 +243,16 @@
},
"node_modules/@babel/helper-plugin-utils": {
"version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
- "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-simple-access": {
"version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
- "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.20.2"
},
@@ -277,9 +262,8 @@
},
"node_modules/@babel/helper-split-export-declaration": {
"version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.18.6"
},
@@ -289,36 +273,32 @@
},
"node_modules/@babel/helper-string-parser": {
"version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
- "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
"dev": true,
+ "license": "MIT",
"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==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
"version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
- "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
"version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz",
- "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/template": "^7.20.7",
"@babel/traverse": "^7.20.7",
@@ -330,9 +310,8 @@
},
"node_modules/@babel/highlight": {
"version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-validator-identifier": "^7.18.6",
"chalk": "^2.0.0",
@@ -344,9 +323,8 @@
},
"node_modules/@babel/highlight/node_modules/ansi-styles": {
"version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -356,9 +334,8 @@
},
"node_modules/@babel/highlight/node_modules/chalk": {
"version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -370,33 +347,29 @@
},
"node_modules/@babel/highlight/node_modules/color-convert": {
"version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/@babel/highlight/node_modules/color-name": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@babel/highlight/node_modules/escape-string-regexp": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/@babel/highlight/node_modules/supports-color": {
"version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -406,9 +379,8 @@
},
"node_modules/@babel/parser": {
"version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz",
- "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==",
"dev": true,
+ "license": "MIT",
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -418,9 +390,8 @@
},
"node_modules/@babel/plugin-syntax-async-generators": {
"version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -430,9 +401,8 @@
},
"node_modules/@babel/plugin-syntax-bigint": {
"version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
- "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -442,9 +412,8 @@
},
"node_modules/@babel/plugin-syntax-class-properties": {
"version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.12.13"
},
@@ -454,9 +423,8 @@
},
"node_modules/@babel/plugin-syntax-import-meta": {
"version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
- "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -466,9 +434,8 @@
},
"node_modules/@babel/plugin-syntax-json-strings": {
"version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -478,9 +445,8 @@
},
"node_modules/@babel/plugin-syntax-jsx": {
"version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
- "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6"
},
@@ -493,9 +459,8 @@
},
"node_modules/@babel/plugin-syntax-logical-assignment-operators": {
"version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -505,9 +470,8 @@
},
"node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
"version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -517,9 +481,8 @@
},
"node_modules/@babel/plugin-syntax-numeric-separator": {
"version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -529,9 +492,8 @@
},
"node_modules/@babel/plugin-syntax-object-rest-spread": {
"version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -541,9 +503,8 @@
},
"node_modules/@babel/plugin-syntax-optional-catch-binding": {
"version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -553,9 +514,8 @@
},
"node_modules/@babel/plugin-syntax-optional-chaining": {
"version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -565,9 +525,8 @@
},
"node_modules/@babel/plugin-syntax-top-level-await": {
"version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -580,9 +539,8 @@
},
"node_modules/@babel/plugin-syntax-typescript": {
"version": "7.20.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz",
- "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.19.0"
},
@@ -595,9 +553,8 @@
},
"node_modules/@babel/template": {
"version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
- "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.18.6",
"@babel/parser": "^7.20.7",
@@ -609,9 +566,8 @@
},
"node_modules/@babel/traverse": {
"version": "7.20.10",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.10.tgz",
- "integrity": "sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.18.6",
"@babel/generator": "^7.20.7",
@@ -630,18 +586,16 @@
},
"node_modules/@babel/traverse/node_modules/globals": {
"version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/types": {
"version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz",
- "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-string-parser": "^7.19.4",
"@babel/helper-validator-identifier": "^7.19.1",
@@ -653,15 +607,13 @@
},
"node_modules/@bcoe/v8-coverage": {
"version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@cspotcode/source-map-support": {
"version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
- "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jridgewell/trace-mapping": "0.3.9"
},
@@ -671,9 +623,8 @@
},
"node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
"version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
@@ -681,9 +632,8 @@
},
"node_modules/@eslint-community/eslint-utils": {
"version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"eslint-visitor-keys": "^3.3.0"
},
@@ -696,18 +646,16 @@
},
"node_modules/@eslint-community/regexpp": {
"version": "4.10.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
- "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
"node_modules/@eslint/eslintrc": {
"version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
- "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
@@ -728,18 +676,16 @@
},
"node_modules/@eslint/js": {
"version": "8.57.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
- "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.14",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
- "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@humanwhocodes/object-schema": "^2.0.2",
"debug": "^4.3.1",
@@ -751,9 +697,8 @@
},
"node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=12.22"
},
@@ -764,15 +709,13 @@
},
"node_modules/@humanwhocodes/object-schema": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
- "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/@istanbuljs/load-nyc-config": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"camelcase": "^5.3.1",
"find-up": "^4.1.0",
@@ -786,18 +729,16 @@
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
"version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"sprintf-js": "~1.0.2"
}
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -808,9 +749,8 @@
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
"version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
@@ -821,9 +761,8 @@
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -833,9 +772,8 @@
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
"version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -848,9 +786,8 @@
},
"node_modules/@istanbuljs/load-nyc-config/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,
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -860,27 +797,24 @@
},
"node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@istanbuljs/schema": {
"version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/@jest/console": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
- "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@types/node": "*",
@@ -895,9 +829,8 @@
},
"node_modules/@jest/core": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
- "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/console": "^29.7.0",
"@jest/reporters": "^29.7.0",
@@ -942,9 +875,8 @@
},
"node_modules/@jest/environment": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
- "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/fake-timers": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -957,9 +889,8 @@
},
"node_modules/@jest/expect": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"expect": "^29.7.0",
"jest-snapshot": "^29.7.0"
@@ -970,9 +901,8 @@
},
"node_modules/@jest/expect-utils": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
- "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"jest-get-type": "^29.6.3"
},
@@ -982,9 +912,8 @@
},
"node_modules/@jest/fake-timers": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
- "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@sinonjs/fake-timers": "^10.0.2",
@@ -999,9 +928,8 @@
},
"node_modules/@jest/globals": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
- "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/expect": "^29.7.0",
@@ -1014,9 +942,8 @@
},
"node_modules/@jest/reporters": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
- "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@bcoe/v8-coverage": "^0.2.3",
"@jest/console": "^29.7.0",
@@ -1057,9 +984,8 @@
},
"node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.0.tgz",
- "integrity": "sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@babel/core": "^7.12.3",
"@babel/parser": "^7.14.7",
@@ -1073,9 +999,8 @@
},
"node_modules/@jest/schemas": {
"version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
- "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@sinclair/typebox": "^0.27.8"
},
@@ -1085,9 +1010,8 @@
},
"node_modules/@jest/source-map": {
"version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
- "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.18",
"callsites": "^3.0.0",
@@ -1099,9 +1023,8 @@
},
"node_modules/@jest/test-result": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
- "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/console": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -1114,9 +1037,8 @@
},
"node_modules/@jest/test-sequencer": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
- "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/test-result": "^29.7.0",
"graceful-fs": "^4.2.9",
@@ -1129,9 +1051,8 @@
},
"node_modules/@jest/transform": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
- "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.11.6",
"@jest/types": "^29.6.3",
@@ -1155,9 +1076,8 @@
},
"node_modules/@jest/types": {
"version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
- "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/schemas": "^29.6.3",
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -1172,9 +1092,8 @@
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
- "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jridgewell/set-array": "^1.0.0",
"@jridgewell/sourcemap-codec": "^1.4.10"
@@ -1185,33 +1104,29 @@
},
"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,
+ "license": "MIT",
"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,
+ "license": "MIT",
"engines": {
"node": ">=6.0.0"
}
},
"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
+ "dev": true,
+ "license": "MIT"
},
"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,
+ "license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "3.1.0",
"@jridgewell/sourcemap-codec": "1.4.14"
@@ -1219,24 +1134,21 @@
},
"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,
+ "license": "MIT",
"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
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
@@ -1247,18 +1159,16 @@
},
"node_modules/@nodelib/fs.stat": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 8"
}
},
"node_modules/@nodelib/fs.walk": {
"version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
@@ -1269,9 +1179,8 @@
},
"node_modules/@pkgr/core": {
"version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.0.tgz",
- "integrity": "sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.18.0 || >=16.0.0"
},
@@ -1281,33 +1190,29 @@
},
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
- "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@sinonjs/commons": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz",
- "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"type-detect": "4.0.8"
}
},
"node_modules/@sinonjs/fake-timers": {
"version": "10.3.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
- "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@sinonjs/commons": "^3.0.0"
}
},
"node_modules/@trunkio/launcher": {
"version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@trunkio/launcher/-/launcher-1.3.1.tgz",
- "integrity": "sha512-30gcw/pc+hmzXR8qHM0ND1kYgwnAjze3Xsnw3AUvxO9G4JzKF8u6FDy/6qbYKZxJ6Wr4SE0E0L7ZrAEA8Nia5Q==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"semver": "^7.5.4",
"tar": "^6.2.0",
@@ -1323,33 +1228,28 @@
},
"node_modules/@tsconfig/node10": {
"version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
- "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@tsconfig/node12": {
"version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
- "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@tsconfig/node14": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
- "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@tsconfig/node16": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
- "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/babel__core": {
"version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz",
- "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/parser": "^7.20.7",
"@babel/types": "^7.20.7",
@@ -1360,18 +1260,16 @@
},
"node_modules/@types/babel__generator": {
"version": "7.6.4",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz",
- "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.0.0"
}
},
"node_modules/@types/babel__template": {
"version": "7.4.1",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz",
- "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/parser": "^7.1.0",
"@babel/types": "^7.0.0"
@@ -1379,66 +1277,58 @@
},
"node_modules/@types/babel__traverse": {
"version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz",
- "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.20.7"
}
},
"node_modules/@types/caller": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@types/caller/-/caller-1.0.2.tgz",
- "integrity": "sha512-NRXTeF8nnjSAHFxHKMnqpUWY1gTyAHLMhPTKeeHWTZdPilcFiCvlfvpVB8bOMfHbWYIxiPwZDwrYwMsRFkeh7A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/debug": {
"version": "4.1.12",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
- "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/ms": "*"
}
},
"node_modules/@types/graceful-fs": {
"version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
- "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/istanbul-lib-coverage": {
"version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
- "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/istanbul-lib-report": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/istanbul-lib-coverage": "*"
}
},
"node_modules/@types/istanbul-reports": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
- "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/istanbul-lib-report": "*"
}
},
"node_modules/@types/jest": {
"version": "29.5.12",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz",
- "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"expect": "^29.0.0",
"pretty-format": "^29.0.0"
@@ -1446,35 +1336,26 @@
},
"node_modules/@types/jest-specific-snapshot": {
"version": "0.5.9",
- "resolved": "https://registry.npmjs.org/@types/jest-specific-snapshot/-/jest-specific-snapshot-0.5.9.tgz",
- "integrity": "sha512-NPcItjVhJq3x6MWR6QNi92n5orOkcTvuQ0E8nqK2WZN18a7O93D2dcNL0x+eSNxmNSIbgfgCJ5eUScjACPCWsg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/jest": "*"
}
},
- "node_modules/@types/json-schema": {
- "version": "7.0.15",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "dev": true
- },
"node_modules/@types/json5": {
"version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/ms": {
"version": "0.7.31",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
- "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/node": {
- "version": "20.12.7",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz",
- "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==",
+ "version": "20.14.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz",
+ "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==",
"dev": true,
"dependencies": {
"undici-types": "~5.26.4"
@@ -1488,41 +1369,36 @@
},
"node_modules/@types/stack-utils": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
- "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/yargs": {
"version": "17.0.17",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.17.tgz",
- "integrity": "sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/yargs-parser": "*"
}
},
"node_modules/@types/yargs-parser": {
"version": "21.0.0",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
- "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.0.tgz",
- "integrity": "sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==",
+ "version": "7.12.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.12.0.tgz",
+ "integrity": "sha512-7F91fcbuDf/d3S8o21+r3ZncGIke/+eWk0EpO21LXhDfLahriZF9CGj4fbAetEjlaBdjdSm9a6VeXbpbT6Z40Q==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "7.7.0",
- "@typescript-eslint/type-utils": "7.7.0",
- "@typescript-eslint/utils": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0",
- "debug": "^4.3.4",
+ "@typescript-eslint/scope-manager": "7.12.0",
+ "@typescript-eslint/type-utils": "7.12.0",
+ "@typescript-eslint/utils": "7.12.0",
+ "@typescript-eslint/visitor-keys": "7.12.0",
"graphemer": "^1.4.0",
"ignore": "^5.3.1",
"natural-compare": "^1.4.0",
- "semver": "^7.6.0",
"ts-api-utils": "^1.3.0"
},
"engines": {
@@ -1542,14 +1418,17 @@
}
}
},
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz",
- "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==",
+ "node_modules/@typescript-eslint/parser": {
+ "version": "7.12.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.12.0.tgz",
+ "integrity": "sha512-dm/J2UDY3oV3TKius2OUZIFHsomQmpHtsV0FTh1WO8EKgHLQ1QCADUqscPgTpU+ih1e21FQSRjXckHn3txn6kQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0"
+ "@typescript-eslint/scope-manager": "7.12.0",
+ "@typescript-eslint/types": "7.12.0",
+ "@typescript-eslint/typescript-estree": "7.12.0",
+ "@typescript-eslint/visitor-keys": "7.12.0",
+ "debug": "^4.3.4"
},
"engines": {
"node": "^18.18.0 || >=20.0.0"
@@ -1557,13 +1436,25 @@
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz",
- "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==",
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "7.12.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.12.0.tgz",
+ "integrity": "sha512-itF1pTnN6F3unPak+kutH9raIkL3lhH1YRPGgt7QQOh43DQKVJXmWkpb+vpc/TiDHs6RSd9CTbDsc/Y+Ygq7kg==",
"dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "7.12.0",
+ "@typescript-eslint/visitor-keys": "7.12.0"
+ },
"engines": {
"node": "^18.18.0 || >=20.0.0"
},
@@ -1572,19 +1463,15 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz",
- "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==",
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "7.12.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.12.0.tgz",
+ "integrity": "sha512-lib96tyRtMhLxwauDWUp/uW3FMhLA6D0rJ8T7HmH7x23Gk1Gwwu8UZ94NMXBvOELn6flSPiBrCKlehkiXyaqwA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0",
+ "@typescript-eslint/typescript-estree": "7.12.0",
+ "@typescript-eslint/utils": "7.12.0",
"debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
"ts-api-utils": "^1.3.0"
},
"engines": {
@@ -1594,45 +1481,42 @@
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ },
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz",
- "integrity": "sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==",
+ "node_modules/@typescript-eslint/types": {
+ "version": "7.12.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.12.0.tgz",
+ "integrity": "sha512-o+0Te6eWp2ppKY3mLCU+YA9pVJxhUJE15FV7kxuD9jgwIAa+w/ycGJBMrYDTpVGUM/tgpa9SeMOugSabWFq7bg==",
"dev": true,
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@types/json-schema": "^7.0.15",
- "@types/semver": "^7.5.8",
- "@typescript-eslint/scope-manager": "7.7.0",
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/typescript-estree": "7.7.0",
- "semver": "^7.6.0"
- },
"engines": {
"node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.56.0"
}
},
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz",
- "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==",
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "7.12.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.12.0.tgz",
+ "integrity": "sha512-5bwqLsWBULv1h6pn7cMW5dXX/Y2amRqLaKqsASVwbBHMZSnHqE/HN4vT4fE0aFsiwxYvr98kqOWh1a8ZKXalCQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "7.7.0",
- "eslint-visitor-keys": "^3.4.3"
+ "@typescript-eslint/types": "7.12.0",
+ "@typescript-eslint/visitor-keys": "7.12.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
},
"engines": {
"node": "^18.18.0 || >=20.0.0"
@@ -1640,9 +1524,14 @@
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/brace-expansion": {
+ "node_modules/@typescript-eslint/typescript-estree/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==",
@@ -1651,7 +1540,7 @@
"balanced-match": "^1.0.0"
}
},
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/minimatch": {
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
"version": "9.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
@@ -1666,17 +1555,16 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@typescript-eslint/parser": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz",
- "integrity": "sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==",
+ "node_modules/@typescript-eslint/utils": {
+ "version": "7.12.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.12.0.tgz",
+ "integrity": "sha512-Y6hhwxwDx41HNpjuYswYp6gDbkiZ8Hin9Bf5aJQn1bpTs3afYY4GX+MPYxma8jtoIV2GRwTM/UJm/2uGCVv+DQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "7.7.0",
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/typescript-estree": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0",
- "debug": "^4.3.4"
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@typescript-eslint/scope-manager": "7.12.0",
+ "@typescript-eslint/types": "7.12.0",
+ "@typescript-eslint/typescript-estree": "7.12.0"
},
"engines": {
"node": "^18.18.0 || >=20.0.0"
@@ -1687,21 +1575,16 @@
},
"peerDependencies": {
"eslint": "^8.56.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
}
},
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz",
- "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==",
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "7.12.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.12.0.tgz",
+ "integrity": "sha512-uZk7DevrQLL3vSnfFl5bj4sL75qC9D6EdjemIdbtkuUmIheWpuiiylSY01JxJE7+zGrOWDZrp1WxOuDntvKrHQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0"
+ "@typescript-eslint/types": "7.12.0",
+ "eslint-visitor-keys": "^3.4.3"
},
"engines": {
"node": "^18.18.0 || >=20.0.0"
@@ -1711,1688 +1594,1302 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz",
- "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==",
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/acorn": {
+ "version": "8.10.0",
"dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "8.2.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz",
- "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==",
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
+ "type-fest": "^0.21.3"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": ">=8"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz",
- "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==",
+ "node_modules/ansi-escapes/node_modules/type-fest": {
+ "version": "0.21.3",
"dev": true,
- "dependencies": {
- "@typescript-eslint/types": "7.7.0",
- "eslint-visitor-keys": "^3.4.3"
- },
+ "license": "(MIT OR CC0-1.0)",
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": ">=10"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "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==",
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
"dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/@typescript-eslint/parser/node_modules/minimatch": {
- "version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "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==",
+ "node_modules/anymatch": {
+ "version": "3.1.3",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0"
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">= 8"
}
},
- "node_modules/@typescript-eslint/type-utils": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.0.tgz",
- "integrity": "sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==",
+ "node_modules/arg": {
+ "version": "4.1.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.0",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/typescript-estree": "7.7.0",
- "@typescript-eslint/utils": "7.7.0",
- "debug": "^4.3.4",
- "ts-api-utils": "^1.3.0"
- },
- "engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "call-bind": "^1.0.2",
+ "is-array-buffer": "^3.0.1"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.56.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz",
- "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==",
+ "node_modules/array-includes": {
+ "version": "3.1.7",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "is-string": "^1.0.7"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": ">= 0.4"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz",
- "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==",
+ "node_modules/array-union": {
+ "version": "2.1.0",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": "^18.18.0 || >=20.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">=8"
}
},
- "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz",
- "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==",
+ "node_modules/array.prototype.findlastindex": {
+ "version": "1.2.3",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0",
+ "get-intrinsic": "^1.2.1"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": ">= 0.4"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz",
- "integrity": "sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==",
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.2",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@types/json-schema": "^7.0.15",
- "@types/semver": "^7.5.8",
- "@typescript-eslint/scope-manager": "7.7.0",
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/typescript-estree": "7.7.0",
- "semver": "^7.6.0"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": ">= 0.4"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.56.0"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz",
- "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==",
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.2",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "7.7.0",
- "eslint-visitor-keys": "^3.4.3"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
},
"engines": {
- "node": "^18.18.0 || >=20.0.0"
+ "node": ">= 0.4"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/type-utils/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"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": {
- "version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.1",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "array-buffer-byte-length": "^1.0.0",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "get-intrinsic": "^1.2.1",
+ "is-array-buffer": "^3.0.2",
+ "is-shared-array-buffer": "^1.0.2"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "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==",
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.5",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": ">= 0.4"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "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==",
+ "node_modules/babel-jest": {
+ "version": "29.7.0",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "minimatch": "9.0.3",
- "semver": "^7.5.4",
- "ts-api-utils": "^1.0.1"
+ "@jest/transform": "^29.7.0",
+ "@types/babel__core": "^7.1.14",
+ "babel-plugin-istanbul": "^6.1.1",
+ "babel-preset-jest": "^29.6.3",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "slash": "^3.0.0"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
},
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "peerDependencies": {
+ "@babel/core": "^7.8.0"
}
},
- "node_modules/@typescript-eslint/typescript-estree/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==",
+ "node_modules/babel-plugin-istanbul": {
+ "version": "6.1.1",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "balanced-match": "^1.0.0"
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "node_modules/babel-plugin-jest-hoist": {
+ "version": "29.6.3",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
+ "@types/babel__core": "^7.1.14",
+ "@types/babel__traverse": "^7.0.6"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@typescript-eslint/utils": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
- "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
+ "node_modules/babel-preset-current-node-syntax": {
+ "version": "1.0.1",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@types/json-schema": "^7.0.12",
- "@types/semver": "^7.5.0",
- "@typescript-eslint/scope-manager": "6.21.0",
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/typescript-estree": "6.21.0",
- "semver": "^7.5.4"
- },
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-bigint": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.8.3",
+ "@babel/plugin-syntax-import-meta": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.8.3",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-top-level-await": "^7.8.3"
},
"peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
+ "@babel/core": "^7.0.0"
}
},
- "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==",
+ "node_modules/babel-preset-jest": {
+ "version": "29.6.3",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "6.21.0",
- "eslint-visitor-keys": "^3.4.1"
+ "babel-plugin-jest-hoist": "^29.6.3",
+ "babel-preset-current-node-syntax": "^1.0.0"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "peerDependencies": {
+ "@babel/core": "^7.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==",
- "dev": true
- },
- "node_modules/acorn": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
- "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
"dev": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
+ "license": "MIT"
},
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
"dev": true,
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
}
},
- "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==",
+ "node_modules/braces": {
+ "version": "3.0.2",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
"engines": {
- "node": ">=0.4.0"
+ "node": ">=8"
}
},
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "node_modules/browserslist": {
+ "version": "4.21.4",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
+ "license": "MIT",
"dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "caniuse-lite": "^1.0.30001400",
+ "electron-to-chromium": "^1.4.251",
+ "node-releases": "^2.0.6",
+ "update-browserslist-db": "^1.0.9"
},
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
- "node_modules/ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "node_modules/bs-logger": {
+ "version": "0.2.6",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "type-fest": "^0.21.3"
+ "fast-json-stable-stringify": "2.x"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">= 6"
}
},
- "node_modules/ansi-escapes/node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "node_modules/bser": {
+ "version": "2.1.1",
"dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "node-int64": "^0.4.0"
}
},
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
"dev": true,
- "engines": {
- "node": ">=8"
- }
+ "license": "MIT"
},
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "node_modules/call-bind": {
+ "version": "1.0.2",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "node_modules/caller": {
+ "version": "1.1.0",
"dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
+ "license": "MIT"
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 8"
+ "node": ">=6"
}
},
- "node_modules/arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true
+ "node_modules/camelcase": {
+ "version": "5.3.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001441",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ }
+ ],
+ "license": "CC-BY-4.0"
},
- "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==",
+ "node_modules/chalk": {
+ "version": "4.1.2",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "is-array-buffer": "^3.0.1"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/array-includes": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
- "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
+ "node_modules/char-regex": {
+ "version": "1.0.2",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1",
- "is-string": "^1.0.7"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=10"
}
},
- "node_modules/array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "node_modules/chownr": {
+ "version": "2.0.0",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": ">=8"
+ "node": ">=10"
}
},
- "node_modules/array.prototype.findlastindex": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz",
- "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==",
+ "node_modules/ci-info": {
+ "version": "3.7.0",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0",
- "get-intrinsic": "^1.2.1"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=8"
}
},
- "node_modules/array.prototype.flat": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
- "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "node_modules/cjs-module-lexer": {
+ "version": "1.2.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=12"
}
},
- "node_modules/array.prototype.flatmap": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
- "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+ "node_modules/co": {
+ "version": "4.6.0",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
}
},
- "node_modules/arraybuffer.prototype.slice": {
+ "node_modules/collect-v8-coverage": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz",
- "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "get-intrinsic": "^1.2.1",
- "is-array-buffer": "^3.0.2",
- "is-shared-array-buffer": "^1.0.2"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=7.0.0"
}
},
- "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==",
+ "node_modules/color-name": {
+ "version": "1.1.4",
"dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
+ "license": "MIT"
},
- "node_modules/babel-jest": {
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/create-jest": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
- "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jest/transform": "^29.7.0",
- "@types/babel__core": "^7.1.14",
- "babel-plugin-istanbul": "^6.1.1",
- "babel-preset-jest": "^29.6.3",
+ "@jest/types": "^29.6.3",
"chalk": "^4.0.0",
+ "exit": "^0.1.2",
"graceful-fs": "^4.2.9",
- "slash": "^3.0.0"
+ "jest-config": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "prompts": "^2.0.1"
+ },
+ "bin": {
+ "create-jest": "bin/create-jest.js"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.8.0"
}
},
- "node_modules/babel-plugin-istanbul": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
- "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "node_modules/create-require": {
+ "version": "1.1.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@istanbuljs/load-nyc-config": "^1.0.0",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-instrument": "^5.0.4",
- "test-exclude": "^6.0.0"
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">= 8"
}
},
- "node_modules/babel-plugin-jest-hoist": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
- "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
+ "node_modules/debug": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
+ "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
"dev": true,
"dependencies": {
- "@babel/template": "^7.3.3",
- "@babel/types": "^7.3.3",
- "@types/babel__core": "^7.1.14",
- "@types/babel__traverse": "^7.0.6"
+ "ms": "2.1.2"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
- "node_modules/babel-preset-current-node-syntax": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
- "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
+ "node_modules/dedent": {
+ "version": "1.5.1",
"dev": true,
- "dependencies": {
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-bigint": "^7.8.3",
- "@babel/plugin-syntax-class-properties": "^7.8.3",
- "@babel/plugin-syntax-import-meta": "^7.8.3",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.8.3",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-top-level-await": "^7.8.3"
- },
+ "license": "MIT",
"peerDependencies": {
- "@babel/core": "^7.0.0"
+ "babel-plugin-macros": "^3.1.0"
+ },
+ "peerDependenciesMeta": {
+ "babel-plugin-macros": {
+ "optional": true
+ }
}
},
- "node_modules/babel-preset-jest": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
- "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
+ "node_modules/deep-is": {
+ "version": "0.1.4",
"dev": true,
- "dependencies": {
- "babel-plugin-jest-hoist": "^29.6.3",
- "babel-preset-current-node-syntax": "^1.0.0"
- },
+ "license": "MIT"
+ },
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/define-properties": {
+ "version": "1.2.0",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "node_modules/detect-newline": {
+ "version": "3.1.0",
"dev": true,
- "dependencies": {
- "fill-range": "^7.0.1"
- },
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "node_modules/diff": {
+ "version": "4.0.2",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- }
- ],
- "dependencies": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
- },
- "bin": {
- "browserslist": "cli.js"
- },
+ "license": "BSD-3-Clause",
"engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ "node": ">=0.3.1"
}
},
- "node_modules/bs-logger": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
- "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
+ "node_modules/diff-sequences": {
+ "version": "29.6.3",
"dev": true,
- "dependencies": {
- "fast-json-stable-stringify": "2.x"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 6"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/bser": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
- "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "node-int64": "^0.4.0"
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "dev": true
- },
- "node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "node_modules/doctrine": {
+ "version": "3.0.0",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
+ "esutils": "^2.0.2"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "node_modules/caller": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/caller/-/caller-1.1.0.tgz",
- "integrity": "sha512-n+21IZC3j06YpCWaxmUy5AnVqhmCIM2bQtqQyy00HJlmStRt6kwDX5F9Z97pqwAB+G/tgSz6q/kUBbNyQzIubw==",
- "dev": true
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.284",
"dev": true,
- "engines": {
- "node": ">=6"
- }
+ "license": "ISC"
},
- "node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "node_modules/emittery": {
+ "version": "0.13.1",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/emittery?sponsor=1"
}
},
- "node_modules/caniuse-lite": {
- "version": "1.0.30001441",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz",
- "integrity": "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==",
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- }
- ]
+ "license": "MIT"
},
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/enhanced-resolve": {
+ "version": "5.17.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
+ "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
"dev": true,
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": ">=10.13.0"
}
},
- "node_modules/char-regex": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
- "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
+ "node_modules/error-ex": {
+ "version": "1.3.2",
"dev": true,
- "engines": {
- "node": ">=10"
+ "license": "MIT",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
}
},
- "node_modules/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "node_modules/es-abstract": {
+ "version": "1.22.1",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "arraybuffer.prototype.slice": "^1.0.1",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.2.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.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.10",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.3",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.5.0",
+ "safe-array-concat": "^1.0.0",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.7",
+ "string.prototype.trimend": "^1.0.6",
+ "string.prototype.trimstart": "^1.0.6",
+ "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.10"
+ },
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ci-info": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz",
- "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==",
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.1",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3",
+ "has": "^1.0.3",
+ "has-tostringtag": "^1.0.0"
+ },
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
}
},
- "node_modules/cjs-module-lexer": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
- "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==",
- "dev": true
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has": "^1.0.3"
+ }
},
- "node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "node_modules/es-to-primitive": {
+ "version": "1.2.1",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
},
"engines": {
- "node": ">=12"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "node_modules/escalade": {
+ "version": "3.1.1",
"dev": true,
+ "license": "MIT",
"engines": {
- "iojs": ">= 1.0.0",
- "node": ">= 0.12.0"
+ "node": ">=6"
}
},
- "node_modules/collect-v8-coverage": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
- "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==",
- "dev": true
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
"dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
+ "license": "MIT",
"engines": {
- "node": ">=7.0.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
- },
- "node_modules/convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
- "dev": true
- },
- "node_modules/create-jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
- "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
+ "node_modules/eslint": {
+ "version": "8.57.0",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jest/types": "^29.6.3",
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
"chalk": "^4.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-config": "^29.7.0",
- "jest-util": "^29.7.0",
- "prompts": "^2.0.1"
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
},
"bin": {
- "create-jest": "bin/create-jest.js"
+ "eslint": "bin/eslint.js"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true
- },
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
- "engines": {
- "node": ">= 8"
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "node_modules/eslint-compat-utils": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
+ "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
"dev": true,
"dependencies": {
- "ms": "2.1.2"
+ "semver": "^7.5.4"
},
"engines": {
- "node": ">=6.0"
+ "node": ">=12"
},
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "peerDependencies": {
+ "eslint": ">=6.0.0"
}
},
- "node_modules/dedent": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz",
- "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==",
+ "node_modules/eslint-config-prettier": {
+ "version": "9.1.0",
"dev": true,
- "peerDependencies": {
- "babel-plugin-macros": "^3.1.0"
+ "license": "MIT",
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
},
- "peerDependenciesMeta": {
- "babel-plugin-macros": {
- "optional": true
- }
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
}
},
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
+ }
},
- "node_modules/deepmerge": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
- "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "node_modules/eslint-import-resolver-node/node_modules/debug": {
+ "version": "3.2.7",
"dev": true,
- "engines": {
- "node": ">=0.10.0"
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.1"
}
},
- "node_modules/define-properties": {
- "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==",
+ "node_modules/eslint-import-resolver-typescript": {
+ "version": "3.6.1",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
+ "debug": "^4.3.4",
+ "enhanced-resolve": "^5.12.0",
+ "eslint-module-utils": "^2.7.4",
+ "fast-glob": "^3.3.1",
+ "get-tsconfig": "^4.5.0",
+ "is-core-module": "^2.11.0",
+ "is-glob": "^4.0.3"
},
"engines": {
- "node": ">= 0.4"
+ "node": "^14.18.0 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts"
+ },
+ "peerDependencies": {
+ "eslint": "*",
+ "eslint-plugin-import": "*"
}
},
- "node_modules/detect-newline": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
- "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+ "node_modules/eslint-module-utils": {
+ "version": "2.8.0",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^3.2.7"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
}
},
- "node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "node_modules/eslint-module-utils/node_modules/debug": {
+ "version": "3.2.7",
"dev": true,
- "engines": {
- "node": ">=0.3.1"
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.1"
}
},
- "node_modules/diff-sequences": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
- "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
+ "node_modules/eslint-plugin-es-x": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.6.0.tgz",
+ "integrity": "sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==",
"dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.1.2",
+ "@eslint-community/regexpp": "^4.6.0",
+ "eslint-compat-utils": "^0.5.0"
+ },
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ota-meshi"
+ },
+ "peerDependencies": {
+ "eslint": ">=8"
}
},
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "node_modules/eslint-plugin-import": {
+ "version": "2.29.1",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "path-type": "^4.0.0"
+ "array-includes": "^3.1.7",
+ "array.prototype.findlastindex": "^1.2.3",
+ "array.prototype.flat": "^1.3.2",
+ "array.prototype.flatmap": "^1.3.2",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.9",
+ "eslint-module-utils": "^2.8.0",
+ "hasown": "^2.0.0",
+ "is-core-module": "^2.13.1",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.7",
+ "object.groupby": "^1.0.1",
+ "object.values": "^1.1.7",
+ "semver": "^6.3.1",
+ "tsconfig-paths": "^3.15.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
}
},
- "node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "node_modules/eslint-plugin-import-x": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-0.5.1.tgz",
+ "integrity": "sha512-2JK8bbFOLes+gG6tgdnM8safCxMAj4u2wjX8X1BRFPfnY7Ct2hFYESoIcVwABX/DDcdpQFLGtKmzbNEWJZD9iQ==",
"dev": true,
"dependencies": {
- "esutils": "^2.0.2"
+ "@typescript-eslint/utils": "^7.4.0",
+ "debug": "^4.3.4",
+ "doctrine": "^3.0.0",
+ "eslint-import-resolver-node": "^0.3.9",
+ "get-tsconfig": "^4.7.3",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.3",
+ "semver": "^7.6.0",
+ "tslib": "^2.6.2"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=16"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0 || ^9.0.0-0"
}
},
- "node_modules/electron-to-chromium": {
- "version": "1.4.284",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
- "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
- "dev": true
+ "node_modules/eslint-plugin-import-x/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/emittery": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
- "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
+ "node_modules/eslint-plugin-import-x/node_modules/minimatch": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+ "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://github.com/sindresorhus/emittery?sponsor=1"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "3.2.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
},
- "node_modules/enhanced-resolve": {
- "version": "5.12.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz",
- "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==",
+ "node_modules/eslint-plugin-import/node_modules/doctrine": {
+ "version": "2.1.0",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
+ "esutils": "^2.0.2"
},
"engines": {
- "node": ">=10.13.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "node_modules/eslint-plugin-import/node_modules/json5": {
+ "version": "1.0.2",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/es-abstract": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz",
- "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==",
- "dev": true,
- "dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "arraybuffer.prototype.slice": "^1.0.1",
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "es-set-tostringtag": "^2.0.1",
- "es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.5",
- "get-intrinsic": "^1.2.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.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.10",
- "is-weakref": "^1.0.2",
- "object-inspect": "^1.12.3",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.5.0",
- "safe-array-concat": "^1.0.0",
- "safe-regex-test": "^1.0.0",
- "string.prototype.trim": "^1.2.7",
- "string.prototype.trimend": "^1.0.6",
- "string.prototype.trimstart": "^1.0.6",
- "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.10"
+ "minimist": "^1.2.0"
},
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/semver": {
+ "version": "6.3.1",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/strip-bom": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=4"
}
},
- "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==",
+ "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": {
+ "version": "3.15.0",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "get-intrinsic": "^1.1.3",
- "has": "^1.0.3",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
}
},
- "node_modules/es-shim-unscopables": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
- "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "node_modules/eslint-plugin-jest": {
+ "version": "28.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.6.0.tgz",
+ "integrity": "sha512-YG28E1/MIKwnz+e2H7VwYPzHUYU4aMa19w0yGcwXnnmJH6EfgHahTJ2un3IyraUxNfnz/KUhJAFXNNwWPo12tg==",
"dev": true,
"dependencies": {
- "has": "^1.0.3"
+ "@typescript-eslint/utils": "^6.0.0 || ^7.0.0"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0",
+ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0",
+ "jest": "*"
+ },
+ "peerDependenciesMeta": {
+ "@typescript-eslint/eslint-plugin": {
+ "optional": true
+ },
+ "jest": {
+ "optional": true
+ }
}
},
- "node_modules/es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "node_modules/eslint-plugin-n": {
+ "version": "17.8.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.8.1.tgz",
+ "integrity": "sha512-KdG0h0voZms8UhndNu8DeWx1eM4sY+A4iXtsNo6kOfJLYHNeTGPacGalJ9GcvrbmOL3r/7QOMwVZDSw+1SqsrA==",
"dev": true,
"dependencies": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "enhanced-resolve": "^5.17.0",
+ "eslint-plugin-es-x": "^7.5.0",
+ "get-tsconfig": "^4.7.0",
+ "globals": "^15.0.0",
+ "ignore": "^5.2.4",
+ "minimatch": "^9.0.0",
+ "semver": "^7.5.3"
},
"engines": {
- "node": ">= 0.4"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://opencollective.com/eslint"
+ },
+ "peerDependencies": {
+ "eslint": ">=8.23.0"
}
},
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "node_modules/eslint-plugin-n/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,
- "engines": {
- "node": ">=6"
+ "dependencies": {
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "node_modules/eslint-plugin-n/node_modules/globals": {
+ "version": "15.3.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-15.3.0.tgz",
+ "integrity": "sha512-cCdyVjIUVTtX8ZsPkq1oCsOsLmGIswqnjZYMJJTGaNApj1yHtLSymKhwH51ttirREn75z3p4k051clwg7rvNKA==",
"dev": true,
"engines": {
- "node": ">=10"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint": {
- "version": "8.57.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
- "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
+ "node_modules/eslint-plugin-n/node_modules/minimatch": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+ "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
"dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.57.0",
- "@humanwhocodes/config-array": "^0.11.14",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "@ungap/structured-clone": "^1.2.0",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.2",
- "eslint-visitor-keys": "^3.4.3",
- "espree": "^9.6.1",
- "esquery": "^1.4.2",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.2.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3",
- "strip-ansi": "^6.0.1",
- "text-table": "^0.2.0"
- },
- "bin": {
- "eslint": "bin/eslint.js"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://opencollective.com/eslint"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "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==",
+ "node_modules/eslint-plugin-prettier": {
+ "version": "5.1.3",
"dev": true,
- "bin": {
- "eslint-config-prettier": "bin/cli.js"
+ "license": "MIT",
+ "dependencies": {
+ "prettier-linter-helpers": "^1.0.0",
+ "synckit": "^0.8.6"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint-plugin-prettier"
},
"peerDependencies": {
- "eslint": ">=7.0.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-import-resolver-node": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
- "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+ "node_modules/eslint-plugin-simple-import-sort": {
+ "version": "12.1.0",
"dev": true,
- "dependencies": {
- "debug": "^3.2.7",
- "is-core-module": "^2.13.0",
- "resolve": "^1.22.4"
+ "license": "MIT",
+ "peerDependencies": {
+ "eslint": ">=5.0.0"
}
},
- "node_modules/eslint-import-resolver-node/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
"dev": true,
- "dependencies": {
- "ms": "^2.1.1"
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/eslint-import-resolver-typescript": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz",
- "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==",
+ "node_modules/eslint/node_modules/eslint-scope": {
+ "version": "7.2.2",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "debug": "^4.3.4",
- "enhanced-resolve": "^5.12.0",
- "eslint-module-utils": "^2.7.4",
- "fast-glob": "^3.3.1",
- "get-tsconfig": "^4.5.0",
- "is-core-module": "^2.11.0",
- "is-glob": "^4.0.3"
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
},
"engines": {
- "node": "^14.18.0 || >=16.0.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
- "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts"
- },
- "peerDependencies": {
- "eslint": "*",
- "eslint-plugin-import": "*"
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/eslint-module-utils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
- "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
+ "node_modules/eslint/node_modules/estraverse": {
+ "version": "5.3.0",
"dev": true,
- "dependencies": {
- "debug": "^3.2.7"
- },
+ "license": "BSD-2-Clause",
"engines": {
- "node": ">=4"
- },
- "peerDependenciesMeta": {
- "eslint": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-module-utils/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/eslint-plugin-import": {
- "version": "2.29.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
- "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
- "dev": true,
- "dependencies": {
- "array-includes": "^3.1.7",
- "array.prototype.findlastindex": "^1.2.3",
- "array.prototype.flat": "^1.3.2",
- "array.prototype.flatmap": "^1.3.2",
- "debug": "^3.2.7",
- "doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.9",
- "eslint-module-utils": "^2.8.0",
- "hasown": "^2.0.0",
- "is-core-module": "^2.13.1",
- "is-glob": "^4.0.3",
- "minimatch": "^3.1.2",
- "object.fromentries": "^2.0.7",
- "object.groupby": "^1.0.1",
- "object.values": "^1.1.7",
- "semver": "^6.3.1",
- "tsconfig-paths": "^3.15.0"
- },
- "engines": {
- "node": ">=4"
- },
- "peerDependencies": {
- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/json5": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
- "dev": true,
- "dependencies": {
- "minimist": "^1.2.0"
- },
- "bin": {
- "json5": "lib/cli.js"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": {
- "version": "3.15.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
- "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
- "dev": true,
- "dependencies": {
- "@types/json5": "^0.0.29",
- "json5": "^1.0.2",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
- }
- },
- "node_modules/eslint-plugin-jest": {
- "version": "28.2.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.2.0.tgz",
- "integrity": "sha512-yRDti/a+f+SMSmNTiT9/M/MzXGkitl8CfzUxnpoQcTyfq8gUrXMriVcWU36W1X6BZSUoyUCJrDAWWUA2N4hE5g==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/utils": "^6.0.0"
- },
- "engines": {
- "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
- },
- "peerDependencies": {
- "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0",
- "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0",
- "jest": "*"
- },
- "peerDependenciesMeta": {
- "@typescript-eslint/eslint-plugin": {
- "optional": true
- },
- "jest": {
- "optional": true
- }
- }
- },
- "node_modules/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,
- "dependencies": {
- "eslint-plugin-es": "^3.0.0",
- "eslint-utils": "^2.0.0",
- "ignore": "^5.1.1",
- "minimatch": "^3.0.4",
- "resolve": "^1.10.1",
- "semver": "^6.1.0"
- },
- "engines": {
- "node": ">=8.10.0"
- },
- "peerDependencies": {
- "eslint": ">=5.16.0"
- }
- },
- "node_modules/eslint-plugin-node/node_modules/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,
- "dependencies": {
- "eslint-utils": "^2.0.0",
- "regexpp": "^3.0.0"
- },
- "engines": {
- "node": ">=8.10.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=4.19.1"
- }
- },
- "node_modules/eslint-plugin-node/node_modules/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,
- "dependencies": {
- "eslint-visitor-keys": "^1.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- }
- },
- "node_modules/eslint-plugin-node/node_modules/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,
- "engines": {
- "node": ">=4"
- }
- },
- "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==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/eslint-plugin-prefer-arrow-functions": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow-functions/-/eslint-plugin-prefer-arrow-functions-3.3.2.tgz",
- "integrity": "sha512-XRGsga9cK6pZ48IA2PM2PABBlWshRYhkofkQxcWzCM0YlDnal2hrQKsuz0FqtBHimJpgEXGgHUko3KrOayxlOQ==",
- "dev": true,
- "peerDependencies": {
- "eslint": ">=5.0.0"
- }
- },
- "node_modules/eslint-plugin-prettier": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz",
- "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==",
- "dev": true,
- "dependencies": {
- "prettier-linter-helpers": "^1.0.0",
- "synckit": "^0.8.6"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint-plugin-prettier"
- },
- "peerDependencies": {
- "@types/eslint": ">=8.0.0",
- "eslint": ">=8.0.0",
- "eslint-config-prettier": "*",
- "prettier": ">=3.0.0"
- },
- "peerDependenciesMeta": {
- "@types/eslint": {
- "optional": true
- },
- "eslint-config-prettier": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-plugin-simple-import-sort": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.0.tgz",
- "integrity": "sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==",
- "dev": true,
- "peerDependencies": {
- "eslint": ">=5.0.0"
- }
- },
- "node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint/node_modules/eslint-scope": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
- "dev": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint/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": ">=4.0"
}
},
"node_modules/espree": {
"version": "9.6.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
@@ -3400,6019 +2897,74 @@
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true,
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/esquery": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
- "dev": true,
- "dependencies": {
- "estraverse": "^5.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/esquery/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/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esrecurse/node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/expect": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
- "dev": true,
- "dependencies": {
- "@jest/expect-utils": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
- },
- "node_modules/fast-diff": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
- "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
- "dev": true
- },
- "node_modules/fast-glob": {
- "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",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
- },
- "node_modules/fast-sort": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/fast-sort/-/fast-sort-3.4.0.tgz",
- "integrity": "sha512-c/cMBGA5mH3OYjaXedtLIM3hQjv+KuZuiD2QEH5GofNOZeQVDIYIN7Okc2AW1KPhk44g5PTZnXp8t2lOMl8qhQ==",
- "dev": true
- },
- "node_modules/fastq": {
- "version": "1.14.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz",
- "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==",
- "dev": true,
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fb-watchman": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
- "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
- "dev": true,
- "dependencies": {
- "bser": "2.1.1"
- }
- },
- "node_modules/file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
- "dev": true,
- "dependencies": {
- "flat-cache": "^3.0.4"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
- "dev": true,
- "dependencies": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
- "dev": true
- },
- "node_modules/for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
- "dev": true,
- "dependencies": {
- "is-callable": "^1.1.3"
- }
- },
- "node_modules/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/fs-minipass/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/fs-minipass/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
- },
- "node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/function.prototype.name": {
- "version": "1.1.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,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.0",
- "functions-have-names": "^1.2.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/functions-have-names": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true,
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.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": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-package-type": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
- "dev": true,
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/get-symbol-description": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
- "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-tsconfig": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.5.0.tgz",
- "integrity": "sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==",
- "dev": true,
- "funding": {
- "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
- }
- },
- "node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
- "dev": true,
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/globalthis": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
- "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
- "dev": true,
- "dependencies": {
- "define-properties": "^1.1.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "dev": true,
- "dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "dev": true,
- "dependencies": {
- "get-intrinsic": "^1.1.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
- "dev": true
- },
- "node_modules/graphemer": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
- "dev": true
- },
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/has-bigints": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "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/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,
- "dependencies": {
- "get-intrinsic": "^1.1.1"
- },
- "funding": {
- "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",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/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,
- "dependencies": {
- "has-symbols": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
- "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
- },
- "node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true,
- "engines": {
- "node": ">=10.17.0"
- }
- },
- "node_modules/ignore": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
- "dev": true,
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "dev": true,
- "dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/import-local": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
- "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
- "dev": true,
- "dependencies": {
- "pkg-dir": "^4.2.0",
- "resolve-cwd": "^3.0.0"
- },
- "bin": {
- "import-local-fixture": "fixtures/cli.js"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true,
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "dev": true,
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
- },
- "node_modules/internal-slot": {
- "version": "1.0.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.2.0",
- "has": "^1.0.3",
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "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": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "node_modules/is-bigint": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
- "dev": true,
- "dependencies": {
- "has-bigints": "^1.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-boolean-object": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-callable": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.13.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
- "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
- "dev": true,
- "dependencies": {
- "hasown": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-date-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
- "dev": true,
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-generator-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
- "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-negative-zero": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-number-object": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
- "dev": true,
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-regex": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-shared-array-buffer": {
- "version": "1.0.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,
- "dependencies": {
- "call-bind": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-string": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
- "dev": true,
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-symbol": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
- "dev": true,
- "dependencies": {
- "has-symbols": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-typed-array": {
- "version": "1.1.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-weakref": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "dev": true
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "node_modules/istanbul-lib-coverage": {
- "version": "3.2.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-instrument": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
- "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.12.3",
- "@babel/parser": "^7.14.7",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/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==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/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,
- "dependencies": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^3.0.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-source-maps": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-reports": {
- "version": "3.1.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",
- "istanbul-lib-report": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
- "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
- "dev": true,
- "dependencies": {
- "@jest/core": "^29.7.0",
- "@jest/types": "^29.6.3",
- "import-local": "^3.0.2",
- "jest-cli": "^29.7.0"
- },
- "bin": {
- "jest": "bin/jest.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/jest-changed-files": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
- "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
- "dev": true,
- "dependencies": {
- "execa": "^5.0.0",
- "jest-util": "^29.7.0",
- "p-limit": "^3.1.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-circus": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
- "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
- "dev": true,
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "co": "^4.6.0",
- "dedent": "^1.0.0",
- "is-generator-fn": "^2.0.0",
- "jest-each": "^29.7.0",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "p-limit": "^3.1.0",
- "pretty-format": "^29.7.0",
- "pure-rand": "^6.0.0",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-cli": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
- "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
- "dev": true,
- "dependencies": {
- "@jest/core": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "create-jest": "^29.7.0",
- "exit": "^0.1.2",
- "import-local": "^3.0.2",
- "jest-config": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "yargs": "^17.3.1"
- },
- "bin": {
- "jest": "bin/jest.js"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/jest-config": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
- "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/test-sequencer": "^29.7.0",
- "@jest/types": "^29.6.3",
- "babel-jest": "^29.7.0",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "deepmerge": "^4.2.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-circus": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "micromatch": "^4.0.4",
- "parse-json": "^5.2.0",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@types/node": "*",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
- }
- },
- "node_modules/jest-diff": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
- "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.0.0",
- "diff-sequences": "^29.6.3",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-docblock": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
- "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
- "dev": true,
- "dependencies": {
- "detect-newline": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-each": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
- "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "jest-get-type": "^29.6.3",
- "jest-util": "^29.7.0",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-environment-node": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
- "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
- "dev": true,
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-get-type": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
- "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
- "dev": true,
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-haste-map": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
- "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/graceful-fs": "^4.1.3",
- "@types/node": "*",
- "anymatch": "^3.0.3",
- "fb-watchman": "^2.0.0",
- "graceful-fs": "^4.2.9",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "micromatch": "^4.0.4",
- "walker": "^1.0.8"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "optionalDependencies": {
- "fsevents": "^2.3.2"
- }
- },
- "node_modules/jest-leak-detector": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
- "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
- "dev": true,
- "dependencies": {
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-matcher-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
- "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.0.0",
- "jest-diff": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-message-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
- "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.12.13",
- "@jest/types": "^29.6.3",
- "@types/stack-utils": "^2.0.0",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-mock": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
- "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-util": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-pnp-resolver": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
- "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
- "dev": true,
- "engines": {
- "node": ">=6"
- },
- "peerDependencies": {
- "jest-resolve": "*"
- },
- "peerDependenciesMeta": {
- "jest-resolve": {
- "optional": true
- }
- }
- },
- "node_modules/jest-regex-util": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
- "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
- "dev": true,
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-resolve": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
- "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-pnp-resolver": "^1.2.2",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "resolve": "^1.20.0",
- "resolve.exports": "^2.0.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-resolve-dependencies": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
- "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
- "dev": true,
- "dependencies": {
- "jest-regex-util": "^29.6.3",
- "jest-snapshot": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-runner": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
- "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
- "dev": true,
- "dependencies": {
- "@jest/console": "^29.7.0",
- "@jest/environment": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "emittery": "^0.13.1",
- "graceful-fs": "^4.2.9",
- "jest-docblock": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-leak-detector": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-resolve": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "jest-worker": "^29.7.0",
- "p-limit": "^3.1.0",
- "source-map-support": "0.5.13"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-runtime": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
- "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
- "dev": true,
- "dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/globals": "^29.7.0",
- "@jest/source-map": "^29.6.3",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "cjs-module-lexer": "^1.0.0",
- "collect-v8-coverage": "^1.0.0",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "slash": "^3.0.0",
- "strip-bom": "^4.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-snapshot": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
- "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@babel/generator": "^7.7.2",
- "@babel/plugin-syntax-jsx": "^7.7.2",
- "@babel/plugin-syntax-typescript": "^7.7.2",
- "@babel/types": "^7.3.3",
- "@jest/expect-utils": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "babel-preset-current-node-syntax": "^1.0.0",
- "chalk": "^4.0.0",
- "expect": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-diff": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-matcher-utils": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "natural-compare": "^1.4.0",
- "pretty-format": "^29.7.0",
- "semver": "^7.5.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-specific-snapshot": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/jest-specific-snapshot/-/jest-specific-snapshot-8.0.0.tgz",
- "integrity": "sha512-PjK0cqPbN3ZGU1pdP78YBEFMsS1AsV28hIHg249E0v/bTtGAJqDm7lNDLj0Cs0O26P2sulbXbgEQU9xLm34WmA==",
- "dev": true,
- "dependencies": {
- "jest-snapshot": "^29.0.0"
- },
- "peerDependencies": {
- "jest": ">= 29.0.0"
- }
- },
- "node_modules/jest-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
- "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "graceful-fs": "^4.2.9",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-validate": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
- "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^29.6.3",
- "camelcase": "^6.2.0",
- "chalk": "^4.0.0",
- "jest-get-type": "^29.6.3",
- "leven": "^3.1.0",
- "pretty-format": "^29.7.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-validate/node_modules/camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-watcher": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
- "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
- "dev": true,
- "dependencies": {
- "@jest/test-result": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "emittery": "^0.13.1",
- "jest-util": "^29.7.0",
- "string-length": "^4.0.1"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-worker": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
- "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "jest-util": "^29.7.0",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-worker/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-worker/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true
- },
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/kleur": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
- "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dev": true,
- "dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lodash.memoize": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
- "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
- "dev": true
- },
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true
- },
- "node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "dev": true,
- "dependencies": {
- "yallist": "^3.0.2"
- }
- },
- "node_modules/make-dir": {
- "version": "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,
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/make-dir/node_modules/semver": {
- "version": "6.3.0",
- "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_modules/make-error": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true
- },
- "node_modules/makeerror": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
- "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
- "dev": true,
- "dependencies": {
- "tmpl": "1.0.5"
- }
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dev": true,
- "dependencies": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/minizlib/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minizlib/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "dev": true,
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
- },
- "node_modules/node-int64": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
- "dev": true
- },
- "node_modules/node-releases": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
- "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==",
- "dev": true
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/object-inspect": {
- "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"
- }
- },
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.assign": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
- "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "has-symbols": "^1.0.3",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object.fromentries": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
- "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object.groupby": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz",
- "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1"
- }
- },
- "node_modules/object.values": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
- "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dev": true,
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/optionator": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
- "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
- "dev": true,
- "dependencies": {
- "@aashutoshrathi/word-wrap": "^1.2.3",
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
- "dependencies": {
- "callsites": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "node_modules/path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
- "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-dir/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pkg-dir/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/prettier": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz",
- "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==",
- "dev": true,
- "peer": 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.7.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
- "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
- "dev": true,
- "dependencies": {
- "@jest/schemas": "^29.6.3",
- "ansi-styles": "^5.0.0",
- "react-is": "^18.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/pretty-format/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/prompts": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
- "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
- "dev": true,
- "dependencies": {
- "kleur": "^3.0.3",
- "sisteransi": "^1.0.5"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pure-rand": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz",
- "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/dubzzz"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/fast-check"
- }
- ]
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/react-is": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
- "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
- "dev": true
- },
- "node_modules/regexp.prototype.flags": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz",
- "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "functions-have-names": "^1.2.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/regexpp": {
- "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"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/resolve": {
- "version": "1.22.4",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz",
- "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==",
- "dev": true,
- "dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
- "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
- "dev": true,
- "dependencies": {
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve-cwd/node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/resolve.exports": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
- "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true,
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/safe-array-concat": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz",
- "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.0",
- "has-symbols": "^1.0.3",
- "isarray": "^2.0.5"
- },
- "engines": {
- "node": ">=0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/safe-regex-test": {
- "version": "1.0.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",
- "is-regex": "^1.1.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semver/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semver/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "node_modules/simple-git": {
- "version": "3.24.0",
- "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.24.0.tgz",
- "integrity": "sha512-QqAKee9Twv+3k8IFOFfPB2hnk6as6Y6ACUpwCtQvRYBAes23Wv3SZlHVobAzqcE8gfsisCvPw3HGW3HYM+VYYw==",
- "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/sisteransi": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "dev": true
- },
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-support": {
- "version": "0.5.13",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
- "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
- "dev": true,
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- },
- "node_modules/stack-utils": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
- "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/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/string-length": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
- "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
- "dev": true,
- "dependencies": {
- "char-regex": "^1.0.2",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string.prototype.trim": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz",
- "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==",
- "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.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,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
- },
- "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==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-color/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/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.8",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz",
- "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==",
- "dev": true,
- "dependencies": {
- "@pkgr/core": "^0.1.0",
- "tslib": "^2.6.2"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/unts"
- }
- },
- "node_modules/tapable": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tar": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
- "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
- "dev": true,
- "dependencies": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^5.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/tar/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
- "dev": true,
- "dependencies": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
- },
- "node_modules/tmpl": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
- "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
- "dev": true
- },
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/ts-api-utils": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
- "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
- "dev": true,
- "engines": {
- "node": ">=16"
- },
- "peerDependencies": {
- "typescript": ">=4.2.0"
- }
- },
- "node_modules/ts-jest": {
- "version": "29.1.2",
- "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz",
- "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==",
- "dev": true,
- "dependencies": {
- "bs-logger": "0.x",
- "fast-json-stable-stringify": "2.x",
- "jest-util": "^29.0.0",
- "json5": "^2.2.3",
- "lodash.memoize": "4.x",
- "make-error": "1.x",
- "semver": "^7.5.3",
- "yargs-parser": "^21.0.1"
- },
- "bin": {
- "ts-jest": "cli.js"
- },
- "engines": {
- "node": "^16.10.0 || ^18.0.0 || >=20.0.0"
- },
- "peerDependencies": {
- "@babel/core": ">=7.0.0-beta.0 <8",
- "@jest/types": "^29.0.0",
- "babel-jest": "^29.0.0",
- "jest": "^29.0.0",
- "typescript": ">=4.3 <6"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
- },
- "@jest/types": {
- "optional": true
- },
- "babel-jest": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- }
- }
- },
- "node_modules/ts-node": {
- "version": "10.9.2",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
- "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
- "dev": true,
- "dependencies": {
- "@cspotcode/source-map-support": "^0.8.0",
- "@tsconfig/node10": "^1.0.7",
- "@tsconfig/node12": "^1.0.7",
- "@tsconfig/node14": "^1.0.0",
- "@tsconfig/node16": "^1.0.2",
- "acorn": "^8.4.1",
- "acorn-walk": "^8.1.1",
- "arg": "^4.1.0",
- "create-require": "^1.1.0",
- "diff": "^4.0.1",
- "make-error": "^1.1.1",
- "v8-compile-cache-lib": "^3.0.1",
- "yn": "3.1.1"
- },
- "bin": {
- "ts-node": "dist/bin.js",
- "ts-node-cwd": "dist/bin-cwd.js",
- "ts-node-esm": "dist/bin-esm.js",
- "ts-node-script": "dist/bin-script.js",
- "ts-node-transpile-only": "dist/bin-transpile.js",
- "ts-script": "dist/bin-script-deprecated.js"
- },
- "peerDependencies": {
- "@swc/core": ">=1.2.50",
- "@swc/wasm": ">=1.2.50",
- "@types/node": "*",
- "typescript": ">=2.7"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "@swc/wasm": {
- "optional": true
- }
- }
- },
- "node_modules/tsconfig-paths": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
- "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
- "dev": true,
- "dependencies": {
- "json5": "^2.2.2",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tsconfig-paths/node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
- "dev": true
- },
- "node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/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/typescript": {
- "version": "5.4.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
- "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
- "dev": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/unbox-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
- "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-bigints": "^1.0.2",
- "has-symbols": "^1.0.3",
- "which-boxed-primitive": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/undici-types": {
- "version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "dev": true
- },
- "node_modules/update-browserslist-db": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
- "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- }
- ],
- "dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- },
- "bin": {
- "browserslist-lint": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/v8-compile-cache-lib": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
- "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "dev": true
- },
- "node_modules/v8-to-istanbul": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz",
- "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==",
- "dev": true,
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.12",
- "@types/istanbul-lib-coverage": "^2.0.1",
- "convert-source-map": "^1.6.0"
- },
- "engines": {
- "node": ">=10.12.0"
- }
- },
- "node_modules/v8-to-istanbul/node_modules/convert-source-map": {
- "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/walker": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
- "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
- "dev": true,
- "dependencies": {
- "makeerror": "1.0.12"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/which-boxed-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
- "dev": true,
- "dependencies": {
- "is-bigint": "^1.0.1",
- "is-boolean-object": "^1.1.0",
- "is-number-object": "^1.0.4",
- "is-string": "^1.0.5",
- "is-symbol": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-typed-array": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz",
- "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==",
- "dev": true,
- "dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true
- },
- "node_modules/write-file-atomic": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
- "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
- "dev": true,
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true
- },
- "node_modules/yaml": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz",
- "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==",
- "dev": true,
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/yargs": {
- "version": "17.6.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz",
- "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==",
- "dev": true,
- "dependencies": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/yn": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- }
- },
- "dependencies": {
- "@aashutoshrathi/word-wrap": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
- "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
- "dev": true
- },
- "@ampproject/remapping": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
- "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
- "dev": true,
- "requires": {
- "@jridgewell/gen-mapping": "^0.1.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- },
- "@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.18.6"
- }
- },
- "@babel/compat-data": {
- "version": "7.20.10",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz",
- "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==",
- "dev": true
- },
- "@babel/core": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.7.tgz",
- "integrity": "sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==",
- "dev": true,
- "requires": {
- "@ampproject/remapping": "^2.1.0",
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.20.7",
- "@babel/helper-compilation-targets": "^7.20.7",
- "@babel/helper-module-transforms": "^7.20.7",
- "@babel/helpers": "^7.20.7",
- "@babel/parser": "^7.20.7",
- "@babel/template": "^7.20.7",
- "@babel/traverse": "^7.20.7",
- "@babel/types": "^7.20.7",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.1",
- "semver": "^6.3.0"
- },
- "dependencies": {
- "convert-source-map": {
- "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
- },
- "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.20.7",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz",
- "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.20.7",
- "@jridgewell/gen-mapping": "^0.3.2",
- "jsesc": "^2.5.1"
- },
- "dependencies": {
- "@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
- "dev": true,
- "requires": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- }
- }
- },
- "@babel/helper-compilation-targets": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz",
- "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==",
- "dev": true,
- "requires": {
- "@babel/compat-data": "^7.20.5",
- "@babel/helper-validator-option": "^7.18.6",
- "browserslist": "^4.21.3",
- "lru-cache": "^5.1.1",
- "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-environment-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
- "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
- "dev": true
- },
- "@babel/helper-function-name": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
- "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.18.10",
- "@babel/types": "^7.19.0"
- }
- },
- "@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-module-imports": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
- "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-module-transforms": {
- "version": "7.20.11",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz",
- "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==",
- "dev": true,
- "requires": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-simple-access": "^7.20.2",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/helper-validator-identifier": "^7.19.1",
- "@babel/template": "^7.20.7",
- "@babel/traverse": "^7.20.10",
- "@babel/types": "^7.20.7"
- }
- },
- "@babel/helper-plugin-utils": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
- "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
- "dev": true
- },
- "@babel/helper-simple-access": {
- "version": "7.20.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
- "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.20.2"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-string-parser": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
- "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
- "dev": true
- },
- "@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.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
- "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
- "dev": true
- },
- "@babel/helpers": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz",
- "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.20.7",
- "@babel/traverse": "^7.20.7",
- "@babel/types": "^7.20.7"
- }
- },
- "@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true
- },
- "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.20.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz",
- "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==",
- "dev": true
- },
- "@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-bigint": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
- "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.12.13"
- }
- },
- "@babel/plugin-syntax-import-meta": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
- "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-jsx": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
- "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-syntax-typescript": {
- "version": "7.20.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz",
- "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.19.0"
- }
- },
- "@babel/template": {
- "version": "7.20.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
- "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7"
- }
- },
- "@babel/traverse": {
- "version": "7.20.10",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.10.tgz",
- "integrity": "sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.20.7",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
- "dependencies": {
- "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.20.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz",
- "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==",
- "dev": true,
- "requires": {
- "@babel/helper-string-parser": "^7.19.4",
- "@babel/helper-validator-identifier": "^7.19.1",
- "to-fast-properties": "^2.0.0"
- }
- },
- "@bcoe/v8-coverage": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
- "dev": true
- },
- "@cspotcode/source-map-support": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
- "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
- "dev": true,
- "requires": {
- "@jridgewell/trace-mapping": "0.3.9"
- },
- "dependencies": {
- "@jridgewell/trace-mapping": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
- "dev": true,
- "requires": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- }
- }
- },
- "@eslint-community/eslint-utils": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^3.3.0"
- }
- },
- "@eslint-community/regexpp": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
- "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
- "dev": true
- },
- "@eslint/eslintrc": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
- "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
- "dev": true,
- "requires": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.6.0",
- "globals": "^13.19.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- }
- },
- "@eslint/js": {
- "version": "8.57.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
- "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
- "dev": true
- },
- "@humanwhocodes/config-array": {
- "version": "0.11.14",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
- "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
- "dev": true,
- "requires": {
- "@humanwhocodes/object-schema": "^2.0.2",
- "debug": "^4.3.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==",
- "dev": true
- },
- "@humanwhocodes/object-schema": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
- "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
- "dev": true
- },
- "@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": {
- "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"
- }
- },
- "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"
- }
- },
- "js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
- },
- "locate-path": {
- "version": "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/console": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
- "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
- "dev": true,
- "requires": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "slash": "^3.0.0"
- }
- },
- "@jest/core": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
- "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
- "dev": true,
- "requires": {
- "@jest/console": "^29.7.0",
- "@jest/reporters": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-changed-files": "^29.7.0",
- "jest-config": "^29.7.0",
- "jest-haste-map": "^29.7.0",
- "jest-message-util": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-resolve-dependencies": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-runtime": "^29.7.0",
- "jest-snapshot": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "jest-watcher": "^29.7.0",
- "micromatch": "^4.0.4",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "@jest/environment": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
- "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
- "dev": true,
- "requires": {
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "jest-mock": "^29.7.0"
- }
- },
- "@jest/expect": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
- "dev": true,
- "requires": {
- "expect": "^29.7.0",
- "jest-snapshot": "^29.7.0"
- }
- },
- "@jest/expect-utils": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
- "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
- "dev": true,
- "requires": {
- "jest-get-type": "^29.6.3"
- }
- },
- "@jest/fake-timers": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
- "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
- "dev": true,
- "requires": {
- "@jest/types": "^29.6.3",
- "@sinonjs/fake-timers": "^10.0.2",
- "@types/node": "*",
- "jest-message-util": "^29.7.0",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0"
- }
- },
- "@jest/globals": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
- "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
- "dev": true,
- "requires": {
- "@jest/environment": "^29.7.0",
- "@jest/expect": "^29.7.0",
- "@jest/types": "^29.6.3",
- "jest-mock": "^29.7.0"
- }
- },
- "@jest/reporters": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
- "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
- "dev": true,
- "requires": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^29.7.0",
- "@jest/test-result": "^29.7.0",
- "@jest/transform": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "collect-v8-coverage": "^1.0.0",
- "exit": "^0.1.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-instrument": "^6.0.0",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
- "istanbul-reports": "^3.1.3",
- "jest-message-util": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "slash": "^3.0.0",
- "string-length": "^4.0.1",
- "strip-ansi": "^6.0.0",
- "v8-to-istanbul": "^9.0.1"
- },
- "dependencies": {
- "istanbul-lib-instrument": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.0.tgz",
- "integrity": "sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw==",
- "dev": true,
- "requires": {
- "@babel/core": "^7.12.3",
- "@babel/parser": "^7.14.7",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.2.0",
- "semver": "^7.5.4"
- }
- }
- }
- },
- "@jest/schemas": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
- "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
- "dev": true,
- "requires": {
- "@sinclair/typebox": "^0.27.8"
- }
- },
- "@jest/source-map": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
- "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
- "dev": true,
- "requires": {
- "@jridgewell/trace-mapping": "^0.3.18",
- "callsites": "^3.0.0",
- "graceful-fs": "^4.2.9"
- }
- },
- "@jest/test-result": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
- "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
- "dev": true,
- "requires": {
- "@jest/console": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "collect-v8-coverage": "^1.0.0"
- }
- },
- "@jest/test-sequencer": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
- "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
- "dev": true,
- "requires": {
- "@jest/test-result": "^29.7.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "slash": "^3.0.0"
- }
- },
- "@jest/transform": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
- "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
- "dev": true,
- "requires": {
- "@babel/core": "^7.11.6",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "babel-plugin-istanbul": "^6.1.1",
- "chalk": "^4.0.0",
- "convert-source-map": "^2.0.0",
- "fast-json-stable-stringify": "^2.1.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^29.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "micromatch": "^4.0.4",
- "pirates": "^4.0.4",
- "slash": "^3.0.0",
- "write-file-atomic": "^4.0.2"
- }
- },
- "@jest/types": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
- "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
- "dev": true,
- "requires": {
- "@jest/schemas": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^17.0.8",
- "chalk": "^4.0.0"
- }
- },
- "@jridgewell/gen-mapping": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
- "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
- "dev": true,
- "requires": {
- "@jridgewell/set-array": "^1.0.0",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
- "@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
- },
- "@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
- },
- "@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
- },
- "@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,
- "requires": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
- }
- },
- "@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,
- "requires": {
- "debug": "^4.1.1"
- }
- },
- "@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
- },
- "@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "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==",
- "dev": true
- },
- "@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "requires": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- }
- },
- "@pkgr/core": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.0.tgz",
- "integrity": "sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==",
- "dev": true
- },
- "@sinclair/typebox": {
- "version": "0.27.8",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
- "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
- "dev": true
- },
- "@sinonjs/commons": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz",
- "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==",
- "dev": true,
- "requires": {
- "type-detect": "4.0.8"
- }
- },
- "@sinonjs/fake-timers": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
- "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^3.0.0"
- }
- },
- "@trunkio/launcher": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@trunkio/launcher/-/launcher-1.3.1.tgz",
- "integrity": "sha512-30gcw/pc+hmzXR8qHM0ND1kYgwnAjze3Xsnw3AUvxO9G4JzKF8u6FDy/6qbYKZxJ6Wr4SE0E0L7ZrAEA8Nia5Q==",
- "dev": true,
- "requires": {
- "semver": "^7.5.4",
- "tar": "^6.2.0",
- "yaml": "^2.2.0"
- }
- },
- "@tsconfig/node10": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
- "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
- "dev": true
- },
- "@tsconfig/node12": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
- "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
- "dev": true
- },
- "@tsconfig/node14": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
- "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
- "dev": true
- },
- "@tsconfig/node16": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
- "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
- "dev": true
- },
- "@types/babel__core": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz",
- "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==",
- "dev": true,
- "requires": {
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
- }
- },
- "@types/babel__generator": {
- "version": "7.6.4",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz",
- "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.0.0"
- }
- },
- "@types/babel__template": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz",
- "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==",
- "dev": true,
- "requires": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
- }
- },
- "@types/babel__traverse": {
- "version": "7.20.1",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz",
- "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.20.7"
- }
- },
- "@types/caller": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@types/caller/-/caller-1.0.2.tgz",
- "integrity": "sha512-NRXTeF8nnjSAHFxHKMnqpUWY1gTyAHLMhPTKeeHWTZdPilcFiCvlfvpVB8bOMfHbWYIxiPwZDwrYwMsRFkeh7A==",
- "dev": true
- },
- "@types/debug": {
- "version": "4.1.12",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
- "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
- "dev": true,
- "requires": {
- "@types/ms": "*"
- }
- },
- "@types/graceful-fs": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
- "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/istanbul-lib-coverage": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
- "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
- "dev": true
- },
- "@types/istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
- "dev": true,
- "requires": {
- "@types/istanbul-lib-coverage": "*"
- }
- },
- "@types/istanbul-reports": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
- "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
- "dev": true,
- "requires": {
- "@types/istanbul-lib-report": "*"
- }
- },
- "@types/jest": {
- "version": "29.5.12",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz",
- "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==",
- "dev": true,
- "requires": {
- "expect": "^29.0.0",
- "pretty-format": "^29.0.0"
- }
- },
- "@types/jest-specific-snapshot": {
- "version": "0.5.9",
- "resolved": "https://registry.npmjs.org/@types/jest-specific-snapshot/-/jest-specific-snapshot-0.5.9.tgz",
- "integrity": "sha512-NPcItjVhJq3x6MWR6QNi92n5orOkcTvuQ0E8nqK2WZN18a7O93D2dcNL0x+eSNxmNSIbgfgCJ5eUScjACPCWsg==",
- "dev": true,
- "requires": {
- "@types/jest": "*"
- }
- },
- "@types/json-schema": {
- "version": "7.0.15",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "dev": true
- },
- "@types/json5": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
- "dev": true
- },
- "@types/ms": {
- "version": "0.7.31",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
- "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==",
- "dev": true
- },
- "@types/node": {
- "version": "20.12.7",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz",
- "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==",
- "dev": true,
- "requires": {
- "undici-types": "~5.26.4"
- }
- },
- "@types/semver": {
- "version": "7.5.8",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
- "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
- "dev": true
- },
- "@types/stack-utils": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
- "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
- "dev": true
- },
- "@types/yargs": {
- "version": "17.0.17",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.17.tgz",
- "integrity": "sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==",
- "dev": true,
- "requires": {
- "@types/yargs-parser": "*"
- }
- },
- "@types/yargs-parser": {
- "version": "21.0.0",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
- "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
- "dev": true
- },
- "@typescript-eslint/eslint-plugin": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.0.tgz",
- "integrity": "sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==",
- "dev": true,
- "requires": {
- "@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "7.7.0",
- "@typescript-eslint/type-utils": "7.7.0",
- "@typescript-eslint/utils": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0",
- "debug": "^4.3.4",
- "graphemer": "^1.4.0",
- "ignore": "^5.3.1",
- "natural-compare": "^1.4.0",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
- },
- "dependencies": {
- "@typescript-eslint/scope-manager": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz",
- "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0"
- }
- },
- "@typescript-eslint/types": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz",
- "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==",
- "dev": true
- },
- "@typescript-eslint/typescript-estree": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz",
- "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
- }
- },
- "@typescript-eslint/utils": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz",
- "integrity": "sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==",
- "dev": true,
- "requires": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@types/json-schema": "^7.0.15",
- "@types/semver": "^7.5.8",
- "@typescript-eslint/scope-manager": "7.7.0",
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/typescript-estree": "7.7.0",
- "semver": "^7.6.0"
- }
- },
- "@typescript-eslint/visitor-keys": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz",
- "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "7.7.0",
- "eslint-visitor-keys": "^3.4.3"
- }
- },
- "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"
- }
- },
- "minimatch": {
- "version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "@typescript-eslint/parser": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz",
- "integrity": "sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==",
- "dev": true,
- "requires": {
- "@typescript-eslint/scope-manager": "7.7.0",
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/typescript-estree": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0",
- "debug": "^4.3.4"
- },
- "dependencies": {
- "@typescript-eslint/scope-manager": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz",
- "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0"
- }
- },
- "@typescript-eslint/types": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz",
- "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==",
- "dev": true
- },
- "@typescript-eslint/typescript-estree": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz",
- "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
- }
- },
- "@typescript-eslint/visitor-keys": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz",
- "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "7.7.0",
- "eslint-visitor-keys": "^3.4.3"
- }
- },
- "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"
- }
- },
- "minimatch": {
- "version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "@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,
- "requires": {
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0"
- }
- },
- "@typescript-eslint/type-utils": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.0.tgz",
- "integrity": "sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==",
- "dev": true,
- "requires": {
- "@typescript-eslint/typescript-estree": "7.7.0",
- "@typescript-eslint/utils": "7.7.0",
- "debug": "^4.3.4",
- "ts-api-utils": "^1.3.0"
- },
- "dependencies": {
- "@typescript-eslint/scope-manager": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz",
- "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0"
- }
- },
- "@typescript-eslint/types": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz",
- "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==",
- "dev": true
- },
- "@typescript-eslint/typescript-estree": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz",
- "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/visitor-keys": "7.7.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
- }
- },
- "@typescript-eslint/utils": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz",
- "integrity": "sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==",
- "dev": true,
- "requires": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@types/json-schema": "^7.0.15",
- "@types/semver": "^7.5.8",
- "@typescript-eslint/scope-manager": "7.7.0",
- "@typescript-eslint/types": "7.7.0",
- "@typescript-eslint/typescript-estree": "7.7.0",
- "semver": "^7.6.0"
- }
- },
- "@typescript-eslint/visitor-keys": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz",
- "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==",
- "dev": true,
- "requires": {
- "@typescript-eslint/types": "7.7.0",
- "eslint-visitor-keys": "^3.4.3"
- }
- },
- "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"
- }
- },
- "minimatch": {
- "version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
- "dev": true,
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "@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
- },
- "@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,
- "requires": {
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "minimatch": "9.0.3",
- "semver": "^7.5.4",
- "ts-api-utils": "^1.0.1"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
- "dev": true,
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- }
- }
- },
- "@typescript-eslint/utils": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
- "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
- "dev": true,
- "requires": {
- "@eslint-community/eslint-utils": "^4.4.0",
- "@types/json-schema": "^7.0.12",
- "@types/semver": "^7.5.0",
- "@typescript-eslint/scope-manager": "6.21.0",
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/typescript-estree": "6.21.0",
- "semver": "^7.5.4"
- }
- },
- "@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,
- "requires": {
- "@typescript-eslint/types": "6.21.0",
- "eslint-visitor-keys": "^3.4.1"
- }
- },
- "@ungap/structured-clone": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
- "dev": true
- },
- "acorn": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
- "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
- "dev": true
- },
- "acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
- "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
- },
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "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"
- }
- },
- "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==",
- "dev": true
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- }
- },
- "arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true
- },
- "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
- },
- "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,
- "requires": {
- "call-bind": "^1.0.2",
- "is-array-buffer": "^3.0.1"
- }
- },
- "array-includes": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
- "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1",
- "is-string": "^1.0.7"
- }
- },
- "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.findlastindex": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz",
- "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0",
- "get-intrinsic": "^1.2.1"
- }
- },
- "array.prototype.flat": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
- "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
- }
- },
- "array.prototype.flatmap": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
- "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
- }
- },
- "arraybuffer.prototype.slice": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz",
- "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==",
- "dev": true,
- "requires": {
- "array-buffer-byte-length": "^1.0.0",
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "get-intrinsic": "^1.2.1",
- "is-array-buffer": "^3.0.2",
- "is-shared-array-buffer": "^1.0.2"
- }
- },
- "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
- },
- "babel-jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
- "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
- "dev": true,
- "requires": {
- "@jest/transform": "^29.7.0",
- "@types/babel__core": "^7.1.14",
- "babel-plugin-istanbul": "^6.1.1",
- "babel-preset-jest": "^29.6.3",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "slash": "^3.0.0"
- }
- },
- "babel-plugin-istanbul": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
- "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@istanbuljs/load-nyc-config": "^1.0.0",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-instrument": "^5.0.4",
- "test-exclude": "^6.0.0"
- }
- },
- "babel-plugin-jest-hoist": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
- "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.3.3",
- "@babel/types": "^7.3.3",
- "@types/babel__core": "^7.1.14",
- "@types/babel__traverse": "^7.0.6"
- }
- },
- "babel-preset-current-node-syntax": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
- "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
- "dev": true,
- "requires": {
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-bigint": "^7.8.3",
- "@babel/plugin-syntax-class-properties": "^7.8.3",
- "@babel/plugin-syntax-import-meta": "^7.8.3",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.8.3",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-top-level-await": "^7.8.3"
- }
- },
- "babel-preset-jest": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
- "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
- "dev": true,
- "requires": {
- "babel-plugin-jest-hoist": "^29.6.3",
- "babel-preset-current-node-syntax": "^1.0.0"
- }
- },
- "balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "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"
- }
- },
- "browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
- "dev": true,
- "requires": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
- }
- },
- "bs-logger": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
- "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
- "dev": true,
- "requires": {
- "fast-json-stable-stringify": "2.x"
- }
- },
- "bser": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
- "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
- "dev": true,
- "requires": {
- "node-int64": "^0.4.0"
- }
- },
- "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
- },
- "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"
- }
- },
- "caller": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/caller/-/caller-1.1.0.tgz",
- "integrity": "sha512-n+21IZC3j06YpCWaxmUy5AnVqhmCIM2bQtqQyy00HJlmStRt6kwDX5F9Z97pqwAB+G/tgSz6q/kUBbNyQzIubw==",
- "dev": true
- },
- "callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true
- },
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true
- },
- "caniuse-lite": {
- "version": "1.0.30001441",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz",
- "integrity": "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==",
- "dev": true
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "char-regex": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
- "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
- "dev": true
- },
- "chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "dev": true
- },
- "ci-info": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz",
- "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==",
- "dev": true
- },
- "cjs-module-lexer": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
- "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==",
- "dev": true
- },
- "cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- }
- },
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
- "dev": true
- },
- "collect-v8-coverage": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
- "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==",
- "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==",
- "dev": true,
- "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==",
- "dev": true
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
- },
- "convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
- "dev": true
- },
- "create-jest": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
- "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
- "dev": true,
- "requires": {
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-config": "^29.7.0",
- "jest-util": "^29.7.0",
- "prompts": "^2.0.1"
- }
- },
- "create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true
- },
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "dedent": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz",
- "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==",
- "dev": true,
- "requires": {}
- },
- "deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
- },
- "deepmerge": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
- "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
- "dev": true
- },
- "define-properties": {
- "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,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- },
- "detect-newline": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
- "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
- "dev": true
- },
- "diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true
- },
- "diff-sequences": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
- "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
- "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==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "electron-to-chromium": {
- "version": "1.4.284",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
- "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
- "dev": true
- },
- "emittery": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
- "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
- "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
- },
- "enhanced-resolve": {
- "version": "5.12.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz",
- "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
- }
- },
- "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.22.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz",
- "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==",
- "dev": true,
- "requires": {
- "array-buffer-byte-length": "^1.0.0",
- "arraybuffer.prototype.slice": "^1.0.1",
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "es-set-tostringtag": "^2.0.1",
- "es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.5",
- "get-intrinsic": "^1.2.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.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.10",
- "is-weakref": "^1.0.2",
- "object-inspect": "^1.12.3",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.5.0",
- "safe-array-concat": "^1.0.0",
- "safe-regex-test": "^1.0.0",
- "string.prototype.trim": "^1.2.7",
- "string.prototype.trimend": "^1.0.6",
- "string.prototype.trimstart": "^1.0.6",
- "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.10"
- }
- },
- "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,
- "requires": {
- "get-intrinsic": "^1.1.3",
- "has": "^1.0.3",
- "has-tostringtag": "^1.0.0"
- }
- },
- "es-shim-unscopables": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
- "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dev": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "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==",
- "dev": true
- },
- "eslint": {
- "version": "8.57.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
- "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
- "dev": true,
- "requires": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.57.0",
- "@humanwhocodes/config-array": "^0.11.14",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "@ungap/structured-clone": "^1.2.0",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.2",
- "eslint-visitor-keys": "^3.4.3",
- "espree": "^9.6.1",
- "esquery": "^1.4.2",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.2.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3",
- "strip-ansi": "^6.0.1",
- "text-table": "^0.2.0"
- },
- "dependencies": {
- "eslint-scope": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
- "dev": true,
- "requires": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- }
- },
- "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-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,
- "requires": {}
- },
- "eslint-import-resolver-node": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
- "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
- "dev": true,
- "requires": {
- "debug": "^3.2.7",
- "is-core-module": "^2.13.0",
- "resolve": "^1.22.4"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- }
- }
- },
- "eslint-import-resolver-typescript": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz",
- "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==",
- "dev": true,
- "requires": {
- "debug": "^4.3.4",
- "enhanced-resolve": "^5.12.0",
- "eslint-module-utils": "^2.7.4",
- "fast-glob": "^3.3.1",
- "get-tsconfig": "^4.5.0",
- "is-core-module": "^2.11.0",
- "is-glob": "^4.0.3"
- }
- },
- "eslint-module-utils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
- "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
- "dev": true,
- "requires": {
- "debug": "^3.2.7"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- }
- }
- },
- "eslint-plugin-import": {
- "version": "2.29.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
- "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
- "dev": true,
- "requires": {
- "array-includes": "^3.1.7",
- "array.prototype.findlastindex": "^1.2.3",
- "array.prototype.flat": "^1.3.2",
- "array.prototype.flatmap": "^1.3.2",
- "debug": "^3.2.7",
- "doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.9",
- "eslint-module-utils": "^2.8.0",
- "hasown": "^2.0.0",
- "is-core-module": "^2.13.1",
- "is-glob": "^4.0.3",
- "minimatch": "^3.1.2",
- "object.fromentries": "^2.0.7",
- "object.groupby": "^1.0.1",
- "object.values": "^1.1.7",
- "semver": "^6.3.1",
- "tsconfig-paths": "^3.15.0"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "json5": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.0"
- }
- },
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "dev": true
- },
- "tsconfig-paths": {
- "version": "3.15.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
- "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
- "dev": true,
- "requires": {
- "@types/json5": "^0.0.29",
- "json5": "^1.0.2",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
- }
- }
- }
- },
- "eslint-plugin-jest": {
- "version": "28.2.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.2.0.tgz",
- "integrity": "sha512-yRDti/a+f+SMSmNTiT9/M/MzXGkitl8CfzUxnpoQcTyfq8gUrXMriVcWU36W1X6BZSUoyUCJrDAWWUA2N4hE5g==",
- "dev": true,
- "requires": {
- "@typescript-eslint/utils": "^6.0.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-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"
- }
- },
- "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-prefer-arrow-functions": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow-functions/-/eslint-plugin-prefer-arrow-functions-3.3.2.tgz",
- "integrity": "sha512-XRGsga9cK6pZ48IA2PM2PABBlWshRYhkofkQxcWzCM0YlDnal2hrQKsuz0FqtBHimJpgEXGgHUko3KrOayxlOQ==",
- "dev": true,
- "requires": {}
- },
- "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,
- "requires": {
- "prettier-linter-helpers": "^1.0.0",
- "synckit": "^0.8.6"
- }
- },
- "eslint-plugin-simple-import-sort": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.0.tgz",
- "integrity": "sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==",
- "dev": true,
- "requires": {}
- },
- "eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true
- },
- "espree": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
- "dev": true,
- "requires": {
- "acorn": "^8.9.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "esprima": {
+ "node_modules/esprima": {
"version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
},
- "esquery": {
+ "node_modules/esquery": {
"version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
"dev": true,
- "requires": {
+ "license": "BSD-3-Clause",
+ "dependencies": {
"estraverse": "^5.1.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
- }
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esquery/node_modules/estraverse": {
+ "version": "5.3.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
}
},
- "esrecurse": {
+ "node_modules/esrecurse": {
"version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
- "requires": {
+ "license": "BSD-2-Clause",
+ "dependencies": {
"estraverse": "^5.2.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
- }
+ "engines": {
+ "node": ">=4.0"
}
},
- "esutils": {
+ "node_modules/esrecurse/node_modules/estraverse": {
+ "version": "5.3.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "execa": {
+ "node_modules/execa": {
"version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^6.0.0",
"human-signals": "^2.1.0",
@@ -9422,749 +2974,946 @@
"onetime": "^5.1.2",
"signal-exit": "^3.0.3",
"strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
- "exit": {
+ "node_modules/exit": {
"version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
},
- "expect": {
+ "node_modules/expect": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
- "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@jest/expect-utils": "^29.7.0",
"jest-get-type": "^29.6.3",
"jest-matcher-utils": "^29.7.0",
"jest-message-util": "^29.7.0",
"jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "fast-deep-equal": {
+ "node_modules/fast-deep-equal": {
"version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "fast-diff": {
+ "node_modules/fast-diff": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
- "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
- "dev": true
+ "dev": true,
+ "license": "Apache-2.0"
},
- "fast-glob": {
+ "node_modules/fast-glob": {
"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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
"glob-parent": "^5.1.2",
"merge2": "^1.3.0",
"micromatch": "^4.0.4"
},
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "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"
- }
- }
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
- "fast-json-stable-stringify": {
+ "node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "fast-levenshtein": {
+ "node_modules/fast-levenshtein": {
"version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "fast-sort": {
+ "node_modules/fast-sort": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/fast-sort/-/fast-sort-3.4.0.tgz",
- "integrity": "sha512-c/cMBGA5mH3OYjaXedtLIM3hQjv+KuZuiD2QEH5GofNOZeQVDIYIN7Okc2AW1KPhk44g5PTZnXp8t2lOMl8qhQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "fastq": {
+ "node_modules/fastq": {
"version": "1.14.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz",
- "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==",
"dev": true,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"reusify": "^1.0.4"
}
},
- "fb-watchman": {
+ "node_modules/fb-watchman": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
- "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
"dev": true,
- "requires": {
+ "license": "Apache-2.0",
+ "dependencies": {
"bser": "2.1.1"
}
},
- "file-entry-cache": {
+ "node_modules/file-entry-cache": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
}
},
- "fill-range": {
+ "node_modules/fill-range": {
"version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "find-up": {
+ "node_modules/find-up": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "flat-cache": {
+ "node_modules/flat-cache": {
"version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"flatted": "^3.1.0",
"rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
}
},
- "flatted": {
+ "node_modules/flatted": {
"version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
- "for-each": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"is-callable": "^1.1.3"
}
},
- "fs-minipass": {
+ "node_modules/fs-minipass": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
"dev": true,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"minipass": "^3.0.0"
},
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/fs-minipass/node_modules/minipass": {
+ "version": "3.3.6",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- }
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
+ "node_modules/fs-minipass/node_modules/yallist": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "ISC"
},
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
"dev": true,
- "optional": true
+ "license": "ISC"
},
- "function-bind": {
+ "node_modules/function-bind": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "function.prototype.name": {
+ "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==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
"es-abstract": "^1.19.0",
"functions-have-names": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "functions-have-names": {
+ "node_modules/functions-have-names": {
"version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "gensync": {
+ "node_modules/gensync": {
"version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
},
- "get-caller-file": {
+ "node_modules/get-caller-file": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
},
- "get-intrinsic": {
+ "node_modules/get-intrinsic": {
"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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "get-package-type": {
+ "node_modules/get-package-type": {
"version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
},
- "get-stream": {
+ "node_modules/get-stream": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "get-symbol-description": {
+ "node_modules/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": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"get-intrinsic": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "get-tsconfig": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.5.0.tgz",
- "integrity": "sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==",
- "dev": true
+ "node_modules/get-tsconfig": {
+ "version": "4.7.5",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz",
+ "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==",
+ "dev": true,
+ "dependencies": {
+ "resolve-pkg-maps": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ }
},
- "glob": {
+ "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,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "glob-parent": {
+ "node_modules/glob-parent": {
"version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"dev": true,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
}
},
- "globals": {
+ "node_modules/globals": {
"version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "globalthis": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "globby": {
+ "node_modules/globby": {
"version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
"fast-glob": "^3.2.9",
"ignore": "^5.2.0",
"merge2": "^1.4.1",
"slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "gopd": {
+ "node_modules/gopd": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "graceful-fs": {
+ "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
+ "dev": true,
+ "license": "ISC"
},
- "graphemer": {
+ "node_modules/graphemer": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "has": {
+ "node_modules/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": {
+ "license": "MIT",
+ "dependencies": {
"function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
}
},
- "has-bigints": {
+ "node_modules/has-bigints": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "has-flag": {
+ "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
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
},
- "has-property-descriptors": {
+ "node_modules/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": {
+ "license": "MIT",
+ "dependencies": {
"get-intrinsic": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "has-proto": {
+ "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
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "has-symbols": {
+ "node_modules/has-symbols": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "has-tostringtag": {
+ "node_modules/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": {
+ "license": "MIT",
+ "dependencies": {
"has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "hasown": {
+ "node_modules/hasown": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
- "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
- "html-escaper": {
+ "node_modules/html-escaper": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "human-signals": {
+ "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
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.17.0"
+ }
},
- "ignore": {
+ "node_modules/ignore": {
"version": "5.3.1",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
},
- "import-fresh": {
+ "node_modules/import-fresh": {
"version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "import-local": {
+ "node_modules/import-local": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
- "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"pkg-dir": "^4.2.0",
"resolve-cwd": "^3.0.0"
+ },
+ "bin": {
+ "import-local-fixture": "fixtures/cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "imurmurhash": {
+ "node_modules/imurmurhash": {
"version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.19"
+ }
},
- "inflight": {
+ "node_modules/inflight": {
"version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"once": "^1.3.0",
"wrappy": "1"
}
},
- "inherits": {
+ "node_modules/inherits": {
"version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
- "internal-slot": {
+ "node_modules/internal-slot": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
- "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"get-intrinsic": "^1.2.0",
"has": "^1.0.3",
"side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
- "is-array-buffer": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"get-intrinsic": "^1.2.0",
"is-typed-array": "^1.1.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "is-arrayish": {
+ "node_modules/is-arrayish": {
"version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "is-bigint": {
+ "node_modules/is-bigint": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"has-bigints": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "is-boolean-object": {
+ "node_modules/is-boolean-object": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "is-callable": {
+ "node_modules/is-callable": {
"version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "is-core-module": {
+ "node_modules/is-core-module": {
"version": "2.13.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
- "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "is-date-object": {
+ "node_modules/is-date-object": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "is-extglob": {
+ "node_modules/is-extglob": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "is-fullwidth-code-point": {
+ "node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
},
- "is-generator-fn": {
+ "node_modules/is-generator-fn": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
- "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "is-glob": {
+ "node_modules/is-glob": {
"version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "is-negative-zero": {
+ "node_modules/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
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "is-number": {
+ "node_modules/is-number": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
},
- "is-number-object": {
+ "node_modules/is-number-object": {
"version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "is-path-inside": {
+ "node_modules/is-path-inside": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
},
- "is-regex": {
+ "node_modules/is-regex": {
"version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "is-shared-array-buffer": {
+ "node_modules/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": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "is-stream": {
+ "node_modules/is-stream": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "is-string": {
+ "node_modules/is-string": {
"version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "is-symbol": {
+ "node_modules/is-symbol": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "is-typed-array": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"which-typed-array": "^1.1.11"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "is-weakref": {
+ "node_modules/is-weakref": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "isarray": {
+ "node_modules/isarray": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "isexe": {
+ "node_modules/isexe": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
- "istanbul-lib-coverage": {
+ "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
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=8"
+ }
},
- "istanbul-lib-instrument": {
+ "node_modules/istanbul-lib-instrument": {
"version": "5.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
- "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
"dev": true,
- "requires": {
+ "license": "BSD-3-Clause",
+ "dependencies": {
"@babel/core": "^7.12.3",
"@babel/parser": "^7.14.7",
"@istanbuljs/schema": "^0.1.2",
"istanbul-lib-coverage": "^3.2.0",
"semver": "^6.3.0"
},
- "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
- }
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-instrument/node_modules/semver": {
+ "version": "6.3.0",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
}
},
- "istanbul-lib-report": {
+ "node_modules/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": {
+ "license": "BSD-3-Clause",
+ "dependencies": {
"istanbul-lib-coverage": "^3.0.0",
"make-dir": "^3.0.0",
"supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "istanbul-lib-source-maps": {
+ "node_modules/istanbul-lib-source-maps": {
"version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
"dev": true,
- "requires": {
+ "license": "BSD-3-Clause",
+ "dependencies": {
"debug": "^4.1.1",
"istanbul-lib-coverage": "^3.0.0",
"source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "istanbul-reports": {
+ "node_modules/istanbul-reports": {
"version": "3.1.5",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
- "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
"dev": true,
- "requires": {
+ "license": "BSD-3-Clause",
+ "dependencies": {
"html-escaper": "^2.0.0",
"istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "jest": {
+ "node_modules/jest": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
- "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@jest/core": "^29.7.0",
"@jest/types": "^29.6.3",
"import-local": "^3.0.2",
"jest-cli": "^29.7.0"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
}
},
- "jest-changed-files": {
+ "node_modules/jest-changed-files": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
- "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"execa": "^5.0.0",
"jest-util": "^29.7.0",
"p-limit": "^3.1.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-circus": {
+ "node_modules/jest-circus": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
- "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@jest/environment": "^29.7.0",
"@jest/expect": "^29.7.0",
"@jest/test-result": "^29.7.0",
@@ -10185,14 +3934,16 @@
"pure-rand": "^6.0.0",
"slash": "^3.0.0",
"stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-cli": {
+ "node_modules/jest-cli": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
- "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@jest/core": "^29.7.0",
"@jest/test-result": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -10204,14 +3955,27 @@
"jest-util": "^29.7.0",
"jest-validate": "^29.7.0",
"yargs": "^17.3.1"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
}
},
- "jest-config": {
+ "node_modules/jest-config": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
- "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@babel/core": "^7.11.6",
"@jest/test-sequencer": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -10234,110 +3998,156 @@
"pretty-format": "^29.7.0",
"slash": "^3.0.0",
"strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@types/node": "*",
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "ts-node": {
+ "optional": true
+ }
}
},
- "jest-diff": {
+ "node_modules/jest-diff": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
- "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"chalk": "^4.0.0",
"diff-sequences": "^29.6.3",
"jest-get-type": "^29.6.3",
"pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-docblock": {
+ "node_modules/jest-docblock": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
- "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"detect-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-each": {
+ "node_modules/jest-each": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
- "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@jest/types": "^29.6.3",
"chalk": "^4.0.0",
"jest-get-type": "^29.6.3",
"jest-util": "^29.7.0",
"pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-environment-node": {
+ "node_modules/jest-environment-node": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
- "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@jest/environment": "^29.7.0",
"@jest/fake-timers": "^29.7.0",
"@jest/types": "^29.6.3",
"@types/node": "*",
"jest-mock": "^29.7.0",
"jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-get-type": {
+ "node_modules/jest-get-type": {
"version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
- "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
},
- "jest-haste-map": {
+ "node_modules/jest-haste-map": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
- "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@jest/types": "^29.6.3",
"@types/graceful-fs": "^4.1.3",
"@types/node": "*",
"anymatch": "^3.0.3",
"fb-watchman": "^2.0.0",
- "fsevents": "^2.3.2",
"graceful-fs": "^4.2.9",
"jest-regex-util": "^29.6.3",
"jest-util": "^29.7.0",
"jest-worker": "^29.7.0",
"micromatch": "^4.0.4",
"walker": "^1.0.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/jest-junit": {
+ "version": "16.0.0",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "mkdirp": "^1.0.4",
+ "strip-ansi": "^6.0.1",
+ "uuid": "^8.3.2",
+ "xml": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10.12.0"
}
},
- "jest-leak-detector": {
+ "node_modules/jest-leak-detector": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
- "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"jest-get-type": "^29.6.3",
"pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-matcher-utils": {
+ "node_modules/jest-matcher-utils": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
- "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"chalk": "^4.0.0",
"jest-diff": "^29.7.0",
"jest-get-type": "^29.6.3",
"pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-message-util": {
+ "node_modules/jest-message-util": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
- "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@babel/code-frame": "^7.12.13",
"@jest/types": "^29.6.3",
"@types/stack-utils": "^2.0.0",
@@ -10347,38 +4157,53 @@
"pretty-format": "^29.7.0",
"slash": "^3.0.0",
"stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-mock": {
+ "node_modules/jest-mock": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
- "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@jest/types": "^29.6.3",
"@types/node": "*",
"jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-pnp-resolver": {
+ "node_modules/jest-pnp-resolver": {
"version": "1.2.3",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
- "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
"dev": true,
- "requires": {}
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "jest-resolve": "*"
+ },
+ "peerDependenciesMeta": {
+ "jest-resolve": {
+ "optional": true
+ }
+ }
},
- "jest-regex-util": {
+ "node_modules/jest-regex-util": {
"version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
- "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
},
- "jest-resolve": {
+ "node_modules/jest-resolve": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
- "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
"jest-haste-map": "^29.7.0",
@@ -10388,24 +4213,28 @@
"resolve": "^1.20.0",
"resolve.exports": "^2.0.0",
"slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-resolve-dependencies": {
+ "node_modules/jest-resolve-dependencies": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
- "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"jest-regex-util": "^29.6.3",
"jest-snapshot": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-runner": {
+ "node_modules/jest-runner": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
- "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@jest/console": "^29.7.0",
"@jest/environment": "^29.7.0",
"@jest/test-result": "^29.7.0",
@@ -10427,14 +4256,16 @@
"jest-worker": "^29.7.0",
"p-limit": "^3.1.0",
"source-map-support": "0.5.13"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-runtime": {
+ "node_modules/jest-runtime": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
- "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@jest/environment": "^29.7.0",
"@jest/fake-timers": "^29.7.0",
"@jest/globals": "^29.7.0",
@@ -10457,14 +4288,16 @@
"jest-util": "^29.7.0",
"slash": "^3.0.0",
"strip-bom": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-snapshot": {
+ "node_modules/jest-snapshot": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
- "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@babel/core": "^7.11.6",
"@babel/generator": "^7.7.2",
"@babel/plugin-syntax-jsx": "^7.7.2",
@@ -10485,37 +4318,43 @@
"natural-compare": "^1.4.0",
"pretty-format": "^29.7.0",
"semver": "^7.5.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-specific-snapshot": {
+ "node_modules/jest-specific-snapshot": {
"version": "8.0.0",
- "resolved": "https://registry.npmjs.org/jest-specific-snapshot/-/jest-specific-snapshot-8.0.0.tgz",
- "integrity": "sha512-PjK0cqPbN3ZGU1pdP78YBEFMsS1AsV28hIHg249E0v/bTtGAJqDm7lNDLj0Cs0O26P2sulbXbgEQU9xLm34WmA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"jest-snapshot": "^29.0.0"
+ },
+ "peerDependencies": {
+ "jest": ">= 29.0.0"
}
},
- "jest-util": {
+ "node_modules/jest-util": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
- "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@jest/types": "^29.6.3",
"@types/node": "*",
"chalk": "^4.0.0",
"ci-info": "^3.2.0",
"graceful-fs": "^4.2.9",
"picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-validate": {
+ "node_modules/jest-validate": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
- "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@jest/types": "^29.6.3",
"camelcase": "^6.2.0",
"chalk": "^4.0.0",
@@ -10523,21 +4362,26 @@
"leven": "^3.1.0",
"pretty-format": "^29.7.0"
},
- "dependencies": {
- "camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true
- }
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-validate/node_modules/camelcase": {
+ "version": "6.3.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "jest-watcher": {
+ "node_modules/jest-watcher": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
- "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@jest/test-result": "^29.7.0",
"@jest/types": "^29.6.3",
"@types/node": "*",
@@ -10546,955 +4390,1191 @@
"emittery": "^0.13.1",
"jest-util": "^29.7.0",
"string-length": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "jest-worker": {
+ "node_modules/jest-worker": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
- "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@types/node": "*",
"jest-util": "^29.7.0",
"merge-stream": "^2.0.0",
"supports-color": "^8.0.0"
},
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "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"
- }
- }
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-worker/node_modules/has-flag": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-worker/node_modules/supports-color": {
+ "version": "8.1.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
- "js-tokens": {
+ "node_modules/js-tokens": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "js-yaml": {
+ "node_modules/js-yaml": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "jsesc": {
+ "node_modules/jsesc": {
"version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
},
- "json-parse-even-better-errors": {
+ "node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "json-schema-traverse": {
+ "node_modules/json-schema-traverse": {
"version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "json-stable-stringify-without-jsonify": {
+ "node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "json5": {
+ "node_modules/json5": {
"version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
},
- "kleur": {
+ "node_modules/kleur": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
- "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "leven": {
+ "node_modules/leven": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "levn": {
+ "node_modules/levn": {
"version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"prelude-ls": "^1.2.1",
"type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "lines-and-columns": {
+ "node_modules/lines-and-columns": {
"version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "locate-path": {
+ "node_modules/locate-path": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "lodash.memoize": {
+ "node_modules/lodash.memoize": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
- "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "lodash.merge": {
+ "node_modules/lodash.merge": {
"version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "lru-cache": {
+ "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,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"yallist": "^3.0.2"
}
},
- "make-dir": {
+ "node_modules/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": {
+ "license": "MIT",
+ "dependencies": {
"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
- }
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "6.3.0",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
}
},
- "make-error": {
+ "node_modules/make-error": {
"version": "1.3.6",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
- "makeerror": {
+ "node_modules/makeerror": {
"version": "1.0.12",
- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
- "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
"dev": true,
- "requires": {
+ "license": "BSD-3-Clause",
+ "dependencies": {
"tmpl": "1.0.5"
}
},
- "merge-stream": {
+ "node_modules/merge-stream": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "merge2": {
+ "node_modules/merge2": {
"version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
},
- "micromatch": {
+ "node_modules/micromatch": {
"version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"braces": "^3.0.2",
"picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
}
},
- "mimic-fn": {
+ "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
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "minimatch": {
+ "node_modules/minimatch": {
"version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
}
},
- "minimist": {
+ "node_modules/minimist": {
"version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "minipass": {
+ "node_modules/minipass": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=8"
+ }
},
- "minizlib": {
+ "node_modules/minizlib": {
"version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"minipass": "^3.0.0",
"yallist": "^4.0.0"
},
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/minizlib/node_modules/minipass": {
+ "version": "3.3.6",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- }
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "mkdirp": {
+ "node_modules/minizlib/node_modules/yallist": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/mkdirp": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
},
- "ms": {
+ "node_modules/ms": {
"version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "natural-compare": {
+ "node_modules/natural-compare": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "node-int64": {
+ "node_modules/node-int64": {
"version": "0.4.0",
- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "node-releases": {
+ "node_modules/node-releases": {
"version": "2.0.8",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
- "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "normalize-path": {
+ "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
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "npm-run-path": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "object-inspect": {
+ "node_modules/object-inspect": {
"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
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "object-keys": {
+ "node_modules/object-keys": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
},
- "object.assign": {
+ "node_modules/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": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
"has-symbols": "^1.0.3",
"object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "object.fromentries": {
+ "node_modules/object.fromentries": {
"version": "2.0.7",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
- "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.2.0",
"es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "object.groupby": {
+ "node_modules/object.groupby": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz",
- "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.2.0",
"es-abstract": "^1.22.1",
"get-intrinsic": "^1.2.1"
}
},
- "object.values": {
+ "node_modules/object.values": {
"version": "1.1.7",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
- "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.2.0",
"es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "once": {
+ "node_modules/once": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"wrappy": "1"
}
},
- "onetime": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "optionator": {
+ "node_modules/optionator": {
"version": "0.9.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
- "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@aashutoshrathi/word-wrap": "^1.2.3",
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
"type-check": "^0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "p-limit": {
+ "node_modules/p-limit": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "p-locate": {
+ "node_modules/p-locate": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "p-try": {
+ "node_modules/p-try": {
"version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "parent-module": {
+ "node_modules/parent-module": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "parse-json": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "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"
}
},
- "path-exists": {
+ "node_modules/path-exists": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
},
- "path-is-absolute": {
+ "node_modules/path-is-absolute": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "path-key": {
+ "node_modules/path-key": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
},
- "path-parse": {
+ "node_modules/path-parse": {
"version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "path-type": {
+ "node_modules/path-type": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
},
- "picocolors": {
+ "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
+ "dev": true,
+ "license": "ISC"
},
- "picomatch": {
+ "node_modules/picomatch": {
"version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
},
- "pirates": {
+ "node_modules/pirates": {
"version": "4.0.5",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
- "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
},
- "pkg-dir": {
+ "node_modules/pkg-dir": {
"version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"find-up": "^4.0.0"
},
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/find-up": {
+ "version": "4.1.0",
+ "dev": true,
+ "license": "MIT",
"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"
- }
- }
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/locate-path": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/p-limit": {
+ "version": "2.3.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/p-locate": {
+ "version": "4.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "prelude-ls": {
+ "node_modules/prelude-ls": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
},
- "prettier": {
+ "node_modules/prettier": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz",
- "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==",
"dev": true,
- "peer": true
+ "license": "MIT",
+ "peer": true,
+ "bin": {
+ "prettier": "bin/prettier.cjs"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
},
- "prettier-linter-helpers": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"fast-diff": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "pretty-format": {
+ "node_modules/pretty-format": {
"version": "29.7.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
- "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@jest/schemas": "^29.6.3",
"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
- }
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/pretty-format/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "prompts": {
+ "node_modules/prompts": {
"version": "2.4.2",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
- "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"kleur": "^3.0.3",
"sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
- "punycode": {
+ "node_modules/punycode": {
"version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "pure-rand": {
+ "node_modules/pure-rand": {
"version": "6.0.4",
- "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz",
- "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==",
- "dev": true
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/dubzzz"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fast-check"
+ }
+ ],
+ "license": "MIT"
},
- "queue-microtask": {
+ "node_modules/queue-microtask": {
"version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
},
- "react-is": {
+ "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
+ "dev": true,
+ "license": "MIT"
},
- "regexp.prototype.flags": {
+ "node_modules/regexp.prototype.flags": {
"version": "1.5.0",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz",
- "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.2.0",
"functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
- "dev": true
- },
- "require-directory": {
+ "node_modules/require-directory": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "resolve": {
+ "node_modules/resolve": {
"version": "1.22.4",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz",
- "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "resolve-cwd": {
+ "node_modules/resolve-cwd": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
- "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"resolve-from": "^5.0.0"
},
- "dependencies": {
- "resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true
- }
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-cwd/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
- "resolve-from": {
+ "node_modules/resolve-from": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ }
},
- "resolve.exports": {
+ "node_modules/resolve.exports": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
- "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
},
- "reusify": {
+ "node_modules/reusify": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
},
- "rimraf": {
+ "node_modules/rimraf": {
"version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dev": true,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "run-parallel": {
+ "node_modules/run-parallel": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
"dev": true,
- "requires": {
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
"queue-microtask": "^1.2.2"
}
},
- "safe-array-concat": {
+ "node_modules/safe-array-concat": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz",
- "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"get-intrinsic": "^1.2.0",
"has-symbols": "^1.0.3",
"isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "safe-regex-test": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"get-intrinsic": "^1.1.3",
"is-regex": "^1.1.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "node_modules/semver": {
+ "version": "7.6.2",
"dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
},
- "dependencies": {
- "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"
- }
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- }
+ "engines": {
+ "node": ">=10"
}
},
- "shebang-command": {
+ "node_modules/shebang-command": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "shebang-regex": {
+ "node_modules/shebang-regex": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
},
- "side-channel": {
+ "node_modules/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": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
"object-inspect": "^1.9.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "signal-exit": {
+ "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
+ "dev": true,
+ "license": "ISC"
},
- "simple-git": {
+ "node_modules/simple-git": {
"version": "3.24.0",
- "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.24.0.tgz",
- "integrity": "sha512-QqAKee9Twv+3k8IFOFfPB2hnk6as6Y6ACUpwCtQvRYBAes23Wv3SZlHVobAzqcE8gfsisCvPw3HGW3HYM+VYYw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "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"
}
},
- "sisteransi": {
+ "node_modules/sisteransi": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "slash": {
+ "node_modules/slash": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
},
- "source-map": {
+ "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
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "source-map-support": {
+ "node_modules/source-map-support": {
"version": "0.5.13",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
- "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
}
},
- "sprintf-js": {
+ "node_modules/sprintf-js": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
- "stack-utils": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"escape-string-regexp": "^2.0.0"
},
- "dependencies": {
- "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": ">=10"
+ }
+ },
+ "node_modules/stack-utils/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
- "string-length": {
+ "node_modules/string-length": {
"version": "4.0.2",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
- "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"char-regex": "^1.0.2",
"strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "string-width": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "string.prototype.trim": {
+ "node_modules/string.prototype.trim": {
"version": "1.2.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz",
- "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "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"
}
},
- "string.prototype.trimend": {
+ "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==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
"es-abstract": "^1.20.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "string.prototype.trimstart": {
+ "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==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
"es-abstract": "^1.20.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "strip-ansi": {
+ "node_modules/strip-ansi": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "strip-bom": {
+ "node_modules/strip-bom": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
},
- "strip-final-newline": {
+ "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
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "strip-json-comments": {
+ "node_modules/strip-json-comments": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "supports-color": {
+ "node_modules/supports-color": {
"version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"has-flag": "^4.0.0"
},
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- }
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-color/node_modules/has-flag": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
- "supports-preserve-symlinks-flag": {
+ "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
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "synckit": {
+ "node_modules/synckit": {
"version": "0.8.8",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz",
- "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@pkgr/core": "^0.1.0",
"tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unts"
}
},
- "tapable": {
+ "node_modules/tapable": {
"version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "tar": {
+ "node_modules/tar": {
"version": "6.2.0",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
- "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
"dev": true,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"chownr": "^2.0.0",
"fs-minipass": "^2.0.0",
"minipass": "^5.0.0",
@@ -11502,66 +5582,74 @@
"mkdirp": "^1.0.3",
"yallist": "^4.0.0"
},
- "dependencies": {
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- }
+ "engines": {
+ "node": ">=10"
}
},
- "test-exclude": {
+ "node_modules/tar/node_modules/yallist": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/test-exclude": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
"dev": true,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"@istanbuljs/schema": "^0.1.2",
"glob": "^7.1.4",
"minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "text-table": {
+ "node_modules/text-table": {
"version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "tmpl": {
+ "node_modules/tmpl": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
- "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
- "to-fast-properties": {
+ "node_modules/to-fast-properties": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
},
- "to-regex-range": {
+ "node_modules/to-regex-range": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
}
},
- "ts-api-utils": {
+ "node_modules/ts-api-utils": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
- "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
"dev": true,
- "requires": {}
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.2.0"
+ }
},
- "ts-jest": {
- "version": "29.1.2",
- "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz",
- "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==",
+ "node_modules/ts-jest": {
+ "version": "29.1.4",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.4.tgz",
+ "integrity": "sha512-YiHwDhSvCiItoAgsKtoLFCuakDzDsJ1DLDnSouTaTmdOcOwIkSzbLXduaQ6M5DRVhuZC/NYaaZ/mtHbWMv/S6Q==",
"dev": true,
- "requires": {
+ "dependencies": {
"bs-logger": "0.x",
"fast-json-stable-stringify": "2.x",
"jest-util": "^29.0.0",
@@ -11570,14 +5658,44 @@
"make-error": "1.x",
"semver": "^7.5.3",
"yargs-parser": "^21.0.1"
+ },
+ "bin": {
+ "ts-jest": "cli.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": ">=7.0.0-beta.0 <8",
+ "@jest/transform": "^29.0.0",
+ "@jest/types": "^29.0.0",
+ "babel-jest": "^29.0.0",
+ "jest": "^29.0.0",
+ "typescript": ">=4.3 <6"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "@jest/transform": {
+ "optional": true
+ },
+ "@jest/types": {
+ "optional": true
+ },
+ "babel-jest": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ }
}
},
- "ts-node": {
+ "node_modules/ts-node": {
"version": "10.9.2",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
- "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"@cspotcode/source-map-support": "^0.8.0",
"@tsconfig/node10": "^1.0.7",
"@tsconfig/node12": "^1.0.7",
@@ -11591,264 +5709,391 @@
"make-error": "^1.1.1",
"v8-compile-cache-lib": "^3.0.1",
"yn": "3.1.1"
+ },
+ "bin": {
+ "ts-node": "dist/bin.js",
+ "ts-node-cwd": "dist/bin-cwd.js",
+ "ts-node-esm": "dist/bin-esm.js",
+ "ts-node-script": "dist/bin-script.js",
+ "ts-node-transpile-only": "dist/bin-transpile.js",
+ "ts-script": "dist/bin-script-deprecated.js"
+ },
+ "peerDependencies": {
+ "@swc/core": ">=1.2.50",
+ "@swc/wasm": ">=1.2.50",
+ "@types/node": "*",
+ "typescript": ">=2.7"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "@swc/wasm": {
+ "optional": true
+ }
}
},
- "tsconfig-paths": {
+ "node_modules/tsconfig-paths": {
"version": "4.2.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
- "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"json5": "^2.2.2",
"minimist": "^1.2.6",
"strip-bom": "^3.0.0"
},
- "dependencies": {
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "dev": true
- }
+ "engines": {
+ "node": ">=6"
}
},
- "tslib": {
+ "node_modules/tsconfig-paths/node_modules/strip-bom": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/tslib": {
"version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
- "dev": true
+ "dev": true,
+ "license": "0BSD"
},
- "type-check": {
+ "node_modules/type-check": {
"version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "type-detect": {
+ "node_modules/type-detect": {
"version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
},
- "type-fest": {
+ "node_modules/type-fest": {
"version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "typed-array-buffer": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"get-intrinsic": "^1.2.1",
"is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
- "typed-array-byte-length": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"for-each": "^0.3.3",
"has-proto": "^1.0.1",
"is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "typed-array-byte-offset": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
"for-each": "^0.3.3",
"has-proto": "^1.0.1",
"is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "typed-array-length": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"for-each": "^0.3.3",
"is-typed-array": "^1.1.9"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "typescript": {
+ "node_modules/typescript": {
"version": "5.4.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
- "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
- "dev": true
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/typescript-eslint": {
+ "version": "7.12.0",
+ "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.12.0.tgz",
+ "integrity": "sha512-D6HKNbQcnNu3BaN4HkQCR16tgG8Q2AMUWPgvhrJksOXu+d6ys07yC06ONiV2kcsEfWC22voB6C3PvK2MqlBZ7w==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/eslint-plugin": "7.12.0",
+ "@typescript-eslint/parser": "7.12.0",
+ "@typescript-eslint/utils": "7.12.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
},
- "unbox-primitive": {
+ "node_modules/unbox-primitive": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
- "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
"has-bigints": "^1.0.2",
"has-symbols": "^1.0.3",
"which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "undici-types": {
+ "node_modules/undici-types": {
"version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "update-browserslist-db": {
+ "node_modules/update-browserslist-db": {
"version": "1.0.10",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
- "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
"dev": true,
- "requires": {
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
"escalade": "^3.1.1",
"picocolors": "^1.0.0"
+ },
+ "bin": {
+ "browserslist-lint": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
}
},
- "uri-js": {
+ "node_modules/uri-js": {
"version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
- "requires": {
+ "license": "BSD-2-Clause",
+ "dependencies": {
"punycode": "^2.1.0"
}
},
- "v8-compile-cache-lib": {
+ "node_modules/uuid": {
+ "version": "8.3.2",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/v8-compile-cache-lib": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
- "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "v8-to-istanbul": {
+ "node_modules/v8-to-istanbul": {
"version": "9.0.1",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz",
- "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==",
"dev": true,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"@jridgewell/trace-mapping": "^0.3.12",
"@types/istanbul-lib-coverage": "^2.0.1",
"convert-source-map": "^1.6.0"
},
- "dependencies": {
- "convert-source-map": {
- "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
- }
+ "engines": {
+ "node": ">=10.12.0"
}
},
- "walker": {
+ "node_modules/v8-to-istanbul/node_modules/convert-source-map": {
+ "version": "1.9.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/walker": {
"version": "1.0.8",
- "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
- "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
"dev": true,
- "requires": {
+ "license": "Apache-2.0",
+ "dependencies": {
"makeerror": "1.0.12"
}
},
- "which": {
+ "node_modules/which": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
}
},
- "which-boxed-primitive": {
+ "node_modules/which-boxed-primitive": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"is-bigint": "^1.0.1",
"is-boolean-object": "^1.1.0",
"is-number-object": "^1.0.4",
"is-string": "^1.0.5",
"is-symbol": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "which-typed-array": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
"has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "wrap-ansi": {
+ "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,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "wrappy": {
+ "node_modules/wrappy": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
- "write-file-atomic": {
+ "node_modules/write-file-atomic": {
"version": "4.0.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
- "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
"dev": true,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"imurmurhash": "^0.1.4",
"signal-exit": "^3.0.7"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
}
},
- "y18n": {
+ "node_modules/xml": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
},
- "yallist": {
+ "node_modules/yallist": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
- "yaml": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz",
- "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==",
- "dev": true
+ "node_modules/yaml": {
+ "version": "2.4.5",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz",
+ "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==",
+ "dev": true,
+ "bin": {
+ "yaml": "bin.mjs"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
},
- "yargs": {
+ "node_modules/yargs": {
"version": "17.6.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz",
- "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
"get-caller-file": "^2.0.5",
@@ -11856,25 +6101,37 @@
"string-width": "^4.2.3",
"y18n": "^5.0.5",
"yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
}
},
- "yargs-parser": {
+ "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
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
},
- "yn": {
+ "node_modules/yn": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "yocto-queue": {
+ "node_modules/yocto-queue": {
"version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
}
}
}
diff --git a/package.json b/package.json
index a8729787a..2a5c1a73d 100644
--- a/package.json
+++ b/package.json
@@ -14,30 +14,33 @@
"@types/debug": "^4.1.12",
"@types/jest": "^29.5.12",
"@types/jest-specific-snapshot": "^0.5.9",
- "@types/node": "^20.12.7",
- "@typescript-eslint/eslint-plugin": "^7.7.0",
- "@typescript-eslint/parser": "^7.7.0",
+ "@types/node": "^20.14.2",
+ "@types/semver": "^7.5.8",
+ "@typescript-eslint/eslint-plugin": "^7.12.0",
+ "@typescript-eslint/parser": "^7.12.0",
"caller": "^1.1.0",
- "debug": "^4.3.4",
+ "debug": "^4.3.5",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-import-resolver-typescript": "^3.5.2",
"eslint-plugin-import": "^2.29.1",
- "eslint-plugin-jest": "^28.2.0",
- "eslint-plugin-node": "^11.1.0",
- "eslint-plugin-prefer-arrow-functions": "^3.3.2",
+ "eslint-plugin-import-x": "^0.5.1",
+ "eslint-plugin-jest": "^28.6.0",
+ "eslint-plugin-n": "^17.8.1",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-simple-import-sort": "^12.1.0",
"fast-sort": "^3.2.0",
"jest": "^29.3.1",
+ "jest-junit": "^16.0.0",
"jest-specific-snapshot": "^8.0.0",
- "semver": "^7.6.0",
+ "semver": "^7.6.2",
"simple-git": "^3.24.0",
- "ts-jest": "^29.1.2",
+ "ts-jest": "^29.1.4",
"ts-node": "^10.9.2",
"tsconfig-paths": "^4.1.2",
"typescript": "^5.4.5",
- "yaml": "^2.4.1"
+ "typescript-eslint": "^7.12.0",
+ "yaml": "^2.4.5"
},
"bundleDependencies": [
"tests"
diff --git a/plugin.yaml b/plugin.yaml
index 4b1358141..d02f1b220 100644
--- a/plugin.yaml
+++ b/plugin.yaml
@@ -1,6 +1,6 @@
version: 0.1
# IfChange
-required_trunk_version: ">=1.21.1-beta.20"
+required_trunk_version: ">=1.22.2-beta.5"
# ThenChange tests/repo_tests/config_check.test.ts
environments:
diff --git a/repo-tools/definition-checker/check.ts b/repo-tools/definition-checker/check.ts
new file mode 100644
index 000000000..64ffaf2f8
--- /dev/null
+++ b/repo-tools/definition-checker/check.ts
@@ -0,0 +1,149 @@
+import fs from "fs";
+import path from "path";
+// trunk-ignore(eslint/import/no-extraneous-dependencies)
+import YAML from "yaml";
+
+// Avoid strictly typing composite config
+// trunk-ignore-all(eslint/@typescript-eslint/no-unsafe-assignment)
+// trunk-ignore-all(eslint/@typescript-eslint/no-unsafe-member-access)
+// trunk-ignore-all(eslint/@typescript-eslint/no-unsafe-call)
+// trunk-ignore-all(eslint/@typescript-eslint/no-unsafe-return)
+
+/**** Helpers ****/
+
+/**
+ * Generate a diagnostic message that matches the parse_regex spec.
+ */
+const generateMessage = (file: string, message: string, code: string): string =>
+ `${file} [error]: ${message} (${code})`;
+
+/**
+ * Validate that a plugin.yaml doesn't explicitly enable any linters, tools, or actions.
+ */
+const validateEnables = (file: string, config: any): string[] => {
+ const enableErrors: string[] = [];
+ const lintEnabled = config.lint?.enabled;
+ const toolsEnabled = config.tools?.enabled;
+ const actionsEnabled = config.actions?.enabled;
+
+ [
+ [lintEnabled, "Linter"],
+ [toolsEnabled, "Tool"],
+ [actionsEnabled, "Action"],
+ ].forEach((value: any[][]) => {
+ const [enableds, enabledType] = value as [any[], string];
+ if (enableds?.length) {
+ enableErrors.push(
+ ...enableds.map((enabled: string) =>
+ generateMessage(
+ file,
+ `${enabledType} ${enabled} is explicitly enabled`,
+ `no-enable-${enabledType.toLowerCase()}`,
+ ),
+ ),
+ );
+ }
+ });
+
+ const lintDefinitions = config.lint?.definitions;
+ const toolsDefinitions = config.tools?.definitions;
+ const actionsDefinitions = config.actions?.definitions;
+
+ [
+ [lintDefinitions, "Linter"],
+ [toolsDefinitions, "Tool"],
+ [actionsDefinitions, "Action"],
+ ].forEach((value: any[][]) => {
+ const [definitions, definitionType] = value as [any[], string];
+ if (!definitions) {
+ return;
+ }
+ enableErrors.push(
+ ...definitions.reduce((acc: string[], definition: any) => {
+ if (definition?.enabled) {
+ acc.push(
+ generateMessage(
+ file,
+ `${definitionType} ${definition.name ?? definition.id} is explicitly enabled`,
+ `no-enable-${definitionType.toLowerCase()}`,
+ ),
+ );
+ }
+ return acc;
+ }, []),
+ );
+ });
+
+ return enableErrors;
+};
+
+/**
+ * Ensure that a linter definition has a 'suggest_if' and 'description' field.
+ */
+const validateLinters = (file: string, config: any): string[] => {
+ if (!config.lint?.definitions) {
+ return [];
+ }
+
+ return config.lint.definitions.reduce((acc: string[], definition: any) => {
+ if (definition.deprecated) {
+ return acc;
+ }
+ if (!definition.suggest_if) {
+ acc.push(
+ generateMessage(
+ file,
+ `Linter ${definition.name} should specify 'suggest_if'`,
+ "suggest-if-linter",
+ ),
+ );
+ }
+ if (!definition.description) {
+ acc.push(
+ generateMessage(
+ file,
+ `Linter ${definition.name} should specify 'description'`,
+ "description-linter",
+ ),
+ );
+ }
+ return acc;
+ }, []);
+};
+
+/**
+ * Ensure that a plugin.yaml in the linters or tools subfolders has a matching test file.
+ */
+const validateTests = async (file: string): Promise => {
+ if (!file.includes("linters") || !file.includes("tools")) {
+ return [];
+ }
+
+ const directoryContents = await fs.promises.readdir(path.dirname(file));
+ const hasTest = directoryContents.some((dirFile: string) => dirFile.endsWith(".test.ts"));
+ if (hasTest) {
+ return [];
+ }
+ return [generateMessage(file, "No test file found", "no-test-file")];
+};
+
+/**** Lint Plugin Files ****/
+
+const fileArgs = process.argv.slice(2);
+
+const processFile = async (filePath: string) => {
+ const fileContent = await fs.promises.readFile(filePath, "utf8");
+ const yamlContents = YAML.parse(fileContent);
+ const errors = validateEnables(filePath, yamlContents);
+ errors.push(...validateLinters(filePath, yamlContents));
+ errors.push(...(await validateTests(filePath)));
+ console.log(errors.join("\n"));
+};
+
+const processFiles = async (filePaths: string[]) => {
+ for (const filePath of filePaths) {
+ await processFile(filePath);
+ }
+};
+
+void processFiles(fileArgs);
diff --git a/repo-tools/linter-test-helper/generate b/repo-tools/linter-test-helper/generate
index 9d4038f1c..0992fb654 100755
--- a/repo-tools/linter-test-helper/generate
+++ b/repo-tools/linter-test-helper/generate
@@ -5,60 +5,12 @@ from datetime import datetime, timedelta
import click
-INITIAL_PLUGIN_CONTENTS = """version: 0.1
-# Tools can be either runtime package-based or
-# download-based. This boilerplate assumes the (far more verbose) latter case.
-downloads:
- - name: NAME_HERE
- # executable: true
- # NOTE: These are (common) sample values. Please replace with real values.
- downloads:
- - os:
- linux: linux
- macos: darwin
- windows: windows
- cpu:
- x86_64: amd64
- arm_64: arm64
- url: https://URL_HERE/${version}/${os}-${cpu}-NAME_HERE
-# Fill out this part if the linter is tool-based (most common case) - otherwise delete
-tools:
- definitions:
- - name: NAME_HERE
- # RUNTIME_OR_DOWNLOAD_INFO_HERE
- # download: NAME_HERE
- known_good_version: VERSION_HERE
- shims: [NAME_HERE]
-lint:
- definitions:
- - name: NAME_HERE
- files: [FILE_TYPES_HERE]
- # TOOL_OR_RUNTIME_OR_DOWNLOAD_INFO_HERE
- known_good_version: # VERSION_HERE
- suggest_if: never
- commands:
- - name: LINT_OR_FORMAT_HERE
- output: OUTPUT_TYPE_HERE
- run: COMMAND_HERE
- success_codes: [0]
-"""
+directory = os.path.dirname(__file__)
+with open(os.path.join(directory, "linter_sample_plugin.yaml"), "r") as file:
+ initial_plugin_contents = file.read()
-INITIAL_TEST_CONTENTS = """import { linterCheckTest, linterFmtTest } from "tests";
-// Uncomment and use if your tool is a linter
-// linterCheckTest({ linterName: "*{}*" });
-
-// Uncomment and use if your tool is a formatter
-// linterFmtTest({ linterName: "*{}*" });
-
-// Guidelines for configuring tests:
-// - By default, linters and formatters will only run on files with syntax `.in.`
-// - You can customize test setup using the `preCheck` callback (see git_diff_check.test.ts and golangci_lint.test.ts)
-// - You can specify additional customization using the `customLinterCheckTest and customLinterFmtTest` helpers
-// - Additional information on test setup can be found in tests/README.md
-//
-// If you are unable to write a test for this linter, please document why in your PR, and add
-// it to the list in tests/repo_tests/test_coverage_test.ts
-"""
+with open(os.path.join(directory, "linter_sample.test.ts"), "r") as file:
+ initial_test_contents = file.read()
@click.group()
@@ -86,7 +38,9 @@ def scan(workspace):
generated_files = True
# Write plugin.yaml
with open(os.path.join(subdir_path, "plugin.yaml"), "w") as plugin_file:
- plugin_file.write(INITIAL_PLUGIN_CONTENTS)
+ plugin_file.write(
+ initial_plugin_contents.replace("NAME_HERE", linter_name)
+ )
# Write test file
with open(
@@ -95,7 +49,7 @@ def scan(workspace):
),
"w",
) as test_file:
- test_file.write(INITIAL_TEST_CONTENTS.replace("*{}*", linter_name))
+ test_file.write(initial_test_contents.replace("NAME_HERE", linter_name))
# Create empty test_data dir
test_dir = os.path.join(subdir_path, "test_data")
diff --git a/repo-tools/linter-test-helper/linter_sample.test.ts b/repo-tools/linter-test-helper/linter_sample.test.ts
new file mode 100644
index 000000000..775f434e1
--- /dev/null
+++ b/repo-tools/linter-test-helper/linter_sample.test.ts
@@ -0,0 +1,15 @@
+import { linterCheckTest, linterFmtTest } from "tests";
+
+// Guidelines for configuring tests:
+// - By default, linters and formatters will only run on files with syntax `.in.`
+// - You can customize test setup using the `preCheck` callback (see git_diff_check.test.ts and golangci_lint.test.ts)
+// - You can specify additional customization using the `customLinterCheckTest` and `customLinterFmtTest` helpers
+// - Additional information on test setup can be found in tests/README.md
+//
+// If you are unable to write a test for this linter, please document why in your PR. Feel free to ask for help!
+
+// Use if your tool is a linter
+linterCheckTest({ linterName: "NAME_HERE" });
+
+// Use if your tool is a formatter
+linterFmtTest({ linterName: "NAME_HERE" });
diff --git a/repo-tools/linter-test-helper/linter_sample_plugin.yaml b/repo-tools/linter-test-helper/linter_sample_plugin.yaml
new file mode 100644
index 000000000..620ad80a7
--- /dev/null
+++ b/repo-tools/linter-test-helper/linter_sample_plugin.yaml
@@ -0,0 +1,54 @@
+version: 0.1
+# Tools can be either runtime package-based or download-based. Modify this boilerplate
+# to fit your use case.
+
+# Fill out this part if the linter/tool is download-based - otherwise delete
+downloads:
+ - name: NAME_HERE
+ # executable: true
+ # DOWNLOAD_URL_INFO_HERE
+ downloads:
+ - os:
+ linux: linux
+ macos: darwin
+ windows: windows
+ cpu:
+ x86_64: amd64
+ arm_64: arm64
+ url: https://URL_HERE/${version}/${os}-${cpu}-NAME_HERE
+# Fill out this part if the linter is tool-based (most common case) - otherwise delete
+tools:
+ definitions:
+ - name: NAME_HERE
+ # RUNTIME_OR_DOWNLOAD_INFO_HERE
+ # runtime: RUNTIME_HERE
+ # package: NAME_HERE
+ # -- OR --
+ # download: NAME_HERE
+ known_good_version: VERSION_HERE
+ shims: [NAME_HERE]
+ health_checks:
+ - command: NAME_HERE --version
+ parse_regex: ${semver}
+lint:
+ definitions:
+ - name: NAME_HERE
+ files: [FILE_TYPES_HERE]
+ # TOOL_OR_RUNTIME_OR_DOWNLOAD_INFO_HERE
+ # tools: [NAME_HERE]
+ # -- OR --
+ # runtime: RUNTIME_HERE
+ # package: NAME_HERE
+ # -- OR --
+ # download: NAME_HERE
+ known_good_version: VERSION_HERE
+ suggest_if: never
+ commands:
+ # https://docs.trunk.io/check/configuration/custom-linters/commands/definition
+ - name: LINT_OR_FORMAT_HERE
+ # https://docs.trunk.io/check/configuration/custom-linters/commands/output-types
+ output: OUTPUT_TYPE_HERE
+ run: COMMAND_HERE
+ success_codes: [0]
+ # formatter: true
+ # in_place: true
diff --git a/repo-tools/tool-test-helper/generate b/repo-tools/tool-test-helper/generate
index 8c9f26f69..506726d4e 100644
--- a/repo-tools/tool-test-helper/generate
+++ b/repo-tools/tool-test-helper/generate
@@ -5,60 +5,12 @@ from datetime import datetime, timedelta
import click
-INITIAL_PLUGIN_CONTENTS = """version: 0.1
-# Tools can be either runtime package-based or
-# download-based. This boilerplate assumes the (far more verbose) latter case.
-downloads:
- - name: *{}*
- # executable: true
- # NOTE: These are (common) sample values. Please replace with real values.
- downloads:
- - os:
- linux: linux
- macos: darwin
- windows: windows
- cpu:
- x86_64: amd64
- arm_64: arm64
- url: https://URL_HERE/${version}/${os}-${cpu}-NAME_HERE
-tools:
- definitions:
- - name: *{}*
- # RUNTIME_OR_DOWNLOAD_INFO_HERE
- # download: *{}*
- known_good_version: VERSION_HERE
- # NOTE: shim may differ from tool name
- shims: [*{}*]
-"""
+directory = os.path.dirname(__file__)
+with open(os.path.join(directory, "tool_sample_plugin.yaml"), "r") as file:
+ initial_plugin_contents = file.read()
-INITIAL_TEST_CONTENTS = """import { makeToolTestConfig, toolTest, toolInstallTest } from "tests";
-toolTest({
- toolName: "*{}*",
- toolVersion: "VERSION_HERE",
- testConfigs: [
- makeToolTestConfig({
- command: ["SHIM_NAME", "COMMAND_HERE"],
- expectedOut: "OUTPUT_HERE",
- }),
- ],
-});
-
-toolInstallTest({
- toolName: "*{}*",
- toolVersion: "VERSION_HERE",
-})
-
-// Guidelines for configuring tests:
-// - Prefer using health check in config + toolInstallTest, if you must use toolTest leave a
-// comment explaining why. Only one of the two options is sufficient.
-// - Usually, just a version or help text command is sufficient
-// - add a test for each command that is used in the plugin.yaml
-// - exit code 0 is assumed, so set expectedExitCode if it is different
-// - expectedOut/expectedErr do a substring match, so you can just put a portion of the output
-//
-// If you are unable to write a test for this tool, please document why in your PR, and add
-// it to the list in tests/repo_tests/test_coverage_test.ts
-"""
+with open(os.path.join(directory, "tool_sample.test.ts"), "r") as file:
+ initial_test_contents = file.read()
@click.group()
@@ -86,7 +38,9 @@ def scan(workspace):
generated_files = True
# Write plugin.yaml
with open(os.path.join(subdir_path, "plugin.yaml"), "w") as plugin_file:
- plugin_file.write(INITIAL_PLUGIN_CONTENTS.replace("*{}*", tool_name))
+ plugin_file.write(
+ initial_plugin_contents.replace("NAME_HERE", tool_name)
+ )
# Write test file
with open(
@@ -95,7 +49,7 @@ def scan(workspace):
),
"w",
) as test_file:
- test_file.write(INITIAL_TEST_CONTENTS.replace("*{}*", tool_name))
+ test_file.write(initial_test_contents.replace("NAME_HERE", tool_name))
print("Created starter files in {}", subdir_path)
diff --git a/repo-tools/tool-test-helper/tool_sample.test.ts b/repo-tools/tool-test-helper/tool_sample.test.ts
new file mode 100644
index 000000000..22c444378
--- /dev/null
+++ b/repo-tools/tool-test-helper/tool_sample.test.ts
@@ -0,0 +1,28 @@
+import { makeToolTestConfig, toolInstallTest, toolTest } from "tests";
+
+// Guidelines for configuring tests:
+// - Prefer using health check in config + toolInstallTest, if you must use toolTest leave a
+// comment explaining why. Only one of the two options is sufficient.
+// - Usually, just a version or help text command is sufficient
+// - add a test for each command that is used in the plugin.yaml
+// - exit code 0 is assumed, so set expectedExitCode if it is different
+// - expectedOut/expectedErr do a substring match, so you can just put a portion of the output
+//
+// If you are unable to write a test for this tool, please document why in your PR. Feel free to ask for help!
+
+toolInstallTest({
+ toolName: "NAME_HERE",
+ toolVersion: "VERSION_HERE",
+});
+
+// No need to include if a toolInstallTest is included.
+toolTest({
+ toolName: "NAME_HERE",
+ toolVersion: "VERSION_HERE",
+ testConfigs: [
+ makeToolTestConfig({
+ command: ["SHIM_NAME", "COMMAND_HERE"],
+ expectedOut: "OUTPUT_HERE",
+ }),
+ ],
+});
diff --git a/repo-tools/tool-test-helper/tool_sample_plugin.yaml b/repo-tools/tool-test-helper/tool_sample_plugin.yaml
new file mode 100644
index 000000000..185bea871
--- /dev/null
+++ b/repo-tools/tool-test-helper/tool_sample_plugin.yaml
@@ -0,0 +1,31 @@
+version: 0.1
+# Tools can be either runtime package-based or download-based. Modify this boilerplate
+# to fit your use case.
+
+# Fill out this part if the linter/tool is download-based - otherwise delete
+downloads:
+ - name: NAME_HERE
+ # executable: true
+ # DOWNLOAD_URL_INFO_HERE
+ downloads:
+ - os:
+ linux: linux
+ macos: darwin
+ windows: windows
+ cpu:
+ x86_64: amd64
+ arm_64: arm64
+ url: https://URL_HERE/${version}/${os}-${cpu}-NAME_HERE
+tools:
+ definitions:
+ - name: NAME_HERE
+ # RUNTIME_OR_DOWNLOAD_INFO_HERE
+ # runtime: RUNTIME_HERE
+ # package: NAME_HERE
+ # -- OR --
+ # download: NAME_HERE
+ known_good_version: VERSION_HERE
+ shims: [NAME_HERE]
+ health_checks:
+ - command: NAME_HERE --version
+ parse_regex: ${semver}
diff --git a/runtimes/ruby/plugin.yaml b/runtimes/ruby/plugin.yaml
index c2fb9526a..a7355bbe0 100644
--- a/runtimes/ruby/plugin.yaml
+++ b/runtimes/ruby/plugin.yaml
@@ -47,7 +47,7 @@ runtimes:
known_good_version: 3.1.4
version_commands:
- run: ruby --version
- parse_regex: ruby ([0-9\.]+)(p+.*)
+ parse_regex: ruby ${semver}(p+.*)?
shims:
- bundle
- bundler
diff --git a/tests/README.md b/tests/README.md
index 4db7c70ee..351013159 100644
--- a/tests/README.md
+++ b/tests/README.md
@@ -1,16 +1,25 @@
# Testing
-To run tests and generate snapshots, run `npm install` and `npm test `.
+```bash
+npm ci
+npm test
+```
+
+- [Overview](#overview)
+- [Configuring Tests](#configuring-tests)
+- [Running and Debugging Tests](#running-tests)
+- [Additional Options](#additional-options)
## Overview
-We ask that all new linter definitions in this repository add some basic testing. This should be a
-straightforward and simple process, with minimal overhead, but let us know if you need help! Please
-start by following the instructions below:
+We ask that all new linter and tool definitions in this repository add some basic testing. This
+should be a straightforward and simple process, with minimal overhead, but let us know if you need
+help! Please start by following the instructions below:
## Configuring Tests
-Please create a directory structure in your linter/formatter definition analogous to the following:
+Follow the setup quickstart in the [contributing guidelines](../CONTRIBUTING.md). As a result, you
+should have a directory structure like the following:
```text
linters/
@@ -20,16 +29,17 @@ linters/
│ README.md (optional)
│ my-config.json (optional)
└─test_data/
- └─basic.in.py (with appropriate extension)
+ └─basic.in.foo (with appropriate extension)
```
- Specify a `README.md` if your linter integration requires additional explanation or configuration.
-- Specify a `my-config.json` (or whatever `direct_configs` item applies) ONLY if providing this
- config file is sufficient to enable your linter in ALL cases. This will be created whenever
- someone enables your linter.
-- Specify a typescript test file that calls `linterCheckTest` or `linterFmtTest` with the name of
- your linter and (optionally) the prefixes of your input files and any special callbacks.
-- Inside of `test_data/`, provide at least one input file.
+- Specify a `my-config.json` (or whatever `direct_configs` item applies) ONLY if it is universally
+ applicable. This will be created whenever someone enables your linter.
+- Specify a [Jest test file](../repo-tools/linter-test-helper/linter_sample.test.ts) that calls
+ `linterCheckTest` or `linterFmtTest` with the name of your linter and (optionally) the prefixes of
+ your input files and any special callbacks.
+- Inside of `test_data/`, provide at least one input file. **This file should be named
+ `.in.` to be automatically picked up by the testing framework.**
- For linters, specify a sample input file (with an appropriate file extension). For reference,
the tests will run the following command against your input file:
@@ -45,26 +55,21 @@ linters/
trunk fmt --force --filter=
```
-Refer to [sqlfluff](../linters/sqlfluff) or [pragma-once](../linters/pragma-once) as testing
-examples.
+Refer to [sqlfluff](../linters/sqlfluff/sqlfluff.test.ts) or
+[pragma-once](../linters/pragma-once/pragma_once.test.ts) as testing examples.
## Running Tests
-To run all tests, run `npm install` and then run:
+The first time you run a test, it will automatically generate the necessary snapshot for the
+`known_good_version`.
-```bash
-npm test
-```
-
-To run an individual test, run:
+To run a test with debug information and preserve a sandbox for debugging, run:
```bash
-npm test
+npm ci
+SANDBOX_DEBUG="true" DEBUG="Driver:*" npm test
```
-Then, verify that the generated snapshot file includes the results you would expect (e.g. an Object
-with several fileIssues, no taskFailures).
-
For context, the general test execution is as follows:
1. Create a sandbox testing directory by copying a linter's subdirectory and its `test_data`.
@@ -72,6 +77,7 @@ For context, the general test execution is as follows:
[.trunk/trunk.yaml](../.trunk/trunk.yaml).
3. Run `trunk check enable `.
4. Run `trunk check` or `trunk fmt` on files with the `.in.` syntax.
+5. Cache any linter/tool downloads in `${TMPDIR:-/tmp}/plugins_testing_download_cache`
### Linter Versioning
@@ -99,7 +105,7 @@ The process of resolving snapshots for asserting output correctness is as follow
If no such snapshot exists, a new snapshot is created with the enabled version of the linter (use
[debug logging](#debugging) to see what version was enabled).
-The reasoning for this setup is threefold:
+[The reasoning for this setup is threefold](https://trunk.io/blog/how-we-eliminate-tool-rot-and-confidently-upgrade-our-open-source-dependencies):
1. Linters can update their arguments or outputs on occasion, which can lead to a different trunk
output. We would like to be aware of these changes, particularly if they require trunk to accept
@@ -142,42 +148,25 @@ include:
version change.
- `SANDBOX_DEBUG` if `true`, prevents sandbox test directories from being deleted, and logs their
path for additional debugging.
+- [`DEBUG`](https://www.npmjs.com/package/debug) is used to configure log information. Use
+ `DEBUG=Driver:*` to view useful test driver logs, or use `DEBUG=*:sqlfluff*` to view all logs
+ related to a particular linter (`::<#>`).
### CI
PRs will run 5 types of tests across all platforms as applicable:
-1. Enable and test all linters with their `known_good_version`, if applicable. To replicate this
- behavior, run: `PLUGINS_TEST_LINTER_VERSION=KnownGoodVersion npm test`. If the
+1. Enable and test all changed linters with their `known_good_version`, if applicable. To replicate
+ this behavior, run: `PLUGINS_TEST_LINTER_VERSION=KnownGoodVersion npm test`. If the
`known_good_version` is different from the version enabled when you defined the linter, you will
need to first run this locally to generate a snapshot file.
-2. Enable and test all linters with their latest version, if applicable. To replicate this behavior,
- run: `npm test`.
-3. Assert that all linters pass config validation. This is also validated while running: `npm test`.
-4. Assert that all linters have test coverage.
-5. Assert that all linters are included in the [`README.md`](../README.md).
+2. Enable and test all changed linters with their latest version, if applicable. To replicate this
+ behavior, run: `npm test`.
+3. Assert that all linters pass config validation and best practices.
+4. Assert that all linters are included in the [`README.md`](../README.md).
### Debugging
Individual tests normally complete in less than 1 minute. They may take up to 5 minutes or so if the
-dependency cache is empty (linters need to be downloaded and installed to run the linter tests).
-Subsequent runs will not experience this delay.
-
-Errors encountered during test runs are reported through the standard `console`, but additional
-debugging is provided using [debug](https://www.npmjs.com/package/debug). The namespace convention
-used is `::<#>`, where Location is `Driver | Tests`, linter is the name of the
-linter being tested (alternatively `test<#>` if no linter is specified), and # is a counter used to
-distinguish between multiple tests with the same linter.
-
-Accordingly, in order to view debug logs for all sqlfluff tests, you can set the environment
-variable:
-
-```bash
-DEBUG=*:sqlfluff*
-```
-
-To just see debug logs from the test driver, use:
-
-```bash
-DEBUG=Driver:*
-```
+`/tmp/plugins_testing_download_cache` dependency cache is empty (linters need to be downloaded and
+installed to run the linter tests). Subsequent runs will not experience this delay.
diff --git a/tests/driver/driver.ts b/tests/driver/driver.ts
index f43f21636..478ca93b4 100644
--- a/tests/driver/driver.ts
+++ b/tests/driver/driver.ts
@@ -21,6 +21,8 @@ export interface SetupSettings {
trunkVersion?: string;
}
+export type CustomExecOptions = ExecOptions & { stdin?: string };
+
const execFilePromise = util.promisify(execFile);
const TEMP_SUBDIR = "tmp";
@@ -378,13 +380,41 @@ export abstract class GenericTrunkDriver {
* Run a command inside the sandbox test repo.
* @param bin command to run
* @param args arguments to run
- * @param execOptions
+ * @param execOptions options to pass the stdin to exec
*/
- async run(bin: string, args: string[], execOptions?: ExecOptions) {
- return await execFilePromise(bin, args, {
+ async run(bin: string, args: string[], execOptions?: CustomExecOptions) {
+ const exec = execFile(bin, args, {
cwd: this.sandboxPath,
env: executionEnv(this.sandboxPath ?? ""),
...execOptions,
});
+ exec.stdin?.write(execOptions?.stdin ?? "");
+ exec.stdin?.end();
+
+ return await new Promise<{ stdout: string; stderr: string }>((resolve, reject) => {
+ let stdout = "";
+ let stderr = "";
+
+ exec.stdout?.on("data", (chunk: string) => {
+ stdout += chunk;
+ });
+
+ exec.stderr?.on("data", (chunk: string) => {
+ stderr += chunk;
+ });
+
+ exec.on("error", (err: any) => {
+ // trunk-ignore(eslint/@typescript-eslint/prefer-promise-reject-errors)
+ reject(err);
+ });
+ exec.on("exit", (code: number) => {
+ if (code === 0) {
+ resolve({ stdout, stderr });
+ } else {
+ // trunk-ignore(eslint/@typescript-eslint/prefer-promise-reject-errors)
+ reject({ error: new Error(`Process exited with code ${code}`), code, stdout, stderr });
+ }
+ });
+ });
}
}
diff --git a/tests/driver/lint_driver.ts b/tests/driver/lint_driver.ts
index b74a93b3a..6fd118492 100644
--- a/tests/driver/lint_driver.ts
+++ b/tests/driver/lint_driver.ts
@@ -126,6 +126,7 @@ lint:
(this.getFullTrunkConfig().lint.definitions.find(
({ name }: { name: string }) => name === this.linter,
)?.known_good_version as string) ?? "";
+ // trunk-ignore(eslint/@typescript-eslint/no-useless-template-literals): Convert kgv to string
if (this.linter === "include-what-you-use" && `${kgv}`.length === 3) {
// TODO(Tyler): `trunk config print` does not correctly wrap quotes around kgv, so we must patch iwyu here
return `${kgv}0`;
@@ -148,7 +149,7 @@ lint:
let newTrunkContents = "";
try {
- // Cast version to string in case of decimal representation (e.g. 0.40)
+ // trunk-ignore(eslint/@typescript-eslint/no-useless-template-literals): Cast to string to handle decimal case
const version = `${this.extractLinterVersion()}`;
const versionString = version.length > 0 ? `@${version}` : "";
const linterVersionString = `${this.linter}${versionString}`;
@@ -165,7 +166,7 @@ lint:
);
const enabledVersionRegex = `(?${this.linter})@(?.+)\n`;
const foundIn = newTrunkContents.match(enabledVersionRegex);
- if (foundIn && foundIn.groups?.version && foundIn.groups?.version.length > 0) {
+ if (foundIn?.groups?.version && foundIn.groups.version.length > 0) {
this.enabledVersion = foundIn.groups.version;
this.debug("Enabled %s", this.enabledVersion);
}
@@ -284,7 +285,7 @@ lint:
// this has been changed from ".json" to ".out.json" for linters that run on terraform files
// terraform extensions are .tf and .tf.json - this change prevents accidentally linting the trunk output
const resultJsonPath = `${targetAbsPath}.out.json`;
- const args = `${targetRelativePath}`;
+ const args = targetRelativePath;
this.debug("Running `trunk check` on %s", targetRelativePath);
return await this.runCheck({ args, linter, targetAbsPath, resultJsonPath });
}
@@ -360,7 +361,7 @@ lint:
async runFmtUnit(targetRelativePath: string, linter: string): Promise {
const targetAbsPath = path.resolve(this.sandboxPath ?? "", targetRelativePath);
const resultJsonPath = `${targetAbsPath}.json`;
- const args = `${targetRelativePath}`;
+ const args = targetRelativePath;
this.debug("Running `trunk fmt` on %s", targetRelativePath);
return await this.runFmt({ args, linter, targetAbsPath, resultJsonPath });
}
diff --git a/tests/driver/tool_driver.ts b/tests/driver/tool_driver.ts
index eb26deec7..ff578b068 100644
--- a/tests/driver/tool_driver.ts
+++ b/tests/driver/tool_driver.ts
@@ -84,7 +84,7 @@ lint:
return;
}
try {
- // Cast version to string in case of decimal representation (e.g. 0.40)
+ // trunk-ignore(eslint/@typescript-eslint/no-useless-template-literals): Cast to string to handle decimal case
const version = `${this.extractToolVersion()}`;
const versionString = version.length > 0 ? `@${version}` : "";
const toolVersionString = `${this.tool}${versionString}`;
@@ -99,7 +99,7 @@ lint:
);
const enabledVersionRegex = `(?${this.tool})@(?.+)\n`;
const foundIn = newTrunkContents.match(enabledVersionRegex);
- if (foundIn && foundIn.groups?.version && foundIn.groups?.version.length > 0) {
+ if (foundIn?.groups?.version && foundIn.groups.version.length > 0) {
this.enabledVersion = foundIn.groups.version;
this.debug("Enabled %s", this.enabledVersion);
}
@@ -195,16 +195,17 @@ lint:
/**** Execution methods ****/
- async runTool(command: string[]): Promise {
+ async runTool(command: string[], stdin?: string): Promise {
const tools_subdir = fs.existsSync(path.resolve(this.sandboxPath ?? "", ".trunk/dev-tools"))
? "dev-tools"
: "tools";
try {
if (process.platform == "win32") {
- const { stdout, stderr } = await this.run("powershell", [
- `.trunk/${tools_subdir}/${command[0]}.bat`,
- ...command.slice(1),
- ]);
+ const { stdout, stderr } = await this.run(
+ "powershell",
+ [`.trunk/${tools_subdir}/${command[0]}.bat`, ...command.slice(1)],
+ { stdin },
+ );
return {
exitCode: 0,
stdout,
@@ -215,6 +216,7 @@ lint:
const { stdout, stderr } = await this.run(
`.trunk/${tools_subdir}/${command[0]}`,
command.slice(1),
+ { stdin },
);
return {
exitCode: 0,
diff --git a/tests/index.ts b/tests/index.ts
index 920379961..b08deac33 100644
--- a/tests/index.ts
+++ b/tests/index.ts
@@ -267,6 +267,7 @@ interface ToolTestConfig {
expectedOut?: string;
expectedErr?: string;
expectedExitCode?: number;
+ stdin?: string;
}
export const makeToolTestConfig = ({
@@ -274,11 +275,13 @@ export const makeToolTestConfig = ({
expectedOut = "",
expectedErr = "",
expectedExitCode = 0,
+ stdin = "",
}: ToolTestConfig) => ({
command,
expectedOut,
expectedErr,
expectedExitCode,
+ stdin,
});
export const toolTest = ({
@@ -298,9 +301,9 @@ export const toolTest = ({
}) => {
describe(`Testing tool ${toolName}`, () => {
const driver = setupTrunkToolDriver(dirName, {}, toolName, toolVersion, preCheck);
- testConfigs.forEach(({ command, expectedOut, expectedErr, expectedExitCode }) => {
+ testConfigs.forEach(({ command, expectedOut, expectedErr, expectedExitCode, stdin }) => {
conditionalTest(skipTestIf(toolVersion), command.join(" "), async () => {
- const { stdout, stderr, exitCode } = await driver.runTool(command);
+ const { stdout, stderr, exitCode } = await driver.runTool(command, stdin);
expect(stdout).toContain(expectedOut);
expect(stderr).toContain(expectedErr);
expect(exitCode).toEqual(expectedExitCode);
@@ -836,6 +839,7 @@ export const linterFmtTest = ({
snapshotPath,
);
registerFailureMode("assertion_failure");
+ // trunk-ignore(eslint/@typescript-eslint/no-non-null-assertion)
expect(fs.readFileSync(testRunResult.targetPath!, "utf-8")).toMatchSpecificSnapshot(
snapshotPath,
);
diff --git a/tests/parse/index.ts b/tests/parse/index.ts
index 210e45f49..3a4bd4602 100644
--- a/tests/parse/index.ts
+++ b/tests/parse/index.ts
@@ -16,6 +16,9 @@ const RESULTS_FILE = path.resolve(REPO_ROOT, "results.json");
const FAILURES_FILE = path.resolve(REPO_ROOT, "failures.json");
const RERUN_FILE = path.resolve(REPO_ROOT, "reruns.txt");
+// TODO(Tyler): Remove this blocklist once eslint-friendly release is out.
+const VALIDATED_LINTER_BLOCKLIST = ["eslint"];
+
const RUN_ID = process.env.RUN_ID ?? "";
const TEST_REF = process.env.TEST_REF ?? "latest release";
const GITHUB_REPOSITORY = process.env.GITHUB_REPOSITORY ?? "missing_repo";
@@ -323,7 +326,11 @@ const writeTestResults = (testResults: TestResultSummary) => {
const pluginVersion = PLUGIN_VERSION;
const validatedVersions = Array.from(testResults.testResults).reduce(
(accumulator: ValidatedVersion[], [linter, { version, testResultStatus }]) => {
- if (testResultStatus === "passed" && version) {
+ if (
+ testResultStatus === "passed" &&
+ version &&
+ !VALIDATED_LINTER_BLOCKLIST.includes(linter)
+ ) {
const additionalValidatedVersion: ValidatedVersion = { linter, version };
return accumulator.concat([additionalValidatedVersion]);
}
diff --git a/tests/repo_tests/config_check.test.ts b/tests/repo_tests/config_check.test.ts
index bd364d848..183d9f86a 100644
--- a/tests/repo_tests/config_check.test.ts
+++ b/tests/repo_tests/config_check.test.ts
@@ -7,7 +7,6 @@ import { osTimeoutMultiplier, REPO_ROOT } from "tests/utils";
// trunk-ignore-all(eslint/@typescript-eslint/no-unsafe-assignment)
// trunk-ignore-all(eslint/@typescript-eslint/no-unsafe-member-access)
// trunk-ignore-all(eslint/@typescript-eslint/no-unsafe-call)
-// trunk-ignore-all(eslint/@typescript-eslint/no-unsafe-argument)
// trunk-ignore-all(eslint/@typescript-eslint/no-unsafe-return)
jest.setTimeout(300000 * osTimeoutMultiplier);
@@ -25,7 +24,7 @@ describe("Global config health check", () => {
setupTrunk: true,
// NOTE: This version should be kept compatible in lockstep with the `required_trunk_version` in plugin.yaml
// IfChange
- trunkVersion: "1.21.1-beta.20",
+ trunkVersion: "1.22.2-beta.5",
// ThenChange plugin.yaml
});
@@ -173,75 +172,3 @@ describe("Global config health check", () => {
`);
});
});
-
-/**
- * This test validates that only explicitly enumerated linters are recommended by default.
- */
-describe("Explicitly enabled healthcheck", () => {
- // Step 1: Define test setup and teardown
- const driver = setupLintDriver(REPO_ROOT, {
- setupGit: false,
- setupTrunk: true,
- });
-
- // Step 2: Validate that no plugin linters or actions are explicitly enabled
- it("validate explicitly enabled actions and linters", async () => {
- // Remove user.yaml if it exists, since it could affect the enabled set.
- // Specifying force avoid errors being thrown if it doesn't exist.
- fs.rmSync(path.resolve(driver.getSandbox(), ".trunk/user.yaml"), {
- force: true,
- });
-
- const compositeConfig = await driver.getFullTrunkConfig();
- const lintDefinitions = compositeConfig.lint.definitions;
- const actionDefinitions = compositeConfig.actions.definitions;
-
- const explicitlyEnabledLinters = lintDefinitions.reduce(
- (enabledLinters: string[], definition: any) => {
- if (definition.enabled) {
- return enabledLinters.concat(definition.name);
- }
-
- if (definition.commands) {
- const commandEnabled = definition.commands.reduce((enabled: boolean, command: any) => {
- if (command.enabled) {
- return true;
- }
- return enabled;
- }, false);
- if (commandEnabled) {
- return enabledLinters.concat(definition.name);
- }
- }
-
- return enabledLinters;
- },
- [],
- );
-
- // No linters should be enabled by default
- expect(explicitlyEnabledLinters).toMatchInlineSnapshot(`[]`);
-
- const explicitlyEnabledActions = actionDefinitions.reduce(
- (enabledActions: string[], definition: any) => {
- if (definition.enabled) {
- return enabledActions.concat(definition.id);
- }
-
- return enabledActions;
- },
- [],
- );
-
- // Built-in actions only
- expect(explicitlyEnabledActions).toMatchInlineSnapshot(`
- [
- "trunk-cache-prune",
- "trunk-share-with-everyone",
- "trunk-single-player-auto-upgrade",
- "trunk-single-player-auto-on-upgrade",
- "trunk-whoami",
- ]
- `);
- });
-});
diff --git a/tests/repo_tests/readme_inclusion.test.ts b/tests/repo_tests/readme_inclusion.test.ts
index c6a6dd452..60462d941 100644
--- a/tests/repo_tests/readme_inclusion.test.ts
+++ b/tests/repo_tests/readme_inclusion.test.ts
@@ -12,6 +12,7 @@ const readmeTableContents = readmeContents.substring(
);
const reducedReadmeContents = readmeTableContents ? readmeTableContents : readmeContents;
+// TODO(Tyler): Move this to 'definition-checker' linter.
// This test asserts that all linters are included in the root README.md. This does not cover subcommands, and it assumes one
// directory per linter. Name mapping can be achieved through `abbreviationMapping`.
describe("All linters must be included in README.md", () => {
diff --git a/tests/repo_tests/test_coverage.test.ts b/tests/repo_tests/test_coverage.test.ts
deleted file mode 100644
index a74e1d051..000000000
--- a/tests/repo_tests/test_coverage.test.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-import { execSync } from "child_process";
-import fs from "fs";
-import path from "path";
-import { REPO_ROOT } from "tests/utils";
-
-// This should be empty unless we've agreed that certain linters can omit coverage. e.g. ["oxipng"]
-// Note that any linters without tests will not upload validated versions for `trunk upgrade`.
-const excludedLinters: string[] = [];
-
-// This test asserts that all linters have at least one test. All new linters are expected to have
-// test coverage. Review tests/README.md for testing guidelines. Prefer using npm test for indirection
-// in this test so that we get an accurate list of all tests, regardless of any changes to the test spec
-// in jest.config.json.
-describe("All linters must have tests", () => {
- // Find all tests detected by jest
- const stdout = execSync("npm test -- --listTests", { cwd: REPO_ROOT }).toString();
- const testFiles = stdout
- .split("\n")
- .filter((file) => file.startsWith("/") || file.match(/[A-Z]:\\/))
- .map((file) => path.relative(REPO_ROOT, file));
-
- // Key the tests by their linter subdirectory
- const testDirMap = testFiles.reduce((accumulator: Map, file: string) => {
- const linterSubdir =
- process.platform === "win32" ? file.match(/linters\\[^\\]+/) : file.match(/linters\/[^/]+/);
- if (linterSubdir) {
- const matches = accumulator.get(linterSubdir[0]) ?? [];
- accumulator.set(linterSubdir[0], [...matches, file]);
- }
- return accumulator;
- }, new Map());
- const testDirObject = Object.fromEntries(testDirMap);
-
- // Find all linter subdirectories
- const linterDir = path.resolve(REPO_ROOT, "linters");
- const linters = fs
- .readdirSync(linterDir)
- .filter((file) => fs.lstatSync(path.resolve(linterDir, file)).isDirectory());
-
- // Assert that each linter subdirectory has a test (excluding an explicit subset)
- linters
- .filter((linter) => !excludedLinters.includes(linter))
- .forEach((linter) => {
- // trunk-ignore(eslint/jest/valid-title)
- it(linter, () => {
- const linterSubdir = path.join("linters", linter);
- expect(testDirObject).toHaveProperty(linterSubdir);
- });
- });
-});
diff --git a/tests/repo_tests/valid_package_download.test.ts b/tests/repo_tests/valid_package_download.test.ts
index b2278909e..3e8c1c31f 100644
--- a/tests/repo_tests/valid_package_download.test.ts
+++ b/tests/repo_tests/valid_package_download.test.ts
@@ -3,6 +3,7 @@ import path from "path";
import { REPO_ROOT } from "tests/utils";
import { parseYaml } from "tests/utils/trunk_config";
+// TODO(Tyler): Move this to 'definition-checker' linter.
// These linters use go or rust downloads.
const excludedLinters: string[] = [
"clippy",
diff --git a/tests/reporter/index.js b/tests/reporter/index.js
index 71479f9d7..b13da7823 100644
--- a/tests/reporter/index.js
+++ b/tests/reporter/index.js
@@ -1,4 +1,3 @@
-// trunk-ignore-all(eslint)
const path = require("path");
const tsNode = require("ts-node");
diff --git a/tests/types/index.ts b/tests/types/index.ts
index 5f0868dfb..d2e8c1cfe 100644
--- a/tests/types/index.ts
+++ b/tests/types/index.ts
@@ -70,13 +70,13 @@ export interface FileIssue {
level: string;
// bucket: string;
issueClass: string;
- // below_threshold: boolean;
linter: string;
targetType: string;
targetPath?: string;
autofixOptions?: Autofix[];
ranges?: any[];
issueUrl: string;
+ belowThreshold?: boolean;
}
/**
diff --git a/tests/utils/index.ts b/tests/utils/index.ts
index ba4c26a84..7e8135752 100644
--- a/tests/utils/index.ts
+++ b/tests/utils/index.ts
@@ -165,7 +165,7 @@ export const getSnapshotPathForAssert = (
let closestMatchPath;
for (const snapshotName of availableSnapshots) {
const match = snapshotName.match(snapshotFileRegex);
- if (match && match.groups) {
+ if (match?.groups) {
const snapshotVersion = match.groups.version;
const comparator = versionGreaterThanOrEqual ?? semver.gte;
if (
diff --git a/tests/utils/landing_state.ts b/tests/utils/landing_state.ts
index a306170c8..4a325fd2d 100644
--- a/tests/utils/landing_state.ts
+++ b/tests/utils/landing_state.ts
@@ -30,6 +30,7 @@ const extractLintActionFields = ({
paths: _paths,
...rest
}: LintAction): LintAction => ({
+ // trunk-ignore(eslint/@typescript-eslint/no-non-null-assertion)
paths: _paths.map((originalPath) => normalizePlatformPath(originalPath)!),
...rest,
});
@@ -39,6 +40,7 @@ const extractTaskFailureFields = (
{ detailPath, message, ...rest }: TaskFailure,
): TaskFailure => ({
...rest,
+ // trunk-ignore(eslint/@typescript-eslint/no-non-null-assertion)
message: normalizePlatformPath(message)!,
details: detailPath
? fs.readFileSync(path.resolve(sandboxPath, detailPath), { encoding: "utf-8" })
@@ -76,6 +78,7 @@ const normalizeMessage = (message?: string) =>
.replace(".dup.", ".")
.trim();
+// trunk-ignore(eslint/@typescript-eslint/no-non-null-assertion)
const normalizeFile = (file: string) => normalizePlatformPath(file.replace(".dup.", "."))!;
const normalizeRange = ({ filePath: _filePath = undefined, ...rest }) => ({
@@ -98,7 +101,7 @@ const normalizeIssues = ({
};
if (_ranges) {
// trunk-ignore(eslint/@typescript-eslint/no-unsafe-argument)
- ret["ranges"] = _ranges.map((range) => normalizeRange(range));
+ ret.ranges = _ranges.map((range) => normalizeRange(range));
}
if (_autofixOptions.length > 0) {
ret.autofixOptions = _autofixOptions.map(normalizeAutofix);
@@ -114,13 +117,14 @@ const extractLandingStateFields = (
sandboxPath: string,
{ issues = [], unformattedFiles = [], lintActions = [], taskFailures = [] }: LandingState,
) =>
- {
+ ({
issues: sort(issues.map(normalizeIssues)).asc((issue) => [
issue.file,
issue.line,
issue.column,
issue.code,
issue.message,
+ issue.belowThreshold,
]),
unformattedFiles: sort(unformattedFiles.map(normalizeIssues)).asc((issue) => [
issue.file,
@@ -139,7 +143,7 @@ const extractLandingStateFields = (
taskFailures: sort(
taskFailures.map((failure) => extractTaskFailureFields(sandboxPath, failure)),
).asc((failure) => [failure.name, failure.message]),
- };
+ }) as LandingState;
/**
* Extract the LandingState from an input `json`, returning a deterministic landing state
diff --git a/tests/utils/trunk_config.ts b/tests/utils/trunk_config.ts
index f514d76f7..5e8e98764 100644
--- a/tests/utils/trunk_config.ts
+++ b/tests/utils/trunk_config.ts
@@ -16,7 +16,7 @@ export const parseYaml = (filePath: string): any => {
* Return the yaml result of parsing the .trunk/trunk.yaml in a specified repo root.
*/
export const getTrunkConfig = (repoRoot: string): any => {
- const trunkYamlPath = path.resolve(repoRoot ?? "", ".trunk/trunk.yaml");
+ const trunkYamlPath = path.resolve(repoRoot, ".trunk/trunk.yaml");
return parseYaml(trunkYamlPath);
};
@@ -26,6 +26,6 @@ export const getTrunkConfig = (repoRoot: string): any => {
*/
export const getTrunkVersion = (): string => {
// trunk-ignore(eslint/@typescript-eslint/no-unsafe-member-access)
- const repoCliVersion = getTrunkConfig(REPO_ROOT).cli.version as string;
+ const repoCliVersion = getTrunkConfig(REPO_ROOT).cli.version as string | undefined;
return ARGS.cliVersion ?? repoCliVersion ?? "bad-version";
};
diff --git a/tools/diff-so-fancy/diff_so_fancy.test.ts b/tools/diff-so-fancy/diff_so_fancy.test.ts
index eafc51d19..457174c53 100644
--- a/tools/diff-so-fancy/diff_so_fancy.test.ts
+++ b/tools/diff-so-fancy/diff_so_fancy.test.ts
@@ -1,6 +1,34 @@
-import { toolInstallTest } from "tests";
+import { makeToolTestConfig, toolTest } from "tests";
-toolInstallTest({
+const sampleDiff = `diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml
+index dc4f1f8..fb8fe54 100644
+--- a/.trunk/trunk.yaml
++++ b/.trunk/trunk.yaml
+@@ -13,3 +13,6 @@ lint:
+ - node_modules/**
+ - .trunk/configs/**
+ - .gitattributes
++tools:
++ enabled:
++ - diff-so-fancy@1.4.3`;
+
+let exitCode = 25;
+if (process.platform === "darwin") {
+ exitCode = 102;
+} else if (process.platform === "win32") {
+ exitCode = 0;
+}
+// diff-so-fancy returns a nonzero exit code for its version command, so we have to
+// use the custom test constructor.
+toolTest({
toolName: "diff-so-fancy",
toolVersion: "1.4.3",
+ testConfigs: [
+ makeToolTestConfig({
+ command: ["diff-so-fancy"],
+ expectedExitCode: exitCode,
+ expectedOut: "modified:",
+ stdin: sampleDiff,
+ }),
+ ],
});
diff --git a/tools/difft/plugin.yaml b/tools/difft/plugin.yaml
index eb0eb016f..ad295dc69 100644
--- a/tools/difft/plugin.yaml
+++ b/tools/difft/plugin.yaml
@@ -20,3 +20,6 @@ tools:
download: difft
known_good_version: 0.56.1
shims: [difft]
+ health_checks:
+ - command: difft --version
+ parse_regex: Difftastic ${semver}
diff --git a/tools/docker-credential-ecr-login/docker-credential-ecr-login.test.ts b/tools/docker-credential-ecr-login/docker-credential-ecr-login.test.ts
new file mode 100644
index 000000000..5239aecb7
--- /dev/null
+++ b/tools/docker-credential-ecr-login/docker-credential-ecr-login.test.ts
@@ -0,0 +1,12 @@
+import { makeToolTestConfig, toolTest } from "tests";
+
+toolTest({
+ toolName: "docker-credential-ecr-login",
+ toolVersion: "0.8.0",
+ testConfigs: [
+ makeToolTestConfig({
+ command: ["docker-credential-ecr-login", "-v"],
+ expectedOut: "Version: 0.8.0",
+ }),
+ ],
+});
diff --git a/tools/docker-credential-ecr-login/plugin.yaml b/tools/docker-credential-ecr-login/plugin.yaml
new file mode 100644
index 000000000..e2fa0a70d
--- /dev/null
+++ b/tools/docker-credential-ecr-login/plugin.yaml
@@ -0,0 +1,24 @@
+version: 0.1
+downloads:
+ - name: docker-credential-ecr-login
+ executable: true
+ downloads:
+ - os:
+ linux: linux
+ macos: darwin
+ cpu:
+ x86_64: amd64
+ arm_64: arm64
+ url: https://amazon-ecr-credential-helper-releases.s3.us-east-2.amazonaws.com/${version}/${os}-${cpu}/docker-credential-ecr-login
+ - os:
+ windows: windows
+ cpu:
+ x86_64: amd64
+ arm_64: arm64
+ url: https://amazon-ecr-credential-helper-releases.s3.us-east-2.amazonaws.com/${version}/windows-${cpu}/docker-credential-ecr-login.exe
+tools:
+ definitions:
+ - name: docker-credential-ecr-login
+ download: docker-credential-ecr-login
+ known_good_version: 0.8.0
+ shims: [docker-credential-ecr-login]
diff --git a/tools/gk/gk.test.ts b/tools/gk/gk.test.ts
index 15d0f0a1f..347cfd8a9 100644
--- a/tools/gk/gk.test.ts
+++ b/tools/gk/gk.test.ts
@@ -1,6 +1,8 @@
-import { toolInstallTest } from "tests";
+import { makeToolTestConfig, toolTest } from "tests";
-toolInstallTest({
+// No version command for gk
+toolTest({
toolName: "gk",
toolVersion: "1.2.2",
+ testConfigs: [makeToolTestConfig({ command: ["gk", "-h"], expectedErr: "Usage" })],
});
diff --git a/tools/goreleaser/goreleaser.test.ts b/tools/goreleaser/goreleaser.test.ts
index 9f798e884..6e6b8e8f8 100644
--- a/tools/goreleaser/goreleaser.test.ts
+++ b/tools/goreleaser/goreleaser.test.ts
@@ -1,10 +1,13 @@
-import { toolInstallTest } from "tests";
+import { makeToolTestConfig, toolTest } from "tests";
import { osTimeoutMultiplier } from "tests/utils";
// This install is quite slow on some Linux machines.
jest.setTimeout(600000 * osTimeoutMultiplier);
-toolInstallTest({
+toolTest({
toolName: "goreleaser",
toolVersion: "1.25.1",
+ testConfigs: [
+ makeToolTestConfig({ command: ["goreleaser", "--version"], expectedOut: "goreleaser" }),
+ ],
});
diff --git a/tools/paratest/paratest.test.ts b/tools/paratest/paratest.test.ts
new file mode 100644
index 000000000..accc678bb
--- /dev/null
+++ b/tools/paratest/paratest.test.ts
@@ -0,0 +1,8 @@
+import { toolInstallTest } from "tests";
+import { skipOS } from "tests/utils";
+
+toolInstallTest({
+ toolName: "paratest",
+ toolVersion: "7.4.3",
+ skipTestIf: skipOS(["win32"]),
+});
diff --git a/tools/paratest/plugin.yaml b/tools/paratest/plugin.yaml
new file mode 100644
index 000000000..5c2eac5b8
--- /dev/null
+++ b/tools/paratest/plugin.yaml
@@ -0,0 +1,14 @@
+version: 0.1
+tools:
+ definitions:
+ - name: paratest
+ runtime: php
+ package: brianium/paratest
+ known_good_version: 7.4.3
+ shims: [paratest]
+ environment:
+ - name: PATH
+ list: ["${tool}/vendor/bin"]
+ health_checks:
+ - command: paratest --version
+ parse_regex: ParaTest v${semver}
diff --git a/tools/phpunit/phpunit.test.ts b/tools/phpunit/phpunit.test.ts
new file mode 100644
index 000000000..b9e94bbd0
--- /dev/null
+++ b/tools/phpunit/phpunit.test.ts
@@ -0,0 +1,8 @@
+import { toolInstallTest } from "tests";
+import { skipOS } from "tests/utils";
+
+toolInstallTest({
+ toolName: "phpunit",
+ toolVersion: "11.1.3",
+ skipTestIf: skipOS(["win32"]),
+});
diff --git a/tools/phpunit/plugin.yaml b/tools/phpunit/plugin.yaml
new file mode 100644
index 000000000..542a1a89a
--- /dev/null
+++ b/tools/phpunit/plugin.yaml
@@ -0,0 +1,14 @@
+version: 0.1
+tools:
+ definitions:
+ - name: phpunit
+ runtime: php
+ package: phpunit/phpunit
+ known_good_version: 11.1.3
+ shims: [phpunit]
+ environment:
+ - name: PATH
+ list: ["${tool}/vendor/bin"]
+ health_checks:
+ - command: phpunit --version
+ parse_regex: PHPUnit ${semver}
diff --git a/tools/tsc/plugin.yaml b/tools/tsc/plugin.yaml
index cce3dd100..1935cf23a 100644
--- a/tools/tsc/plugin.yaml
+++ b/tools/tsc/plugin.yaml
@@ -6,3 +6,6 @@ tools:
package: typescript
known_good_version: 5.2.2
shims: [tsc]
+ health_checks:
+ - command: tsc --version
+ parse_regex: Version ${semver}
diff --git a/tools/yq/plugin.yaml b/tools/yq/plugin.yaml
index 79c05943c..f3519367a 100644
--- a/tools/yq/plugin.yaml
+++ b/tools/yq/plugin.yaml
@@ -8,16 +8,19 @@ downloads:
cpu:
x86_64: 386
arm_64: arm64
- url: https://github.com/mikefarah/yq/releases/download/v${version}/yq_${os}_${cpu}.tar.gz
+ url: https://github.com/mikefarah/yq/releases/download/v${version}/yq_${os}_${cpu}
- os:
windows: windows
cpu:
x86_64: 386
arm_64: arm64
- url: https://github.com/mikefarah/yq/releases/download/v${version}/yq_${os}_${cpu}.zip
+ url: https://github.com/mikefarah/yq/releases/download/v${version}/yq_${os}_${cpu}.exe
tools:
definitions:
- name: yq
download: yq
- known_good_version: 4.40.5
+ known_good_version: 4.44.1
shims: [yq]
+ health_checks:
+ - command: yq --version
+ parse_regex: version v${semver}
diff --git a/tools/yq/yq.test.ts b/tools/yq/yq.test.ts
index 33c1d3c48..c256e557a 100644
--- a/tools/yq/yq.test.ts
+++ b/tools/yq/yq.test.ts
@@ -1,6 +1,7 @@
import { toolInstallTest } from "tests";
+// The binary name varies by platform so we can't roll this into a health_check as-is.
toolInstallTest({
toolName: "yq",
- toolVersion: "4.40.5",
+ toolVersion: "4.44.1",
});