├── .eslintrc.js
├── .github
├── dependabot.yml
└── workflows
│ ├── add-to-project.yaml
│ ├── ci.yaml
│ ├── create-release-pr.yaml
│ ├── draft-release.yaml
│ ├── emergency-review-bypass.yaml
│ ├── notify-approval-bypass.yaml
│ └── pr-title.yaml
├── .gitignore
├── .nvmrc
├── .prettierignore
├── LICENSE
├── Makefile
├── README.md
├── action.yml
├── dist
├── main.js
└── main.js.map
├── package-lock.json
├── package.json
├── src
├── buf.ts
├── error.ts
├── main.ts
└── run.ts
└── tsconfig.json
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | // Copyright 2020-2025 Buf Technologies, Inc.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | const ignoreFiles = [".eslintrc.js", "dist/**/*"];
16 |
17 | module.exports = {
18 | env: {
19 | es2022: true,
20 | },
21 | ignorePatterns: ignoreFiles,
22 | extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
23 | parser: "@typescript-eslint/parser",
24 | parserOptions: {
25 | project: "tsconfig.json",
26 | tsconfigRootDir: __dirname,
27 | ecmaFeatures: {
28 | jsx: true,
29 | },
30 | ecmaVersion: 12,
31 | sourceType: "module",
32 | },
33 | plugins: ["@typescript-eslint"],
34 | rules: {},
35 | };
36 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: "npm"
4 | directory: "/"
5 | schedule:
6 | interval: "monthly"
7 |
--------------------------------------------------------------------------------
/.github/workflows/add-to-project.yaml:
--------------------------------------------------------------------------------
1 | name: Add issues and PRs to project
2 |
3 | on:
4 | issues:
5 | types:
6 | - opened
7 | - reopened
8 | - transferred
9 | pull_request_target:
10 | types:
11 | - opened
12 | - reopened
13 | issue_comment:
14 | types:
15 | - created
16 |
17 | jobs:
18 | call-workflow-add-to-project:
19 | name: Call workflow to add issue to project
20 | uses: bufbuild/base-workflows/.github/workflows/add-to-project.yaml@main
21 | secrets: inherit
22 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yaml:
--------------------------------------------------------------------------------
1 | name: ci
2 | on:
3 | push:
4 | branches: [main]
5 | pull_request:
6 | branches: [main]
7 | workflow_dispatch: {} # support manual runs
8 | # Prevent writing to the repository using the CI token.
9 | # Ref: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#permissions
10 | permissions: read-all
11 | jobs:
12 | ci:
13 | runs-on: ubuntu-latest
14 | steps:
15 | - name: Checkout Code
16 | uses: actions/checkout@v4
17 | with:
18 | fetch-depth: 1
19 | - name: Install Go
20 | uses: actions/setup-go@v4
21 | with:
22 | go-version: 1.22
23 | - name: Install Node
24 | uses: actions/setup-node@v4
25 | with:
26 | node-version: 20
27 | - name: Generate
28 | run: make generate && make checkgenerate
29 | - name: Build
30 | run: make build && make checkgenerate
31 | - name: Validate Action
32 | uses: ./
33 | - run: buf --version
34 |
--------------------------------------------------------------------------------
/.github/workflows/create-release-pr.yaml:
--------------------------------------------------------------------------------
1 | name: Create Release PR
2 | on:
3 | workflow_dispatch:
4 | inputs:
5 | version:
6 | type: string
7 | description: The version you intend to release (eg x.y.z)
8 | required: true
9 | permissions:
10 | contents: write
11 | pull-requests: write
12 | env:
13 | VERSION: ${{ github.event.inputs.version }}
14 | APP_ID: 257262
15 | jobs:
16 | update_version:
17 | runs-on: ubuntu-latest
18 | if: ${{ github.event.inputs.version != '' }}
19 | steps:
20 | - name: Validate input version
21 | if: ${{ startsWith(github.event.inputs.version, 'v') }}
22 | run: |
23 | echo "error: version must not start with 'v'."
24 | exit 1
25 | - name: Get GitHub app token
26 | uses: actions/create-github-app-token@v1
27 | id: app_token
28 | with:
29 | app-id: ${{ env.APP_ID }}
30 | private-key: ${{ secrets.TOKEN_EXCHANGE_GH_APP_PRIVATE_KEY }}
31 | - name: Checkout repository code
32 | uses: actions/checkout@v3
33 | with:
34 | token: ${{ steps.app_token.outputs.token }}
35 | - uses: actions/setup-go@v3
36 | with:
37 | go-version: '^1.19.x'
38 | - name: Update docs Version
39 | run: make updateversion VERSION=${{env.VERSION}}
40 | - name: Create PR
41 | run: |
42 | git config user.name "${{ github.actor }}"
43 | git config user.email "${{ github.actor }}@users.noreply.github.com"
44 | BRANCH="release/v${VERSION}"
45 | git switch -C ${BRANCH}
46 | git add .
47 | git commit -m "Update version to ${VERSION}"
48 | git push --set-upstream origin --force ${BRANCH}
49 | gh pr create --title "Release v${VERSION}" --body "Release prepared for ${VERSION}"
50 | env:
51 | GH_TOKEN: ${{ steps.app_token.outputs.token }}
52 |
--------------------------------------------------------------------------------
/.github/workflows/draft-release.yaml:
--------------------------------------------------------------------------------
1 | name: Draft Release
2 | on:
3 | pull_request:
4 | types: [closed]
5 | workflow_dispatch:
6 | inputs:
7 | version:
8 | type: string
9 | description: The released CLI version without 'v'. For example, 1.0.0.
10 | permissions:
11 | contents: write
12 | env:
13 | APP_ID: 257262
14 | jobs:
15 | draft_release:
16 | runs-on: ubuntu-latest
17 | if: ${{ github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'release')) }}
18 | steps:
19 | - name: Validate input version
20 | if: ${{ startsWith(github.event.inputs.version, 'v') }}
21 | run: |
22 | echo "error: version must not start with 'v'."
23 | exit 1
24 | - name: Set VERSION variable
25 | # The head ref looks like release/v1.0.0, and we need to trim the string up to the `/v`.
26 | run: |
27 | VERSION="${{ github.event.inputs.version || github.head_ref}}"
28 | echo "VERSION=${VERSION##*/v}" >> $GITHUB_ENV
29 | - name: Get GitHub app token
30 | uses: actions/create-github-app-token@v1
31 | id: app_token
32 | with:
33 | app-id: ${{ env.APP_ID }}
34 | private-key: ${{ secrets.TOKEN_EXCHANGE_GH_APP_PRIVATE_KEY }}
35 | - name: Checkout repository code
36 | uses: actions/checkout@v3
37 | with:
38 | token: ${{ steps.app_token.outputs.token }}
39 | fetch-depth: 0
40 | - name: Sync v1 branch
41 | run: |
42 | git fetch origin
43 | git switch v1
44 | git merge origin/main
45 | git push origin v1
46 | - name: Release
47 | run: gh release create --draft --title "v${VERSION}" "v${VERSION}"
48 | env:
49 | GH_TOKEN: ${{ steps.app_token.outputs.token }}
50 |
--------------------------------------------------------------------------------
/.github/workflows/emergency-review-bypass.yaml:
--------------------------------------------------------------------------------
1 | name: Bypass review in case of emergency
2 | on:
3 | pull_request:
4 | types:
5 | - labeled
6 | permissions:
7 | pull-requests: write
8 | jobs:
9 | approve:
10 | if: github.event.label.name == 'Emergency Bypass Review'
11 | uses: bufbuild/base-workflows/.github/workflows/emergency-review-bypass.yaml@main
12 | secrets: inherit
13 |
--------------------------------------------------------------------------------
/.github/workflows/notify-approval-bypass.yaml:
--------------------------------------------------------------------------------
1 | name: PR Approval Bypass Notifier
2 | on:
3 | pull_request:
4 | types:
5 | - closed
6 | branches:
7 | - main
8 | permissions:
9 | pull-requests: read
10 | jobs:
11 | approval:
12 | uses: bufbuild/base-workflows/.github/workflows/notify-approval-bypass.yaml@main
13 | secrets: inherit
14 |
--------------------------------------------------------------------------------
/.github/workflows/pr-title.yaml:
--------------------------------------------------------------------------------
1 | name: Lint PR Title
2 | # Prevent writing to the repository using the CI token.
3 | # Ref: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#permissions
4 | permissions:
5 | pull-requests: read
6 | on:
7 | pull_request:
8 | # By default, a workflow only runs when a pull_request's activity type is opened,
9 | # synchronize, or reopened. We explicity override here so that PR titles are
10 | # re-linted when the PR text content is edited.
11 | types:
12 | - opened
13 | - edited
14 | - reopened
15 | - synchronize
16 | jobs:
17 | lint:
18 | uses: bufbuild/base-workflows/.github/workflows/pr-title.yaml@main
19 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
2 | .tmp/
3 | .vscode/
4 | node_modules/
5 |
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | 20.11.1
2 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | /dist
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright 2020-2025 Buf Technologies, Inc.
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | # See https://tech.davis-hansson.com/p/make/
2 | SHELL := bash
3 | .DELETE_ON_ERROR:
4 | .SHELLFLAGS := -eu -o pipefail -c
5 | .DEFAULT_GOAL := all
6 | MAKEFLAGS += --warn-undefined-variables
7 | MAKEFLAGS += --no-builtin-rules
8 | MAKEFLAGS += --no-print-directory
9 | BIN := .tmp/bin
10 | COPYRIGHT_YEARS := 2020-2025
11 | LICENSE_IGNORE := -e dist\/
12 |
13 | UNAME_OS := $(shell uname -s)
14 |
15 | ifeq ($(UNAME_OS),Darwin)
16 | SED_I := sed -i ''
17 | else
18 | SED_I := sed -i
19 | endif
20 |
21 | PHONY: all
22 | all: ## Format, Lint and build (default)
23 | $(MAKE) build
24 |
25 | .PHONY: format
26 | format: node_modules
27 | npm run format
28 |
29 | .PHONY: lint
30 | lint: node_modules
31 | npm run lint
32 |
33 | .PHONY: build
34 | build: node_modules format lint
35 | npm run build
36 |
37 | .PHONY: updateversion
38 | updateversion:
39 | ifndef VERSION
40 | $(error "VERSION must be set")
41 | endif
42 | $(SED_I) "s/default: '[0-9].[0-9][0-9]*\.[0-9][0-9]*[-rc0-9]*'/default: '$(VERSION)'/g" action.yml
43 | $(SED_I) "s/[0-9].[0-9][0-9]*\.[0-9][0-9]*[-rc0-9]*/$(VERSION)/g" README.md
44 |
45 | .PHONY: generate
46 | generate: $(BIN)/license-header ## Regenerate licenses
47 | @# We want to operate on a list of modified and new files, excluding
48 | @# deleted and ignored files. git-ls-files can't do this alone. comm -23 takes
49 | @# two files and prints the union, dropping lines common to both (-3) and
50 | @# those only in the second file (-2). We make one git-ls-files call for
51 | @# the modified, cached, and new (--others) files, and a second for the
52 | @# deleted files.
53 | comm -23 \
54 | <(git ls-files --cached --modified --others --no-empty-directory --exclude-standard | sort -u | grep -v $(LICENSE_IGNORE) ) \
55 | <(git ls-files --deleted | sort -u) | \
56 | xargs $(BIN)/license-header \
57 | --license-type apache \
58 | --copyright-holder "Buf Technologies, Inc." \
59 | --year-range "$(COPYRIGHT_YEARS)"
60 |
61 | .PHONY: checkgenerate
62 | checkgenerate:
63 | @# Used in CI to verify that `make generate` doesn't produce a diff.
64 | test -z "$$(git status --porcelain | tee /dev/stderr)"
65 |
66 | node_modules: package-lock.json
67 | npm ci
68 |
69 | $(BIN)/license-header: Makefile
70 | @mkdir -p $(@D)
71 | GOBIN=$(abspath $(@D)) go install \
72 | github.com/bufbuild/buf/private/pkg/licenseheader/cmd/license-header@v1.6.0
73 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # `buf-setup-action`
2 |
3 | > [!NOTE]
4 | > This action has been deprecated in favor of the [`buf-action`][buf-action] which combines the
5 | > functionality of `buf-setup-action` with the ability to run Buf commands in the same step. Please
6 | > see the [migration guide][buf-action-migration] for more information.
7 |
8 | This [Action] installs the [`buf`][buf-cli] CLI in your GitHub Actions pipelines so that it can be
9 | used by other Buf Actions:
10 |
11 | * [`buf-breaking-action`][buf-breaking]
12 | * [`buf-lint-action`][buf-lint]
13 | * [`buf-push-action`][buf-push]
14 |
15 | After `buf-setup-action` is run, the `buf` command is available to other Actions in the pipeline's
16 | `PATH`. You can also use the `buf` command directly inside of workflow steps.
17 |
18 | ## Usage
19 |
20 | Here's an example usage of `buf-setup-action`:
21 |
22 | ```yaml
23 | steps:
24 | # Run `git checkout`
25 | - uses: actions/checkout@v2
26 | # Install the `buf` CLI
27 | - uses: bufbuild/buf-setup-action@v1.50.0
28 | # Ensure that `buf` is installed
29 | - run: buf --version
30 | ```
31 |
32 | ## Configuration
33 |
34 | ### Input
35 |
36 | You can configure `buf-setup-action` with these parameters:
37 |
38 | | Parameter | Description | Default |
39 | |:---------------|:---------------------------------------------------|:-------------------|
40 | | `version` | The version of the [`buf` CLI][buf-cli] to install | [`v1.50.0`][version] |
41 | | `github_token` | The GitHub token to use when making API requests | |
42 | | `buf_user` | The username to use for logging into Buf Schema registry. | |
43 | | `buf_api_token` | The API token to use for logging into Buf Schema registry. | |
44 | | `buf_domain` | The domain of the Buf Schema Registry to login to. | buf.build |
45 |
46 | > These parameters are derived from [`action.yml`](./action.yml).
47 | #### Version
48 |
49 | If `version` is unspecified, the latest version of `buf` is installed:
50 |
51 | ```yaml
52 | steps:
53 | - uses: actions/checkout@v2
54 | # Installs latest
55 | - uses: bufbuild/buf-setup-action@v1.50.0
56 | - run: buf --version
57 | ```
58 |
59 | Use the `version` parameter to pin to a specific version:
60 |
61 | ```yaml
62 | steps:
63 | - uses: actions/checkout@v2
64 | # Installs version 1.50.0
65 | - uses: bufbuild/buf-setup-action@v1.50.0
66 | with:
67 | version: 1.50.0
68 | # Should output 1.50.0
69 | - run: buf --version
70 | ```
71 |
72 | To resolve the latest release from GitHub, you can specify `latest`, but this is **not**
73 | recommended:
74 |
75 | ```yaml
76 | steps:
77 | - uses: actions/checkout@v2
78 | - uses: bufbuild/buf-setup-action@v1.50.0
79 | with:
80 | version: latest
81 | - run: buf --version
82 | ```
83 |
84 | #### GitHub token
85 |
86 | Optionally, you can supply a `github_token` input so that any GitHub API requests are authenticated.
87 | This may prevent rate limit issues when running on GitHub hosted runners:
88 |
89 | ```yaml
90 | steps:
91 | - uses: bufbuild/buf-setup-action@v1.50.0
92 | with:
93 | github_token: ${{ github.token }}
94 | ```
95 |
96 | The token will need the `contents:read` permission to be able to read the latest release and tag of buf. This permission
97 | is granted [by default](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)
98 | to the `GITHUB_TOKEN` that is created for every workflow run of a Github Action, so it is not necessary to explicitly specify the permission. However,
99 | you must still pass the token to the action:
100 |
101 | ```yaml
102 | steps:
103 | - uses: bufbuild/buf-setup-action@v1.50.0
104 | with:
105 | github_token: ${{ secrets.GITHUB_TOKEN }}
106 | ```
107 |
108 | #### Buf username and Buf API token
109 |
110 | If you are using Private [Remote Packages](https://docs.buf.build/bsr/remote-packages/overview) you may need to authenticate the entire system to successfully communicate with the [Buf Schema Registry][bsr]. To achieve this, supply both `buf_user` and `buf_api_token`. This will add your auth credentials to the `.netrc` and allow you to access the BSR from anything in your `PATH`.
111 |
112 | ```yaml
113 | steps:
114 | - uses: bufbuild/buf-setup-action@v1.50.0
115 | with:
116 | buf_user: ${{ secrets.buf_user }}
117 | buf_api_token: ${{ secrets.buf_api_token }}
118 | ```
119 |
120 | ### Other Configurations
121 |
122 | #### Buf token
123 |
124 | When calling the `buf` command directly from a workflow step, you may need to authenticate with the
125 | BSR. You can authenticate by setting the [`BUF_TOKEN`][buf-token]
126 | environment variable. If you have a GitHub secret called `BUF_TOKEN`, for example, you can set the
127 | `BUF_TOKEN` environment variable like this:
128 |
129 | ```yaml
130 | env:
131 | BUF_TOKEN: ${{ secrets.BUF_TOKEN }}
132 | ```
133 |
134 | Note that this only authenticate you with the `buf` cli. You cannot access your private remote
135 | packages in BSR. If you need to access your private remote packages, supply the username and Buf
136 | API Token [as parameters](#buf-username-and-buf-api-token).
137 |
138 | #### Buf domain
139 |
140 | If you are working with a private BSR then you can set the `buf_domain` input to the domain of
141 | your instance. Please ensure that you are using a token created on your instance (e.g. `https://buf.example.com/settings/user`) and not from the public BSR at `https://buf.build`.
142 |
143 |
144 | #### Installing `protoc`
145 |
146 | In most cases, you _don't_ need to install [`protoc`][protoc] for Buf's GitHub Actions, but some
147 | `protoc` plugins are built into the compiler itself. If you need to execute one of these plugins,
148 | you do need to install `protoc` alongside `buf`:
149 |
150 | * `protoc-gen-cpp` (C++)
151 | * `protoc-gen-csharp` (C#)
152 | * `protoc-gen-java` (Java)
153 | * `protoc-gen-js` (JavaScript)
154 | * `protoc-gen-objc` (Objective-C)
155 | * `protoc-gen-php` (PHP)
156 | * `protoc-gen-python` (Python)
157 | * `protoc-gen-ruby` (Ruby)
158 | * `protoc-gen-kotlin` (Kotlin)
159 |
160 | In these cases, `buf` executes `protoc` as a plugin but continues to use its own [internal
161 | compiler][compiler].
162 |
163 | The `buf-setup-action` doesn't install `protoc` for you, but there are other options you can
164 | use, such as [`setup-protoc`][setup-protoc]. To configure it alongside `buf`:
165 |
166 | ```yaml
167 | steps:
168 | # Run `git checkout`
169 | - uses: actions/checkout@v2
170 | # Install the `buf` CLI
171 | - uses: bufbuild/buf-setup-action@v1.50.0
172 | # Install `protoc`
173 | - uses: arduino/setup-protoc@v1
174 | ```
175 |
176 | [action]: https://docs.github.com/actions
177 | [buf-action]: https://github.com/bufbuild/buf-action
178 | [buf-action-migration]: https://github.com/bufbuild/buf-action/blob/main/MIGRATION.md#buf-setup-action
179 | [breaking]: https://docs.buf.build/breaking
180 | [bsr]: https://docs.buf.build/bsr
181 | [buf-breaking]: https://github.com/marketplace/actions/buf-breaking
182 | [buf-cli]: https://github.com/bufbuild/buf
183 | [buf-lint]: https://github.com/marketplace/actions/buf-lint
184 | [buf-push]: https://github.com/marketplace/actions/buf-push
185 | [buf-token]: https://docs.buf.build/bsr/authentication#buf_token
186 | [compiler]: https://docs.buf.build/build/internal-compiler
187 | [protoc]: https://github.com/protocolbuffers/protobuf#protocol-compiler-installation
188 | [setup-protoc]: https://github.com/marketplace/actions/setup-protoc
189 | [version]: https://github.com/bufbuild/buf/releases/tag/v1.50.0
190 |
--------------------------------------------------------------------------------
/action.yml:
--------------------------------------------------------------------------------
1 | name: "buf-setup"
2 | description: >
3 | Install buf for use in other jobs.
4 | branding:
5 | icon: play
6 | color: blue
7 | inputs:
8 | version:
9 | description: The version of buf to set up.
10 | required: false
11 | default: '1.50.0'
12 | github_token:
13 | description: The GitHub token to use when making API requests.
14 | required: false
15 | buf_user:
16 | description: The username to use for logging into Buf Schema registry.
17 | required: false
18 | buf_api_token:
19 | description: The API token to use for logging into Buf Schema registry.
20 | required: false
21 | buf_domain:
22 | description: The domain of the Buf Schema Registry to login to.
23 | required: false
24 | default: 'buf.build'
25 | runs:
26 | using: "node20"
27 | main: "./dist/main.js"
28 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "buf-setup",
3 | "version": "1.6.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "buf-setup",
9 | "version": "1.6.0",
10 | "dependencies": {
11 | "@actions/core": "^1.10.1",
12 | "@actions/github": "^6.0.0",
13 | "@actions/io": "^1.1.3",
14 | "@actions/tool-cache": "^2.0.1",
15 | "https-proxy-agent": "^7.0.2",
16 | "semver": "^6.3.1"
17 | },
18 | "devDependencies": {
19 | "@types/node": "^20.11.19",
20 | "@typescript-eslint/eslint-plugin": "^7.0.1",
21 | "@typescript-eslint/parser": "^7.0.1",
22 | "esbuild": "^0.20.1",
23 | "prettier": "^3.2.5",
24 | "typescript": "^5.3.3"
25 | },
26 | "engines": {
27 | "node": ">=20",
28 | "npm": ">=8"
29 | }
30 | },
31 | "node_modules/@aashutoshrathi/word-wrap": {
32 | "version": "1.2.6",
33 | "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
34 | "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
35 | "dev": true,
36 | "peer": true,
37 | "engines": {
38 | "node": ">=0.10.0"
39 | }
40 | },
41 | "node_modules/@actions/core": {
42 | "version": "1.10.1",
43 | "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz",
44 | "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==",
45 | "dependencies": {
46 | "@actions/http-client": "^2.0.1",
47 | "uuid": "^8.3.2"
48 | }
49 | },
50 | "node_modules/@actions/core/node_modules/uuid": {
51 | "version": "8.3.2",
52 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
53 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
54 | "bin": {
55 | "uuid": "dist/bin/uuid"
56 | }
57 | },
58 | "node_modules/@actions/exec": {
59 | "version": "1.1.1",
60 | "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz",
61 | "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==",
62 | "dependencies": {
63 | "@actions/io": "^1.0.1"
64 | }
65 | },
66 | "node_modules/@actions/github": {
67 | "version": "6.0.0",
68 | "resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.0.tgz",
69 | "integrity": "sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==",
70 | "dependencies": {
71 | "@actions/http-client": "^2.2.0",
72 | "@octokit/core": "^5.0.1",
73 | "@octokit/plugin-paginate-rest": "^9.0.0",
74 | "@octokit/plugin-rest-endpoint-methods": "^10.0.0"
75 | }
76 | },
77 | "node_modules/@actions/http-client": {
78 | "version": "2.2.0",
79 | "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz",
80 | "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==",
81 | "dependencies": {
82 | "tunnel": "^0.0.6",
83 | "undici": "^5.25.4"
84 | }
85 | },
86 | "node_modules/@actions/io": {
87 | "version": "1.1.3",
88 | "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz",
89 | "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q=="
90 | },
91 | "node_modules/@actions/tool-cache": {
92 | "version": "2.0.1",
93 | "resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-2.0.1.tgz",
94 | "integrity": "sha512-iPU+mNwrbA8jodY8eyo/0S/QqCKDajiR8OxWTnSk/SnYg0sj8Hp4QcUEVC1YFpHWXtrfbQrE13Jz4k4HXJQKcA==",
95 | "dependencies": {
96 | "@actions/core": "^1.2.6",
97 | "@actions/exec": "^1.0.0",
98 | "@actions/http-client": "^2.0.1",
99 | "@actions/io": "^1.1.1",
100 | "semver": "^6.1.0",
101 | "uuid": "^3.3.2"
102 | }
103 | },
104 | "node_modules/@esbuild/aix-ppc64": {
105 | "version": "0.20.1",
106 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz",
107 | "integrity": "sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==",
108 | "cpu": [
109 | "ppc64"
110 | ],
111 | "dev": true,
112 | "optional": true,
113 | "os": [
114 | "aix"
115 | ],
116 | "engines": {
117 | "node": ">=12"
118 | }
119 | },
120 | "node_modules/@esbuild/android-arm": {
121 | "version": "0.20.1",
122 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.1.tgz",
123 | "integrity": "sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==",
124 | "cpu": [
125 | "arm"
126 | ],
127 | "dev": true,
128 | "optional": true,
129 | "os": [
130 | "android"
131 | ],
132 | "engines": {
133 | "node": ">=12"
134 | }
135 | },
136 | "node_modules/@esbuild/android-arm64": {
137 | "version": "0.20.1",
138 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz",
139 | "integrity": "sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==",
140 | "cpu": [
141 | "arm64"
142 | ],
143 | "dev": true,
144 | "optional": true,
145 | "os": [
146 | "android"
147 | ],
148 | "engines": {
149 | "node": ">=12"
150 | }
151 | },
152 | "node_modules/@esbuild/android-x64": {
153 | "version": "0.20.1",
154 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.1.tgz",
155 | "integrity": "sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==",
156 | "cpu": [
157 | "x64"
158 | ],
159 | "dev": true,
160 | "optional": true,
161 | "os": [
162 | "android"
163 | ],
164 | "engines": {
165 | "node": ">=12"
166 | }
167 | },
168 | "node_modules/@esbuild/darwin-arm64": {
169 | "version": "0.20.1",
170 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz",
171 | "integrity": "sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==",
172 | "cpu": [
173 | "arm64"
174 | ],
175 | "dev": true,
176 | "optional": true,
177 | "os": [
178 | "darwin"
179 | ],
180 | "engines": {
181 | "node": ">=12"
182 | }
183 | },
184 | "node_modules/@esbuild/darwin-x64": {
185 | "version": "0.20.1",
186 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz",
187 | "integrity": "sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==",
188 | "cpu": [
189 | "x64"
190 | ],
191 | "dev": true,
192 | "optional": true,
193 | "os": [
194 | "darwin"
195 | ],
196 | "engines": {
197 | "node": ">=12"
198 | }
199 | },
200 | "node_modules/@esbuild/freebsd-arm64": {
201 | "version": "0.20.1",
202 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz",
203 | "integrity": "sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==",
204 | "cpu": [
205 | "arm64"
206 | ],
207 | "dev": true,
208 | "optional": true,
209 | "os": [
210 | "freebsd"
211 | ],
212 | "engines": {
213 | "node": ">=12"
214 | }
215 | },
216 | "node_modules/@esbuild/freebsd-x64": {
217 | "version": "0.20.1",
218 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz",
219 | "integrity": "sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==",
220 | "cpu": [
221 | "x64"
222 | ],
223 | "dev": true,
224 | "optional": true,
225 | "os": [
226 | "freebsd"
227 | ],
228 | "engines": {
229 | "node": ">=12"
230 | }
231 | },
232 | "node_modules/@esbuild/linux-arm": {
233 | "version": "0.20.1",
234 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz",
235 | "integrity": "sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==",
236 | "cpu": [
237 | "arm"
238 | ],
239 | "dev": true,
240 | "optional": true,
241 | "os": [
242 | "linux"
243 | ],
244 | "engines": {
245 | "node": ">=12"
246 | }
247 | },
248 | "node_modules/@esbuild/linux-arm64": {
249 | "version": "0.20.1",
250 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz",
251 | "integrity": "sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==",
252 | "cpu": [
253 | "arm64"
254 | ],
255 | "dev": true,
256 | "optional": true,
257 | "os": [
258 | "linux"
259 | ],
260 | "engines": {
261 | "node": ">=12"
262 | }
263 | },
264 | "node_modules/@esbuild/linux-ia32": {
265 | "version": "0.20.1",
266 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz",
267 | "integrity": "sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==",
268 | "cpu": [
269 | "ia32"
270 | ],
271 | "dev": true,
272 | "optional": true,
273 | "os": [
274 | "linux"
275 | ],
276 | "engines": {
277 | "node": ">=12"
278 | }
279 | },
280 | "node_modules/@esbuild/linux-loong64": {
281 | "version": "0.20.1",
282 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz",
283 | "integrity": "sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==",
284 | "cpu": [
285 | "loong64"
286 | ],
287 | "dev": true,
288 | "optional": true,
289 | "os": [
290 | "linux"
291 | ],
292 | "engines": {
293 | "node": ">=12"
294 | }
295 | },
296 | "node_modules/@esbuild/linux-mips64el": {
297 | "version": "0.20.1",
298 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz",
299 | "integrity": "sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==",
300 | "cpu": [
301 | "mips64el"
302 | ],
303 | "dev": true,
304 | "optional": true,
305 | "os": [
306 | "linux"
307 | ],
308 | "engines": {
309 | "node": ">=12"
310 | }
311 | },
312 | "node_modules/@esbuild/linux-ppc64": {
313 | "version": "0.20.1",
314 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz",
315 | "integrity": "sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==",
316 | "cpu": [
317 | "ppc64"
318 | ],
319 | "dev": true,
320 | "optional": true,
321 | "os": [
322 | "linux"
323 | ],
324 | "engines": {
325 | "node": ">=12"
326 | }
327 | },
328 | "node_modules/@esbuild/linux-riscv64": {
329 | "version": "0.20.1",
330 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz",
331 | "integrity": "sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==",
332 | "cpu": [
333 | "riscv64"
334 | ],
335 | "dev": true,
336 | "optional": true,
337 | "os": [
338 | "linux"
339 | ],
340 | "engines": {
341 | "node": ">=12"
342 | }
343 | },
344 | "node_modules/@esbuild/linux-s390x": {
345 | "version": "0.20.1",
346 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz",
347 | "integrity": "sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==",
348 | "cpu": [
349 | "s390x"
350 | ],
351 | "dev": true,
352 | "optional": true,
353 | "os": [
354 | "linux"
355 | ],
356 | "engines": {
357 | "node": ">=12"
358 | }
359 | },
360 | "node_modules/@esbuild/linux-x64": {
361 | "version": "0.20.1",
362 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz",
363 | "integrity": "sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==",
364 | "cpu": [
365 | "x64"
366 | ],
367 | "dev": true,
368 | "optional": true,
369 | "os": [
370 | "linux"
371 | ],
372 | "engines": {
373 | "node": ">=12"
374 | }
375 | },
376 | "node_modules/@esbuild/netbsd-x64": {
377 | "version": "0.20.1",
378 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz",
379 | "integrity": "sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==",
380 | "cpu": [
381 | "x64"
382 | ],
383 | "dev": true,
384 | "optional": true,
385 | "os": [
386 | "netbsd"
387 | ],
388 | "engines": {
389 | "node": ">=12"
390 | }
391 | },
392 | "node_modules/@esbuild/openbsd-x64": {
393 | "version": "0.20.1",
394 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz",
395 | "integrity": "sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==",
396 | "cpu": [
397 | "x64"
398 | ],
399 | "dev": true,
400 | "optional": true,
401 | "os": [
402 | "openbsd"
403 | ],
404 | "engines": {
405 | "node": ">=12"
406 | }
407 | },
408 | "node_modules/@esbuild/sunos-x64": {
409 | "version": "0.20.1",
410 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz",
411 | "integrity": "sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==",
412 | "cpu": [
413 | "x64"
414 | ],
415 | "dev": true,
416 | "optional": true,
417 | "os": [
418 | "sunos"
419 | ],
420 | "engines": {
421 | "node": ">=12"
422 | }
423 | },
424 | "node_modules/@esbuild/win32-arm64": {
425 | "version": "0.20.1",
426 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz",
427 | "integrity": "sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==",
428 | "cpu": [
429 | "arm64"
430 | ],
431 | "dev": true,
432 | "optional": true,
433 | "os": [
434 | "win32"
435 | ],
436 | "engines": {
437 | "node": ">=12"
438 | }
439 | },
440 | "node_modules/@esbuild/win32-ia32": {
441 | "version": "0.20.1",
442 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz",
443 | "integrity": "sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==",
444 | "cpu": [
445 | "ia32"
446 | ],
447 | "dev": true,
448 | "optional": true,
449 | "os": [
450 | "win32"
451 | ],
452 | "engines": {
453 | "node": ">=12"
454 | }
455 | },
456 | "node_modules/@esbuild/win32-x64": {
457 | "version": "0.20.1",
458 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz",
459 | "integrity": "sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==",
460 | "cpu": [
461 | "x64"
462 | ],
463 | "dev": true,
464 | "optional": true,
465 | "os": [
466 | "win32"
467 | ],
468 | "engines": {
469 | "node": ">=12"
470 | }
471 | },
472 | "node_modules/@eslint-community/eslint-utils": {
473 | "version": "4.4.0",
474 | "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
475 | "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
476 | "dev": true,
477 | "dependencies": {
478 | "eslint-visitor-keys": "^3.3.0"
479 | },
480 | "engines": {
481 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
482 | },
483 | "peerDependencies": {
484 | "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
485 | }
486 | },
487 | "node_modules/@eslint-community/regexpp": {
488 | "version": "4.10.0",
489 | "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
490 | "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
491 | "dev": true,
492 | "engines": {
493 | "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
494 | }
495 | },
496 | "node_modules/@eslint/eslintrc": {
497 | "version": "2.1.4",
498 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
499 | "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
500 | "dev": true,
501 | "peer": true,
502 | "dependencies": {
503 | "ajv": "^6.12.4",
504 | "debug": "^4.3.2",
505 | "espree": "^9.6.0",
506 | "globals": "^13.19.0",
507 | "ignore": "^5.2.0",
508 | "import-fresh": "^3.2.1",
509 | "js-yaml": "^4.1.0",
510 | "minimatch": "^3.1.2",
511 | "strip-json-comments": "^3.1.1"
512 | },
513 | "engines": {
514 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
515 | },
516 | "funding": {
517 | "url": "https://opencollective.com/eslint"
518 | }
519 | },
520 | "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
521 | "version": "1.1.11",
522 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
523 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
524 | "dev": true,
525 | "peer": true,
526 | "dependencies": {
527 | "balanced-match": "^1.0.0",
528 | "concat-map": "0.0.1"
529 | }
530 | },
531 | "node_modules/@eslint/eslintrc/node_modules/minimatch": {
532 | "version": "3.1.2",
533 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
534 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
535 | "dev": true,
536 | "peer": true,
537 | "dependencies": {
538 | "brace-expansion": "^1.1.7"
539 | },
540 | "engines": {
541 | "node": "*"
542 | }
543 | },
544 | "node_modules/@eslint/js": {
545 | "version": "8.56.0",
546 | "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz",
547 | "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
548 | "dev": true,
549 | "peer": true,
550 | "engines": {
551 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
552 | }
553 | },
554 | "node_modules/@fastify/busboy": {
555 | "version": "2.1.0",
556 | "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz",
557 | "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==",
558 | "engines": {
559 | "node": ">=14"
560 | }
561 | },
562 | "node_modules/@humanwhocodes/config-array": {
563 | "version": "0.11.14",
564 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
565 | "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
566 | "dev": true,
567 | "peer": true,
568 | "dependencies": {
569 | "@humanwhocodes/object-schema": "^2.0.2",
570 | "debug": "^4.3.1",
571 | "minimatch": "^3.0.5"
572 | },
573 | "engines": {
574 | "node": ">=10.10.0"
575 | }
576 | },
577 | "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": {
578 | "version": "1.1.11",
579 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
580 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
581 | "dev": true,
582 | "peer": true,
583 | "dependencies": {
584 | "balanced-match": "^1.0.0",
585 | "concat-map": "0.0.1"
586 | }
587 | },
588 | "node_modules/@humanwhocodes/config-array/node_modules/minimatch": {
589 | "version": "3.1.2",
590 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
591 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
592 | "dev": true,
593 | "peer": true,
594 | "dependencies": {
595 | "brace-expansion": "^1.1.7"
596 | },
597 | "engines": {
598 | "node": "*"
599 | }
600 | },
601 | "node_modules/@humanwhocodes/module-importer": {
602 | "version": "1.0.1",
603 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
604 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
605 | "dev": true,
606 | "peer": true,
607 | "engines": {
608 | "node": ">=12.22"
609 | },
610 | "funding": {
611 | "type": "github",
612 | "url": "https://github.com/sponsors/nzakas"
613 | }
614 | },
615 | "node_modules/@humanwhocodes/object-schema": {
616 | "version": "2.0.2",
617 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
618 | "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
619 | "dev": true,
620 | "peer": true
621 | },
622 | "node_modules/@nodelib/fs.scandir": {
623 | "version": "2.1.5",
624 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
625 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
626 | "dev": true,
627 | "dependencies": {
628 | "@nodelib/fs.stat": "2.0.5",
629 | "run-parallel": "^1.1.9"
630 | },
631 | "engines": {
632 | "node": ">= 8"
633 | }
634 | },
635 | "node_modules/@nodelib/fs.stat": {
636 | "version": "2.0.5",
637 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
638 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
639 | "dev": true,
640 | "engines": {
641 | "node": ">= 8"
642 | }
643 | },
644 | "node_modules/@nodelib/fs.walk": {
645 | "version": "1.2.8",
646 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
647 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
648 | "dev": true,
649 | "dependencies": {
650 | "@nodelib/fs.scandir": "2.1.5",
651 | "fastq": "^1.6.0"
652 | },
653 | "engines": {
654 | "node": ">= 8"
655 | }
656 | },
657 | "node_modules/@octokit/auth-token": {
658 | "version": "4.0.0",
659 | "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
660 | "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
661 | "engines": {
662 | "node": ">= 18"
663 | }
664 | },
665 | "node_modules/@octokit/core": {
666 | "version": "5.1.0",
667 | "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.1.0.tgz",
668 | "integrity": "sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==",
669 | "dependencies": {
670 | "@octokit/auth-token": "^4.0.0",
671 | "@octokit/graphql": "^7.0.0",
672 | "@octokit/request": "^8.0.2",
673 | "@octokit/request-error": "^5.0.0",
674 | "@octokit/types": "^12.0.0",
675 | "before-after-hook": "^2.2.0",
676 | "universal-user-agent": "^6.0.0"
677 | },
678 | "engines": {
679 | "node": ">= 18"
680 | }
681 | },
682 | "node_modules/@octokit/endpoint": {
683 | "version": "9.0.4",
684 | "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.4.tgz",
685 | "integrity": "sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==",
686 | "dependencies": {
687 | "@octokit/types": "^12.0.0",
688 | "universal-user-agent": "^6.0.0"
689 | },
690 | "engines": {
691 | "node": ">= 18"
692 | }
693 | },
694 | "node_modules/@octokit/graphql": {
695 | "version": "7.0.2",
696 | "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.2.tgz",
697 | "integrity": "sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==",
698 | "dependencies": {
699 | "@octokit/request": "^8.0.1",
700 | "@octokit/types": "^12.0.0",
701 | "universal-user-agent": "^6.0.0"
702 | },
703 | "engines": {
704 | "node": ">= 18"
705 | }
706 | },
707 | "node_modules/@octokit/openapi-types": {
708 | "version": "19.1.0",
709 | "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.1.0.tgz",
710 | "integrity": "sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw=="
711 | },
712 | "node_modules/@octokit/plugin-paginate-rest": {
713 | "version": "9.1.5",
714 | "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz",
715 | "integrity": "sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==",
716 | "dependencies": {
717 | "@octokit/types": "^12.4.0"
718 | },
719 | "engines": {
720 | "node": ">= 18"
721 | },
722 | "peerDependencies": {
723 | "@octokit/core": ">=5"
724 | }
725 | },
726 | "node_modules/@octokit/plugin-rest-endpoint-methods": {
727 | "version": "10.3.0",
728 | "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.3.0.tgz",
729 | "integrity": "sha512-c/fjpoHispRvBZuRoTVt/uALg7pXa9RQbXWJiDMk6NDkGNomuAZG7YuYYpZoxeoXv+kVRjIDTsO0e1z0pei+PQ==",
730 | "dependencies": {
731 | "@octokit/types": "^12.4.0"
732 | },
733 | "engines": {
734 | "node": ">= 18"
735 | },
736 | "peerDependencies": {
737 | "@octokit/core": ">=5"
738 | }
739 | },
740 | "node_modules/@octokit/request": {
741 | "version": "8.2.0",
742 | "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.2.0.tgz",
743 | "integrity": "sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ==",
744 | "dependencies": {
745 | "@octokit/endpoint": "^9.0.0",
746 | "@octokit/request-error": "^5.0.0",
747 | "@octokit/types": "^12.0.0",
748 | "universal-user-agent": "^6.0.0"
749 | },
750 | "engines": {
751 | "node": ">= 18"
752 | }
753 | },
754 | "node_modules/@octokit/request-error": {
755 | "version": "5.0.1",
756 | "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.1.tgz",
757 | "integrity": "sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==",
758 | "dependencies": {
759 | "@octokit/types": "^12.0.0",
760 | "deprecation": "^2.0.0",
761 | "once": "^1.4.0"
762 | },
763 | "engines": {
764 | "node": ">= 18"
765 | }
766 | },
767 | "node_modules/@octokit/types": {
768 | "version": "12.5.0",
769 | "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.5.0.tgz",
770 | "integrity": "sha512-YJEKcb0KkJlIUNU/zjnZwHEP8AoVh/OoIcP/1IyR4UHxExz7fzpe/a8IG4wBtQi7QDEqiomVLX88S6FpxxAJtg==",
771 | "dependencies": {
772 | "@octokit/openapi-types": "^19.1.0"
773 | }
774 | },
775 | "node_modules/@types/json-schema": {
776 | "version": "7.0.15",
777 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
778 | "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
779 | "dev": true
780 | },
781 | "node_modules/@types/node": {
782 | "version": "20.11.19",
783 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz",
784 | "integrity": "sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==",
785 | "dev": true,
786 | "dependencies": {
787 | "undici-types": "~5.26.4"
788 | }
789 | },
790 | "node_modules/@types/semver": {
791 | "version": "7.5.7",
792 | "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz",
793 | "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==",
794 | "dev": true
795 | },
796 | "node_modules/@typescript-eslint/eslint-plugin": {
797 | "version": "7.0.1",
798 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.1.tgz",
799 | "integrity": "sha512-OLvgeBv3vXlnnJGIAgCLYKjgMEU+wBGj07MQ/nxAaON+3mLzX7mJbhRYrVGiVvFiXtwFlkcBa/TtmglHy0UbzQ==",
800 | "dev": true,
801 | "dependencies": {
802 | "@eslint-community/regexpp": "^4.5.1",
803 | "@typescript-eslint/scope-manager": "7.0.1",
804 | "@typescript-eslint/type-utils": "7.0.1",
805 | "@typescript-eslint/utils": "7.0.1",
806 | "@typescript-eslint/visitor-keys": "7.0.1",
807 | "debug": "^4.3.4",
808 | "graphemer": "^1.4.0",
809 | "ignore": "^5.2.4",
810 | "natural-compare": "^1.4.0",
811 | "semver": "^7.5.4",
812 | "ts-api-utils": "^1.0.1"
813 | },
814 | "engines": {
815 | "node": "^16.0.0 || >=18.0.0"
816 | },
817 | "funding": {
818 | "type": "opencollective",
819 | "url": "https://opencollective.com/typescript-eslint"
820 | },
821 | "peerDependencies": {
822 | "@typescript-eslint/parser": "^7.0.0",
823 | "eslint": "^8.56.0"
824 | },
825 | "peerDependenciesMeta": {
826 | "typescript": {
827 | "optional": true
828 | }
829 | }
830 | },
831 | "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
832 | "version": "7.6.0",
833 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
834 | "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
835 | "dev": true,
836 | "dependencies": {
837 | "lru-cache": "^6.0.0"
838 | },
839 | "bin": {
840 | "semver": "bin/semver.js"
841 | },
842 | "engines": {
843 | "node": ">=10"
844 | }
845 | },
846 | "node_modules/@typescript-eslint/parser": {
847 | "version": "7.0.1",
848 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.0.1.tgz",
849 | "integrity": "sha512-8GcRRZNzaHxKzBPU3tKtFNing571/GwPBeCvmAUw0yBtfE2XVd0zFKJIMSWkHJcPQi0ekxjIts6L/rrZq5cxGQ==",
850 | "dev": true,
851 | "dependencies": {
852 | "@typescript-eslint/scope-manager": "7.0.1",
853 | "@typescript-eslint/types": "7.0.1",
854 | "@typescript-eslint/typescript-estree": "7.0.1",
855 | "@typescript-eslint/visitor-keys": "7.0.1",
856 | "debug": "^4.3.4"
857 | },
858 | "engines": {
859 | "node": "^16.0.0 || >=18.0.0"
860 | },
861 | "funding": {
862 | "type": "opencollective",
863 | "url": "https://opencollective.com/typescript-eslint"
864 | },
865 | "peerDependencies": {
866 | "eslint": "^8.56.0"
867 | },
868 | "peerDependenciesMeta": {
869 | "typescript": {
870 | "optional": true
871 | }
872 | }
873 | },
874 | "node_modules/@typescript-eslint/scope-manager": {
875 | "version": "7.0.1",
876 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.0.1.tgz",
877 | "integrity": "sha512-v7/T7As10g3bcWOOPAcbnMDuvctHzCFYCG/8R4bK4iYzdFqsZTbXGln0cZNVcwQcwewsYU2BJLay8j0/4zOk4w==",
878 | "dev": true,
879 | "dependencies": {
880 | "@typescript-eslint/types": "7.0.1",
881 | "@typescript-eslint/visitor-keys": "7.0.1"
882 | },
883 | "engines": {
884 | "node": "^16.0.0 || >=18.0.0"
885 | },
886 | "funding": {
887 | "type": "opencollective",
888 | "url": "https://opencollective.com/typescript-eslint"
889 | }
890 | },
891 | "node_modules/@typescript-eslint/type-utils": {
892 | "version": "7.0.1",
893 | "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.0.1.tgz",
894 | "integrity": "sha512-YtT9UcstTG5Yqy4xtLiClm1ZpM/pWVGFnkAa90UfdkkZsR1eP2mR/1jbHeYp8Ay1l1JHPyGvoUYR6o3On5Nhmw==",
895 | "dev": true,
896 | "dependencies": {
897 | "@typescript-eslint/typescript-estree": "7.0.1",
898 | "@typescript-eslint/utils": "7.0.1",
899 | "debug": "^4.3.4",
900 | "ts-api-utils": "^1.0.1"
901 | },
902 | "engines": {
903 | "node": "^16.0.0 || >=18.0.0"
904 | },
905 | "funding": {
906 | "type": "opencollective",
907 | "url": "https://opencollective.com/typescript-eslint"
908 | },
909 | "peerDependencies": {
910 | "eslint": "^8.56.0"
911 | },
912 | "peerDependenciesMeta": {
913 | "typescript": {
914 | "optional": true
915 | }
916 | }
917 | },
918 | "node_modules/@typescript-eslint/types": {
919 | "version": "7.0.1",
920 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.0.1.tgz",
921 | "integrity": "sha512-uJDfmirz4FHib6ENju/7cz9SdMSkeVvJDK3VcMFvf/hAShg8C74FW+06MaQPODHfDJp/z/zHfgawIJRjlu0RLg==",
922 | "dev": true,
923 | "engines": {
924 | "node": "^16.0.0 || >=18.0.0"
925 | },
926 | "funding": {
927 | "type": "opencollective",
928 | "url": "https://opencollective.com/typescript-eslint"
929 | }
930 | },
931 | "node_modules/@typescript-eslint/typescript-estree": {
932 | "version": "7.0.1",
933 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.0.1.tgz",
934 | "integrity": "sha512-SO9wHb6ph0/FN5OJxH4MiPscGah5wjOd0RRpaLvuBv9g8565Fgu0uMySFEPqwPHiQU90yzJ2FjRYKGrAhS1xig==",
935 | "dev": true,
936 | "dependencies": {
937 | "@typescript-eslint/types": "7.0.1",
938 | "@typescript-eslint/visitor-keys": "7.0.1",
939 | "debug": "^4.3.4",
940 | "globby": "^11.1.0",
941 | "is-glob": "^4.0.3",
942 | "minimatch": "9.0.3",
943 | "semver": "^7.5.4",
944 | "ts-api-utils": "^1.0.1"
945 | },
946 | "engines": {
947 | "node": "^16.0.0 || >=18.0.0"
948 | },
949 | "funding": {
950 | "type": "opencollective",
951 | "url": "https://opencollective.com/typescript-eslint"
952 | },
953 | "peerDependenciesMeta": {
954 | "typescript": {
955 | "optional": true
956 | }
957 | }
958 | },
959 | "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
960 | "version": "7.6.0",
961 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
962 | "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
963 | "dev": true,
964 | "dependencies": {
965 | "lru-cache": "^6.0.0"
966 | },
967 | "bin": {
968 | "semver": "bin/semver.js"
969 | },
970 | "engines": {
971 | "node": ">=10"
972 | }
973 | },
974 | "node_modules/@typescript-eslint/utils": {
975 | "version": "7.0.1",
976 | "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.0.1.tgz",
977 | "integrity": "sha512-oe4his30JgPbnv+9Vef1h48jm0S6ft4mNwi9wj7bX10joGn07QRfqIqFHoMiajrtoU88cIhXf8ahwgrcbNLgPA==",
978 | "dev": true,
979 | "dependencies": {
980 | "@eslint-community/eslint-utils": "^4.4.0",
981 | "@types/json-schema": "^7.0.12",
982 | "@types/semver": "^7.5.0",
983 | "@typescript-eslint/scope-manager": "7.0.1",
984 | "@typescript-eslint/types": "7.0.1",
985 | "@typescript-eslint/typescript-estree": "7.0.1",
986 | "semver": "^7.5.4"
987 | },
988 | "engines": {
989 | "node": "^16.0.0 || >=18.0.0"
990 | },
991 | "funding": {
992 | "type": "opencollective",
993 | "url": "https://opencollective.com/typescript-eslint"
994 | },
995 | "peerDependencies": {
996 | "eslint": "^8.56.0"
997 | }
998 | },
999 | "node_modules/@typescript-eslint/utils/node_modules/semver": {
1000 | "version": "7.6.0",
1001 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
1002 | "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
1003 | "dev": true,
1004 | "dependencies": {
1005 | "lru-cache": "^6.0.0"
1006 | },
1007 | "bin": {
1008 | "semver": "bin/semver.js"
1009 | },
1010 | "engines": {
1011 | "node": ">=10"
1012 | }
1013 | },
1014 | "node_modules/@typescript-eslint/visitor-keys": {
1015 | "version": "7.0.1",
1016 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.0.1.tgz",
1017 | "integrity": "sha512-hwAgrOyk++RTXrP4KzCg7zB2U0xt7RUU0ZdMSCsqF3eKUwkdXUMyTb0qdCuji7VIbcpG62kKTU9M1J1c9UpFBw==",
1018 | "dev": true,
1019 | "dependencies": {
1020 | "@typescript-eslint/types": "7.0.1",
1021 | "eslint-visitor-keys": "^3.4.1"
1022 | },
1023 | "engines": {
1024 | "node": "^16.0.0 || >=18.0.0"
1025 | },
1026 | "funding": {
1027 | "type": "opencollective",
1028 | "url": "https://opencollective.com/typescript-eslint"
1029 | }
1030 | },
1031 | "node_modules/@ungap/structured-clone": {
1032 | "version": "1.2.0",
1033 | "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
1034 | "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
1035 | "dev": true,
1036 | "peer": true
1037 | },
1038 | "node_modules/acorn": {
1039 | "version": "8.11.3",
1040 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
1041 | "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
1042 | "dev": true,
1043 | "peer": true,
1044 | "bin": {
1045 | "acorn": "bin/acorn"
1046 | },
1047 | "engines": {
1048 | "node": ">=0.4.0"
1049 | }
1050 | },
1051 | "node_modules/acorn-jsx": {
1052 | "version": "5.3.2",
1053 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
1054 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
1055 | "dev": true,
1056 | "peer": true,
1057 | "peerDependencies": {
1058 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
1059 | }
1060 | },
1061 | "node_modules/agent-base": {
1062 | "version": "7.1.0",
1063 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
1064 | "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
1065 | "dependencies": {
1066 | "debug": "^4.3.4"
1067 | },
1068 | "engines": {
1069 | "node": ">= 14"
1070 | }
1071 | },
1072 | "node_modules/ajv": {
1073 | "version": "6.12.6",
1074 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
1075 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
1076 | "dev": true,
1077 | "peer": true,
1078 | "dependencies": {
1079 | "fast-deep-equal": "^3.1.1",
1080 | "fast-json-stable-stringify": "^2.0.0",
1081 | "json-schema-traverse": "^0.4.1",
1082 | "uri-js": "^4.2.2"
1083 | },
1084 | "funding": {
1085 | "type": "github",
1086 | "url": "https://github.com/sponsors/epoberezkin"
1087 | }
1088 | },
1089 | "node_modules/ansi-regex": {
1090 | "version": "5.0.1",
1091 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1092 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1093 | "dev": true,
1094 | "peer": true,
1095 | "engines": {
1096 | "node": ">=8"
1097 | }
1098 | },
1099 | "node_modules/ansi-styles": {
1100 | "version": "4.3.0",
1101 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1102 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1103 | "dev": true,
1104 | "peer": true,
1105 | "dependencies": {
1106 | "color-convert": "^2.0.1"
1107 | },
1108 | "engines": {
1109 | "node": ">=8"
1110 | },
1111 | "funding": {
1112 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1113 | }
1114 | },
1115 | "node_modules/argparse": {
1116 | "version": "2.0.1",
1117 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
1118 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
1119 | "dev": true,
1120 | "peer": true
1121 | },
1122 | "node_modules/array-union": {
1123 | "version": "2.1.0",
1124 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
1125 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
1126 | "dev": true,
1127 | "engines": {
1128 | "node": ">=8"
1129 | }
1130 | },
1131 | "node_modules/balanced-match": {
1132 | "version": "1.0.2",
1133 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
1134 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
1135 | "dev": true
1136 | },
1137 | "node_modules/before-after-hook": {
1138 | "version": "2.2.3",
1139 | "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
1140 | "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ=="
1141 | },
1142 | "node_modules/brace-expansion": {
1143 | "version": "2.0.1",
1144 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
1145 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
1146 | "dev": true,
1147 | "dependencies": {
1148 | "balanced-match": "^1.0.0"
1149 | }
1150 | },
1151 | "node_modules/braces": {
1152 | "version": "3.0.2",
1153 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
1154 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
1155 | "dev": true,
1156 | "dependencies": {
1157 | "fill-range": "^7.0.1"
1158 | },
1159 | "engines": {
1160 | "node": ">=8"
1161 | }
1162 | },
1163 | "node_modules/callsites": {
1164 | "version": "3.1.0",
1165 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
1166 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
1167 | "dev": true,
1168 | "peer": true,
1169 | "engines": {
1170 | "node": ">=6"
1171 | }
1172 | },
1173 | "node_modules/chalk": {
1174 | "version": "4.1.2",
1175 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
1176 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
1177 | "dev": true,
1178 | "peer": true,
1179 | "dependencies": {
1180 | "ansi-styles": "^4.1.0",
1181 | "supports-color": "^7.1.0"
1182 | },
1183 | "engines": {
1184 | "node": ">=10"
1185 | },
1186 | "funding": {
1187 | "url": "https://github.com/chalk/chalk?sponsor=1"
1188 | }
1189 | },
1190 | "node_modules/color-convert": {
1191 | "version": "2.0.1",
1192 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1193 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1194 | "dev": true,
1195 | "peer": true,
1196 | "dependencies": {
1197 | "color-name": "~1.1.4"
1198 | },
1199 | "engines": {
1200 | "node": ">=7.0.0"
1201 | }
1202 | },
1203 | "node_modules/color-name": {
1204 | "version": "1.1.4",
1205 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1206 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1207 | "dev": true,
1208 | "peer": true
1209 | },
1210 | "node_modules/concat-map": {
1211 | "version": "0.0.1",
1212 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1213 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
1214 | "dev": true,
1215 | "peer": true
1216 | },
1217 | "node_modules/cross-spawn": {
1218 | "version": "7.0.3",
1219 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
1220 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
1221 | "dev": true,
1222 | "peer": true,
1223 | "dependencies": {
1224 | "path-key": "^3.1.0",
1225 | "shebang-command": "^2.0.0",
1226 | "which": "^2.0.1"
1227 | },
1228 | "engines": {
1229 | "node": ">= 8"
1230 | }
1231 | },
1232 | "node_modules/debug": {
1233 | "version": "4.3.4",
1234 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1235 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1236 | "dependencies": {
1237 | "ms": "2.1.2"
1238 | },
1239 | "engines": {
1240 | "node": ">=6.0"
1241 | },
1242 | "peerDependenciesMeta": {
1243 | "supports-color": {
1244 | "optional": true
1245 | }
1246 | }
1247 | },
1248 | "node_modules/deep-is": {
1249 | "version": "0.1.4",
1250 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
1251 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
1252 | "dev": true,
1253 | "peer": true
1254 | },
1255 | "node_modules/deprecation": {
1256 | "version": "2.3.1",
1257 | "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
1258 | "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
1259 | },
1260 | "node_modules/dir-glob": {
1261 | "version": "3.0.1",
1262 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
1263 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
1264 | "dev": true,
1265 | "dependencies": {
1266 | "path-type": "^4.0.0"
1267 | },
1268 | "engines": {
1269 | "node": ">=8"
1270 | }
1271 | },
1272 | "node_modules/doctrine": {
1273 | "version": "3.0.0",
1274 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
1275 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
1276 | "dev": true,
1277 | "peer": true,
1278 | "dependencies": {
1279 | "esutils": "^2.0.2"
1280 | },
1281 | "engines": {
1282 | "node": ">=6.0.0"
1283 | }
1284 | },
1285 | "node_modules/esbuild": {
1286 | "version": "0.20.1",
1287 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz",
1288 | "integrity": "sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==",
1289 | "dev": true,
1290 | "hasInstallScript": true,
1291 | "bin": {
1292 | "esbuild": "bin/esbuild"
1293 | },
1294 | "engines": {
1295 | "node": ">=12"
1296 | },
1297 | "optionalDependencies": {
1298 | "@esbuild/aix-ppc64": "0.20.1",
1299 | "@esbuild/android-arm": "0.20.1",
1300 | "@esbuild/android-arm64": "0.20.1",
1301 | "@esbuild/android-x64": "0.20.1",
1302 | "@esbuild/darwin-arm64": "0.20.1",
1303 | "@esbuild/darwin-x64": "0.20.1",
1304 | "@esbuild/freebsd-arm64": "0.20.1",
1305 | "@esbuild/freebsd-x64": "0.20.1",
1306 | "@esbuild/linux-arm": "0.20.1",
1307 | "@esbuild/linux-arm64": "0.20.1",
1308 | "@esbuild/linux-ia32": "0.20.1",
1309 | "@esbuild/linux-loong64": "0.20.1",
1310 | "@esbuild/linux-mips64el": "0.20.1",
1311 | "@esbuild/linux-ppc64": "0.20.1",
1312 | "@esbuild/linux-riscv64": "0.20.1",
1313 | "@esbuild/linux-s390x": "0.20.1",
1314 | "@esbuild/linux-x64": "0.20.1",
1315 | "@esbuild/netbsd-x64": "0.20.1",
1316 | "@esbuild/openbsd-x64": "0.20.1",
1317 | "@esbuild/sunos-x64": "0.20.1",
1318 | "@esbuild/win32-arm64": "0.20.1",
1319 | "@esbuild/win32-ia32": "0.20.1",
1320 | "@esbuild/win32-x64": "0.20.1"
1321 | }
1322 | },
1323 | "node_modules/escape-string-regexp": {
1324 | "version": "4.0.0",
1325 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
1326 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
1327 | "dev": true,
1328 | "peer": true,
1329 | "engines": {
1330 | "node": ">=10"
1331 | },
1332 | "funding": {
1333 | "url": "https://github.com/sponsors/sindresorhus"
1334 | }
1335 | },
1336 | "node_modules/eslint": {
1337 | "version": "8.56.0",
1338 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz",
1339 | "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
1340 | "dev": true,
1341 | "peer": true,
1342 | "dependencies": {
1343 | "@eslint-community/eslint-utils": "^4.2.0",
1344 | "@eslint-community/regexpp": "^4.6.1",
1345 | "@eslint/eslintrc": "^2.1.4",
1346 | "@eslint/js": "8.56.0",
1347 | "@humanwhocodes/config-array": "^0.11.13",
1348 | "@humanwhocodes/module-importer": "^1.0.1",
1349 | "@nodelib/fs.walk": "^1.2.8",
1350 | "@ungap/structured-clone": "^1.2.0",
1351 | "ajv": "^6.12.4",
1352 | "chalk": "^4.0.0",
1353 | "cross-spawn": "^7.0.2",
1354 | "debug": "^4.3.2",
1355 | "doctrine": "^3.0.0",
1356 | "escape-string-regexp": "^4.0.0",
1357 | "eslint-scope": "^7.2.2",
1358 | "eslint-visitor-keys": "^3.4.3",
1359 | "espree": "^9.6.1",
1360 | "esquery": "^1.4.2",
1361 | "esutils": "^2.0.2",
1362 | "fast-deep-equal": "^3.1.3",
1363 | "file-entry-cache": "^6.0.1",
1364 | "find-up": "^5.0.0",
1365 | "glob-parent": "^6.0.2",
1366 | "globals": "^13.19.0",
1367 | "graphemer": "^1.4.0",
1368 | "ignore": "^5.2.0",
1369 | "imurmurhash": "^0.1.4",
1370 | "is-glob": "^4.0.0",
1371 | "is-path-inside": "^3.0.3",
1372 | "js-yaml": "^4.1.0",
1373 | "json-stable-stringify-without-jsonify": "^1.0.1",
1374 | "levn": "^0.4.1",
1375 | "lodash.merge": "^4.6.2",
1376 | "minimatch": "^3.1.2",
1377 | "natural-compare": "^1.4.0",
1378 | "optionator": "^0.9.3",
1379 | "strip-ansi": "^6.0.1",
1380 | "text-table": "^0.2.0"
1381 | },
1382 | "bin": {
1383 | "eslint": "bin/eslint.js"
1384 | },
1385 | "engines": {
1386 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1387 | },
1388 | "funding": {
1389 | "url": "https://opencollective.com/eslint"
1390 | }
1391 | },
1392 | "node_modules/eslint-scope": {
1393 | "version": "7.2.2",
1394 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
1395 | "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
1396 | "dev": true,
1397 | "peer": true,
1398 | "dependencies": {
1399 | "esrecurse": "^4.3.0",
1400 | "estraverse": "^5.2.0"
1401 | },
1402 | "engines": {
1403 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1404 | },
1405 | "funding": {
1406 | "url": "https://opencollective.com/eslint"
1407 | }
1408 | },
1409 | "node_modules/eslint-visitor-keys": {
1410 | "version": "3.4.3",
1411 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
1412 | "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
1413 | "dev": true,
1414 | "engines": {
1415 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1416 | },
1417 | "funding": {
1418 | "url": "https://opencollective.com/eslint"
1419 | }
1420 | },
1421 | "node_modules/eslint/node_modules/brace-expansion": {
1422 | "version": "1.1.11",
1423 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1424 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1425 | "dev": true,
1426 | "peer": true,
1427 | "dependencies": {
1428 | "balanced-match": "^1.0.0",
1429 | "concat-map": "0.0.1"
1430 | }
1431 | },
1432 | "node_modules/eslint/node_modules/minimatch": {
1433 | "version": "3.1.2",
1434 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1435 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1436 | "dev": true,
1437 | "peer": true,
1438 | "dependencies": {
1439 | "brace-expansion": "^1.1.7"
1440 | },
1441 | "engines": {
1442 | "node": "*"
1443 | }
1444 | },
1445 | "node_modules/espree": {
1446 | "version": "9.6.1",
1447 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
1448 | "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
1449 | "dev": true,
1450 | "peer": true,
1451 | "dependencies": {
1452 | "acorn": "^8.9.0",
1453 | "acorn-jsx": "^5.3.2",
1454 | "eslint-visitor-keys": "^3.4.1"
1455 | },
1456 | "engines": {
1457 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1458 | },
1459 | "funding": {
1460 | "url": "https://opencollective.com/eslint"
1461 | }
1462 | },
1463 | "node_modules/esquery": {
1464 | "version": "1.5.0",
1465 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
1466 | "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
1467 | "dev": true,
1468 | "peer": true,
1469 | "dependencies": {
1470 | "estraverse": "^5.1.0"
1471 | },
1472 | "engines": {
1473 | "node": ">=0.10"
1474 | }
1475 | },
1476 | "node_modules/esrecurse": {
1477 | "version": "4.3.0",
1478 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
1479 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
1480 | "dev": true,
1481 | "peer": true,
1482 | "dependencies": {
1483 | "estraverse": "^5.2.0"
1484 | },
1485 | "engines": {
1486 | "node": ">=4.0"
1487 | }
1488 | },
1489 | "node_modules/estraverse": {
1490 | "version": "5.3.0",
1491 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
1492 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
1493 | "dev": true,
1494 | "peer": true,
1495 | "engines": {
1496 | "node": ">=4.0"
1497 | }
1498 | },
1499 | "node_modules/esutils": {
1500 | "version": "2.0.3",
1501 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1502 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1503 | "dev": true,
1504 | "peer": true,
1505 | "engines": {
1506 | "node": ">=0.10.0"
1507 | }
1508 | },
1509 | "node_modules/fast-deep-equal": {
1510 | "version": "3.1.3",
1511 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1512 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
1513 | "dev": true,
1514 | "peer": true
1515 | },
1516 | "node_modules/fast-glob": {
1517 | "version": "3.3.2",
1518 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
1519 | "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
1520 | "dev": true,
1521 | "dependencies": {
1522 | "@nodelib/fs.stat": "^2.0.2",
1523 | "@nodelib/fs.walk": "^1.2.3",
1524 | "glob-parent": "^5.1.2",
1525 | "merge2": "^1.3.0",
1526 | "micromatch": "^4.0.4"
1527 | },
1528 | "engines": {
1529 | "node": ">=8.6.0"
1530 | }
1531 | },
1532 | "node_modules/fast-glob/node_modules/glob-parent": {
1533 | "version": "5.1.2",
1534 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1535 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1536 | "dev": true,
1537 | "dependencies": {
1538 | "is-glob": "^4.0.1"
1539 | },
1540 | "engines": {
1541 | "node": ">= 6"
1542 | }
1543 | },
1544 | "node_modules/fast-json-stable-stringify": {
1545 | "version": "2.1.0",
1546 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
1547 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
1548 | "dev": true,
1549 | "peer": true
1550 | },
1551 | "node_modules/fast-levenshtein": {
1552 | "version": "2.0.6",
1553 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
1554 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
1555 | "dev": true,
1556 | "peer": true
1557 | },
1558 | "node_modules/fastq": {
1559 | "version": "1.17.1",
1560 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
1561 | "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
1562 | "dev": true,
1563 | "dependencies": {
1564 | "reusify": "^1.0.4"
1565 | }
1566 | },
1567 | "node_modules/file-entry-cache": {
1568 | "version": "6.0.1",
1569 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
1570 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
1571 | "dev": true,
1572 | "peer": true,
1573 | "dependencies": {
1574 | "flat-cache": "^3.0.4"
1575 | },
1576 | "engines": {
1577 | "node": "^10.12.0 || >=12.0.0"
1578 | }
1579 | },
1580 | "node_modules/fill-range": {
1581 | "version": "7.0.1",
1582 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1583 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1584 | "dev": true,
1585 | "dependencies": {
1586 | "to-regex-range": "^5.0.1"
1587 | },
1588 | "engines": {
1589 | "node": ">=8"
1590 | }
1591 | },
1592 | "node_modules/find-up": {
1593 | "version": "5.0.0",
1594 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
1595 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
1596 | "dev": true,
1597 | "peer": true,
1598 | "dependencies": {
1599 | "locate-path": "^6.0.0",
1600 | "path-exists": "^4.0.0"
1601 | },
1602 | "engines": {
1603 | "node": ">=10"
1604 | },
1605 | "funding": {
1606 | "url": "https://github.com/sponsors/sindresorhus"
1607 | }
1608 | },
1609 | "node_modules/flat-cache": {
1610 | "version": "3.2.0",
1611 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
1612 | "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
1613 | "dev": true,
1614 | "peer": true,
1615 | "dependencies": {
1616 | "flatted": "^3.2.9",
1617 | "keyv": "^4.5.3",
1618 | "rimraf": "^3.0.2"
1619 | },
1620 | "engines": {
1621 | "node": "^10.12.0 || >=12.0.0"
1622 | }
1623 | },
1624 | "node_modules/flatted": {
1625 | "version": "3.2.9",
1626 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
1627 | "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
1628 | "dev": true,
1629 | "peer": true
1630 | },
1631 | "node_modules/fs.realpath": {
1632 | "version": "1.0.0",
1633 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1634 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
1635 | "dev": true,
1636 | "peer": true
1637 | },
1638 | "node_modules/glob": {
1639 | "version": "7.2.3",
1640 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
1641 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
1642 | "dev": true,
1643 | "peer": true,
1644 | "dependencies": {
1645 | "fs.realpath": "^1.0.0",
1646 | "inflight": "^1.0.4",
1647 | "inherits": "2",
1648 | "minimatch": "^3.1.1",
1649 | "once": "^1.3.0",
1650 | "path-is-absolute": "^1.0.0"
1651 | },
1652 | "engines": {
1653 | "node": "*"
1654 | },
1655 | "funding": {
1656 | "url": "https://github.com/sponsors/isaacs"
1657 | }
1658 | },
1659 | "node_modules/glob-parent": {
1660 | "version": "6.0.2",
1661 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
1662 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
1663 | "dev": true,
1664 | "peer": true,
1665 | "dependencies": {
1666 | "is-glob": "^4.0.3"
1667 | },
1668 | "engines": {
1669 | "node": ">=10.13.0"
1670 | }
1671 | },
1672 | "node_modules/glob/node_modules/brace-expansion": {
1673 | "version": "1.1.11",
1674 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1675 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1676 | "dev": true,
1677 | "peer": true,
1678 | "dependencies": {
1679 | "balanced-match": "^1.0.0",
1680 | "concat-map": "0.0.1"
1681 | }
1682 | },
1683 | "node_modules/glob/node_modules/minimatch": {
1684 | "version": "3.1.2",
1685 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1686 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1687 | "dev": true,
1688 | "peer": true,
1689 | "dependencies": {
1690 | "brace-expansion": "^1.1.7"
1691 | },
1692 | "engines": {
1693 | "node": "*"
1694 | }
1695 | },
1696 | "node_modules/globals": {
1697 | "version": "13.24.0",
1698 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
1699 | "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
1700 | "dev": true,
1701 | "peer": true,
1702 | "dependencies": {
1703 | "type-fest": "^0.20.2"
1704 | },
1705 | "engines": {
1706 | "node": ">=8"
1707 | },
1708 | "funding": {
1709 | "url": "https://github.com/sponsors/sindresorhus"
1710 | }
1711 | },
1712 | "node_modules/globby": {
1713 | "version": "11.1.0",
1714 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
1715 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
1716 | "dev": true,
1717 | "dependencies": {
1718 | "array-union": "^2.1.0",
1719 | "dir-glob": "^3.0.1",
1720 | "fast-glob": "^3.2.9",
1721 | "ignore": "^5.2.0",
1722 | "merge2": "^1.4.1",
1723 | "slash": "^3.0.0"
1724 | },
1725 | "engines": {
1726 | "node": ">=10"
1727 | },
1728 | "funding": {
1729 | "url": "https://github.com/sponsors/sindresorhus"
1730 | }
1731 | },
1732 | "node_modules/graphemer": {
1733 | "version": "1.4.0",
1734 | "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
1735 | "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
1736 | "dev": true
1737 | },
1738 | "node_modules/has-flag": {
1739 | "version": "4.0.0",
1740 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1741 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1742 | "dev": true,
1743 | "peer": true,
1744 | "engines": {
1745 | "node": ">=8"
1746 | }
1747 | },
1748 | "node_modules/https-proxy-agent": {
1749 | "version": "7.0.4",
1750 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
1751 | "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
1752 | "dependencies": {
1753 | "agent-base": "^7.0.2",
1754 | "debug": "4"
1755 | },
1756 | "engines": {
1757 | "node": ">= 14"
1758 | }
1759 | },
1760 | "node_modules/ignore": {
1761 | "version": "5.3.1",
1762 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
1763 | "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
1764 | "dev": true,
1765 | "engines": {
1766 | "node": ">= 4"
1767 | }
1768 | },
1769 | "node_modules/import-fresh": {
1770 | "version": "3.3.0",
1771 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
1772 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
1773 | "dev": true,
1774 | "peer": true,
1775 | "dependencies": {
1776 | "parent-module": "^1.0.0",
1777 | "resolve-from": "^4.0.0"
1778 | },
1779 | "engines": {
1780 | "node": ">=6"
1781 | },
1782 | "funding": {
1783 | "url": "https://github.com/sponsors/sindresorhus"
1784 | }
1785 | },
1786 | "node_modules/imurmurhash": {
1787 | "version": "0.1.4",
1788 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1789 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
1790 | "dev": true,
1791 | "peer": true,
1792 | "engines": {
1793 | "node": ">=0.8.19"
1794 | }
1795 | },
1796 | "node_modules/inflight": {
1797 | "version": "1.0.6",
1798 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1799 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1800 | "dev": true,
1801 | "peer": true,
1802 | "dependencies": {
1803 | "once": "^1.3.0",
1804 | "wrappy": "1"
1805 | }
1806 | },
1807 | "node_modules/inherits": {
1808 | "version": "2.0.4",
1809 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1810 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1811 | "dev": true,
1812 | "peer": true
1813 | },
1814 | "node_modules/is-extglob": {
1815 | "version": "2.1.1",
1816 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1817 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
1818 | "dev": true,
1819 | "engines": {
1820 | "node": ">=0.10.0"
1821 | }
1822 | },
1823 | "node_modules/is-glob": {
1824 | "version": "4.0.3",
1825 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1826 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1827 | "dev": true,
1828 | "dependencies": {
1829 | "is-extglob": "^2.1.1"
1830 | },
1831 | "engines": {
1832 | "node": ">=0.10.0"
1833 | }
1834 | },
1835 | "node_modules/is-number": {
1836 | "version": "7.0.0",
1837 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1838 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1839 | "dev": true,
1840 | "engines": {
1841 | "node": ">=0.12.0"
1842 | }
1843 | },
1844 | "node_modules/is-path-inside": {
1845 | "version": "3.0.3",
1846 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
1847 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
1848 | "dev": true,
1849 | "peer": true,
1850 | "engines": {
1851 | "node": ">=8"
1852 | }
1853 | },
1854 | "node_modules/isexe": {
1855 | "version": "2.0.0",
1856 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1857 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
1858 | "dev": true,
1859 | "peer": true
1860 | },
1861 | "node_modules/js-yaml": {
1862 | "version": "4.1.0",
1863 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
1864 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
1865 | "dev": true,
1866 | "peer": true,
1867 | "dependencies": {
1868 | "argparse": "^2.0.1"
1869 | },
1870 | "bin": {
1871 | "js-yaml": "bin/js-yaml.js"
1872 | }
1873 | },
1874 | "node_modules/json-buffer": {
1875 | "version": "3.0.1",
1876 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
1877 | "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
1878 | "dev": true,
1879 | "peer": true
1880 | },
1881 | "node_modules/json-schema-traverse": {
1882 | "version": "0.4.1",
1883 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1884 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
1885 | "dev": true,
1886 | "peer": true
1887 | },
1888 | "node_modules/json-stable-stringify-without-jsonify": {
1889 | "version": "1.0.1",
1890 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
1891 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
1892 | "dev": true,
1893 | "peer": true
1894 | },
1895 | "node_modules/keyv": {
1896 | "version": "4.5.4",
1897 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
1898 | "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
1899 | "dev": true,
1900 | "peer": true,
1901 | "dependencies": {
1902 | "json-buffer": "3.0.1"
1903 | }
1904 | },
1905 | "node_modules/levn": {
1906 | "version": "0.4.1",
1907 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
1908 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
1909 | "dev": true,
1910 | "peer": true,
1911 | "dependencies": {
1912 | "prelude-ls": "^1.2.1",
1913 | "type-check": "~0.4.0"
1914 | },
1915 | "engines": {
1916 | "node": ">= 0.8.0"
1917 | }
1918 | },
1919 | "node_modules/locate-path": {
1920 | "version": "6.0.0",
1921 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
1922 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
1923 | "dev": true,
1924 | "peer": true,
1925 | "dependencies": {
1926 | "p-locate": "^5.0.0"
1927 | },
1928 | "engines": {
1929 | "node": ">=10"
1930 | },
1931 | "funding": {
1932 | "url": "https://github.com/sponsors/sindresorhus"
1933 | }
1934 | },
1935 | "node_modules/lodash.merge": {
1936 | "version": "4.6.2",
1937 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
1938 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
1939 | "dev": true,
1940 | "peer": true
1941 | },
1942 | "node_modules/lru-cache": {
1943 | "version": "6.0.0",
1944 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1945 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1946 | "dev": true,
1947 | "dependencies": {
1948 | "yallist": "^4.0.0"
1949 | },
1950 | "engines": {
1951 | "node": ">=10"
1952 | }
1953 | },
1954 | "node_modules/merge2": {
1955 | "version": "1.4.1",
1956 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
1957 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
1958 | "dev": true,
1959 | "engines": {
1960 | "node": ">= 8"
1961 | }
1962 | },
1963 | "node_modules/micromatch": {
1964 | "version": "4.0.5",
1965 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
1966 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
1967 | "dev": true,
1968 | "dependencies": {
1969 | "braces": "^3.0.2",
1970 | "picomatch": "^2.3.1"
1971 | },
1972 | "engines": {
1973 | "node": ">=8.6"
1974 | }
1975 | },
1976 | "node_modules/minimatch": {
1977 | "version": "9.0.3",
1978 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
1979 | "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
1980 | "dev": true,
1981 | "dependencies": {
1982 | "brace-expansion": "^2.0.1"
1983 | },
1984 | "engines": {
1985 | "node": ">=16 || 14 >=14.17"
1986 | },
1987 | "funding": {
1988 | "url": "https://github.com/sponsors/isaacs"
1989 | }
1990 | },
1991 | "node_modules/ms": {
1992 | "version": "2.1.2",
1993 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1994 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1995 | },
1996 | "node_modules/natural-compare": {
1997 | "version": "1.4.0",
1998 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
1999 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
2000 | "dev": true
2001 | },
2002 | "node_modules/once": {
2003 | "version": "1.4.0",
2004 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2005 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
2006 | "dependencies": {
2007 | "wrappy": "1"
2008 | }
2009 | },
2010 | "node_modules/optionator": {
2011 | "version": "0.9.3",
2012 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
2013 | "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
2014 | "dev": true,
2015 | "peer": true,
2016 | "dependencies": {
2017 | "@aashutoshrathi/word-wrap": "^1.2.3",
2018 | "deep-is": "^0.1.3",
2019 | "fast-levenshtein": "^2.0.6",
2020 | "levn": "^0.4.1",
2021 | "prelude-ls": "^1.2.1",
2022 | "type-check": "^0.4.0"
2023 | },
2024 | "engines": {
2025 | "node": ">= 0.8.0"
2026 | }
2027 | },
2028 | "node_modules/p-limit": {
2029 | "version": "3.1.0",
2030 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
2031 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
2032 | "dev": true,
2033 | "peer": true,
2034 | "dependencies": {
2035 | "yocto-queue": "^0.1.0"
2036 | },
2037 | "engines": {
2038 | "node": ">=10"
2039 | },
2040 | "funding": {
2041 | "url": "https://github.com/sponsors/sindresorhus"
2042 | }
2043 | },
2044 | "node_modules/p-locate": {
2045 | "version": "5.0.0",
2046 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
2047 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
2048 | "dev": true,
2049 | "peer": true,
2050 | "dependencies": {
2051 | "p-limit": "^3.0.2"
2052 | },
2053 | "engines": {
2054 | "node": ">=10"
2055 | },
2056 | "funding": {
2057 | "url": "https://github.com/sponsors/sindresorhus"
2058 | }
2059 | },
2060 | "node_modules/parent-module": {
2061 | "version": "1.0.1",
2062 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
2063 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
2064 | "dev": true,
2065 | "peer": true,
2066 | "dependencies": {
2067 | "callsites": "^3.0.0"
2068 | },
2069 | "engines": {
2070 | "node": ">=6"
2071 | }
2072 | },
2073 | "node_modules/path-exists": {
2074 | "version": "4.0.0",
2075 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
2076 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
2077 | "dev": true,
2078 | "peer": true,
2079 | "engines": {
2080 | "node": ">=8"
2081 | }
2082 | },
2083 | "node_modules/path-is-absolute": {
2084 | "version": "1.0.1",
2085 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2086 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
2087 | "dev": true,
2088 | "peer": true,
2089 | "engines": {
2090 | "node": ">=0.10.0"
2091 | }
2092 | },
2093 | "node_modules/path-key": {
2094 | "version": "3.1.1",
2095 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2096 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2097 | "dev": true,
2098 | "peer": true,
2099 | "engines": {
2100 | "node": ">=8"
2101 | }
2102 | },
2103 | "node_modules/path-type": {
2104 | "version": "4.0.0",
2105 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
2106 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
2107 | "dev": true,
2108 | "engines": {
2109 | "node": ">=8"
2110 | }
2111 | },
2112 | "node_modules/picomatch": {
2113 | "version": "2.3.1",
2114 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2115 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2116 | "dev": true,
2117 | "engines": {
2118 | "node": ">=8.6"
2119 | },
2120 | "funding": {
2121 | "url": "https://github.com/sponsors/jonschlinkert"
2122 | }
2123 | },
2124 | "node_modules/prelude-ls": {
2125 | "version": "1.2.1",
2126 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
2127 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
2128 | "dev": true,
2129 | "peer": true,
2130 | "engines": {
2131 | "node": ">= 0.8.0"
2132 | }
2133 | },
2134 | "node_modules/prettier": {
2135 | "version": "3.2.5",
2136 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
2137 | "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
2138 | "dev": true,
2139 | "bin": {
2140 | "prettier": "bin/prettier.cjs"
2141 | },
2142 | "engines": {
2143 | "node": ">=14"
2144 | },
2145 | "funding": {
2146 | "url": "https://github.com/prettier/prettier?sponsor=1"
2147 | }
2148 | },
2149 | "node_modules/punycode": {
2150 | "version": "2.3.1",
2151 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
2152 | "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
2153 | "dev": true,
2154 | "peer": true,
2155 | "engines": {
2156 | "node": ">=6"
2157 | }
2158 | },
2159 | "node_modules/queue-microtask": {
2160 | "version": "1.2.3",
2161 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
2162 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
2163 | "dev": true,
2164 | "funding": [
2165 | {
2166 | "type": "github",
2167 | "url": "https://github.com/sponsors/feross"
2168 | },
2169 | {
2170 | "type": "patreon",
2171 | "url": "https://www.patreon.com/feross"
2172 | },
2173 | {
2174 | "type": "consulting",
2175 | "url": "https://feross.org/support"
2176 | }
2177 | ]
2178 | },
2179 | "node_modules/resolve-from": {
2180 | "version": "4.0.0",
2181 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
2182 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
2183 | "dev": true,
2184 | "peer": true,
2185 | "engines": {
2186 | "node": ">=4"
2187 | }
2188 | },
2189 | "node_modules/reusify": {
2190 | "version": "1.0.4",
2191 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
2192 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
2193 | "dev": true,
2194 | "engines": {
2195 | "iojs": ">=1.0.0",
2196 | "node": ">=0.10.0"
2197 | }
2198 | },
2199 | "node_modules/rimraf": {
2200 | "version": "3.0.2",
2201 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
2202 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
2203 | "dev": true,
2204 | "peer": true,
2205 | "dependencies": {
2206 | "glob": "^7.1.3"
2207 | },
2208 | "bin": {
2209 | "rimraf": "bin.js"
2210 | },
2211 | "funding": {
2212 | "url": "https://github.com/sponsors/isaacs"
2213 | }
2214 | },
2215 | "node_modules/run-parallel": {
2216 | "version": "1.2.0",
2217 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
2218 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
2219 | "dev": true,
2220 | "funding": [
2221 | {
2222 | "type": "github",
2223 | "url": "https://github.com/sponsors/feross"
2224 | },
2225 | {
2226 | "type": "patreon",
2227 | "url": "https://www.patreon.com/feross"
2228 | },
2229 | {
2230 | "type": "consulting",
2231 | "url": "https://feross.org/support"
2232 | }
2233 | ],
2234 | "dependencies": {
2235 | "queue-microtask": "^1.2.2"
2236 | }
2237 | },
2238 | "node_modules/semver": {
2239 | "version": "6.3.1",
2240 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
2241 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
2242 | "bin": {
2243 | "semver": "bin/semver.js"
2244 | }
2245 | },
2246 | "node_modules/shebang-command": {
2247 | "version": "2.0.0",
2248 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2249 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
2250 | "dev": true,
2251 | "peer": true,
2252 | "dependencies": {
2253 | "shebang-regex": "^3.0.0"
2254 | },
2255 | "engines": {
2256 | "node": ">=8"
2257 | }
2258 | },
2259 | "node_modules/shebang-regex": {
2260 | "version": "3.0.0",
2261 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
2262 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
2263 | "dev": true,
2264 | "peer": true,
2265 | "engines": {
2266 | "node": ">=8"
2267 | }
2268 | },
2269 | "node_modules/slash": {
2270 | "version": "3.0.0",
2271 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
2272 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
2273 | "dev": true,
2274 | "engines": {
2275 | "node": ">=8"
2276 | }
2277 | },
2278 | "node_modules/strip-ansi": {
2279 | "version": "6.0.1",
2280 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2281 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2282 | "dev": true,
2283 | "peer": true,
2284 | "dependencies": {
2285 | "ansi-regex": "^5.0.1"
2286 | },
2287 | "engines": {
2288 | "node": ">=8"
2289 | }
2290 | },
2291 | "node_modules/strip-json-comments": {
2292 | "version": "3.1.1",
2293 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
2294 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
2295 | "dev": true,
2296 | "peer": true,
2297 | "engines": {
2298 | "node": ">=8"
2299 | },
2300 | "funding": {
2301 | "url": "https://github.com/sponsors/sindresorhus"
2302 | }
2303 | },
2304 | "node_modules/supports-color": {
2305 | "version": "7.2.0",
2306 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2307 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2308 | "dev": true,
2309 | "peer": true,
2310 | "dependencies": {
2311 | "has-flag": "^4.0.0"
2312 | },
2313 | "engines": {
2314 | "node": ">=8"
2315 | }
2316 | },
2317 | "node_modules/text-table": {
2318 | "version": "0.2.0",
2319 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
2320 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
2321 | "dev": true,
2322 | "peer": true
2323 | },
2324 | "node_modules/to-regex-range": {
2325 | "version": "5.0.1",
2326 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
2327 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
2328 | "dev": true,
2329 | "dependencies": {
2330 | "is-number": "^7.0.0"
2331 | },
2332 | "engines": {
2333 | "node": ">=8.0"
2334 | }
2335 | },
2336 | "node_modules/ts-api-utils": {
2337 | "version": "1.2.1",
2338 | "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz",
2339 | "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==",
2340 | "dev": true,
2341 | "engines": {
2342 | "node": ">=16"
2343 | },
2344 | "peerDependencies": {
2345 | "typescript": ">=4.2.0"
2346 | }
2347 | },
2348 | "node_modules/tunnel": {
2349 | "version": "0.0.6",
2350 | "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
2351 | "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
2352 | "engines": {
2353 | "node": ">=0.6.11 <=0.7.0 || >=0.7.3"
2354 | }
2355 | },
2356 | "node_modules/type-check": {
2357 | "version": "0.4.0",
2358 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
2359 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
2360 | "dev": true,
2361 | "peer": true,
2362 | "dependencies": {
2363 | "prelude-ls": "^1.2.1"
2364 | },
2365 | "engines": {
2366 | "node": ">= 0.8.0"
2367 | }
2368 | },
2369 | "node_modules/type-fest": {
2370 | "version": "0.20.2",
2371 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
2372 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
2373 | "dev": true,
2374 | "peer": true,
2375 | "engines": {
2376 | "node": ">=10"
2377 | },
2378 | "funding": {
2379 | "url": "https://github.com/sponsors/sindresorhus"
2380 | }
2381 | },
2382 | "node_modules/typescript": {
2383 | "version": "5.3.3",
2384 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
2385 | "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
2386 | "dev": true,
2387 | "bin": {
2388 | "tsc": "bin/tsc",
2389 | "tsserver": "bin/tsserver"
2390 | },
2391 | "engines": {
2392 | "node": ">=14.17"
2393 | }
2394 | },
2395 | "node_modules/undici": {
2396 | "version": "5.28.3",
2397 | "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz",
2398 | "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==",
2399 | "dependencies": {
2400 | "@fastify/busboy": "^2.0.0"
2401 | },
2402 | "engines": {
2403 | "node": ">=14.0"
2404 | }
2405 | },
2406 | "node_modules/undici-types": {
2407 | "version": "5.26.5",
2408 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
2409 | "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
2410 | "dev": true
2411 | },
2412 | "node_modules/universal-user-agent": {
2413 | "version": "6.0.1",
2414 | "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz",
2415 | "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ=="
2416 | },
2417 | "node_modules/uri-js": {
2418 | "version": "4.4.1",
2419 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
2420 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
2421 | "dev": true,
2422 | "peer": true,
2423 | "dependencies": {
2424 | "punycode": "^2.1.0"
2425 | }
2426 | },
2427 | "node_modules/uuid": {
2428 | "version": "3.4.0",
2429 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
2430 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
2431 | "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
2432 | "bin": {
2433 | "uuid": "bin/uuid"
2434 | }
2435 | },
2436 | "node_modules/which": {
2437 | "version": "2.0.2",
2438 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
2439 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
2440 | "dev": true,
2441 | "peer": true,
2442 | "dependencies": {
2443 | "isexe": "^2.0.0"
2444 | },
2445 | "bin": {
2446 | "node-which": "bin/node-which"
2447 | },
2448 | "engines": {
2449 | "node": ">= 8"
2450 | }
2451 | },
2452 | "node_modules/wrappy": {
2453 | "version": "1.0.2",
2454 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2455 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
2456 | },
2457 | "node_modules/yallist": {
2458 | "version": "4.0.0",
2459 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
2460 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
2461 | "dev": true
2462 | },
2463 | "node_modules/yocto-queue": {
2464 | "version": "0.1.0",
2465 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
2466 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
2467 | "dev": true,
2468 | "peer": true,
2469 | "engines": {
2470 | "node": ">=10"
2471 | },
2472 | "funding": {
2473 | "url": "https://github.com/sponsors/sindresorhus"
2474 | }
2475 | }
2476 | },
2477 | "dependencies": {
2478 | "@aashutoshrathi/word-wrap": {
2479 | "version": "1.2.6",
2480 | "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
2481 | "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
2482 | "dev": true,
2483 | "peer": true
2484 | },
2485 | "@actions/core": {
2486 | "version": "1.10.1",
2487 | "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz",
2488 | "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==",
2489 | "requires": {
2490 | "@actions/http-client": "^2.0.1",
2491 | "uuid": "^8.3.2"
2492 | },
2493 | "dependencies": {
2494 | "uuid": {
2495 | "version": "8.3.2",
2496 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
2497 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
2498 | }
2499 | }
2500 | },
2501 | "@actions/exec": {
2502 | "version": "1.1.1",
2503 | "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz",
2504 | "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==",
2505 | "requires": {
2506 | "@actions/io": "^1.0.1"
2507 | }
2508 | },
2509 | "@actions/github": {
2510 | "version": "6.0.0",
2511 | "resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.0.tgz",
2512 | "integrity": "sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==",
2513 | "requires": {
2514 | "@actions/http-client": "^2.2.0",
2515 | "@octokit/core": "^5.0.1",
2516 | "@octokit/plugin-paginate-rest": "^9.0.0",
2517 | "@octokit/plugin-rest-endpoint-methods": "^10.0.0"
2518 | }
2519 | },
2520 | "@actions/http-client": {
2521 | "version": "2.2.0",
2522 | "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz",
2523 | "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==",
2524 | "requires": {
2525 | "tunnel": "^0.0.6",
2526 | "undici": "^5.25.4"
2527 | }
2528 | },
2529 | "@actions/io": {
2530 | "version": "1.1.3",
2531 | "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz",
2532 | "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q=="
2533 | },
2534 | "@actions/tool-cache": {
2535 | "version": "2.0.1",
2536 | "resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-2.0.1.tgz",
2537 | "integrity": "sha512-iPU+mNwrbA8jodY8eyo/0S/QqCKDajiR8OxWTnSk/SnYg0sj8Hp4QcUEVC1YFpHWXtrfbQrE13Jz4k4HXJQKcA==",
2538 | "requires": {
2539 | "@actions/core": "^1.2.6",
2540 | "@actions/exec": "^1.0.0",
2541 | "@actions/http-client": "^2.0.1",
2542 | "@actions/io": "^1.1.1",
2543 | "semver": "^6.1.0",
2544 | "uuid": "^3.3.2"
2545 | }
2546 | },
2547 | "@esbuild/aix-ppc64": {
2548 | "version": "0.20.1",
2549 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz",
2550 | "integrity": "sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==",
2551 | "dev": true,
2552 | "optional": true
2553 | },
2554 | "@esbuild/android-arm": {
2555 | "version": "0.20.1",
2556 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.1.tgz",
2557 | "integrity": "sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==",
2558 | "dev": true,
2559 | "optional": true
2560 | },
2561 | "@esbuild/android-arm64": {
2562 | "version": "0.20.1",
2563 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz",
2564 | "integrity": "sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==",
2565 | "dev": true,
2566 | "optional": true
2567 | },
2568 | "@esbuild/android-x64": {
2569 | "version": "0.20.1",
2570 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.1.tgz",
2571 | "integrity": "sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==",
2572 | "dev": true,
2573 | "optional": true
2574 | },
2575 | "@esbuild/darwin-arm64": {
2576 | "version": "0.20.1",
2577 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz",
2578 | "integrity": "sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==",
2579 | "dev": true,
2580 | "optional": true
2581 | },
2582 | "@esbuild/darwin-x64": {
2583 | "version": "0.20.1",
2584 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz",
2585 | "integrity": "sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==",
2586 | "dev": true,
2587 | "optional": true
2588 | },
2589 | "@esbuild/freebsd-arm64": {
2590 | "version": "0.20.1",
2591 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz",
2592 | "integrity": "sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==",
2593 | "dev": true,
2594 | "optional": true
2595 | },
2596 | "@esbuild/freebsd-x64": {
2597 | "version": "0.20.1",
2598 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz",
2599 | "integrity": "sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==",
2600 | "dev": true,
2601 | "optional": true
2602 | },
2603 | "@esbuild/linux-arm": {
2604 | "version": "0.20.1",
2605 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz",
2606 | "integrity": "sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==",
2607 | "dev": true,
2608 | "optional": true
2609 | },
2610 | "@esbuild/linux-arm64": {
2611 | "version": "0.20.1",
2612 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz",
2613 | "integrity": "sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==",
2614 | "dev": true,
2615 | "optional": true
2616 | },
2617 | "@esbuild/linux-ia32": {
2618 | "version": "0.20.1",
2619 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz",
2620 | "integrity": "sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==",
2621 | "dev": true,
2622 | "optional": true
2623 | },
2624 | "@esbuild/linux-loong64": {
2625 | "version": "0.20.1",
2626 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz",
2627 | "integrity": "sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==",
2628 | "dev": true,
2629 | "optional": true
2630 | },
2631 | "@esbuild/linux-mips64el": {
2632 | "version": "0.20.1",
2633 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz",
2634 | "integrity": "sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==",
2635 | "dev": true,
2636 | "optional": true
2637 | },
2638 | "@esbuild/linux-ppc64": {
2639 | "version": "0.20.1",
2640 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz",
2641 | "integrity": "sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==",
2642 | "dev": true,
2643 | "optional": true
2644 | },
2645 | "@esbuild/linux-riscv64": {
2646 | "version": "0.20.1",
2647 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz",
2648 | "integrity": "sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==",
2649 | "dev": true,
2650 | "optional": true
2651 | },
2652 | "@esbuild/linux-s390x": {
2653 | "version": "0.20.1",
2654 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz",
2655 | "integrity": "sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==",
2656 | "dev": true,
2657 | "optional": true
2658 | },
2659 | "@esbuild/linux-x64": {
2660 | "version": "0.20.1",
2661 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz",
2662 | "integrity": "sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==",
2663 | "dev": true,
2664 | "optional": true
2665 | },
2666 | "@esbuild/netbsd-x64": {
2667 | "version": "0.20.1",
2668 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz",
2669 | "integrity": "sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==",
2670 | "dev": true,
2671 | "optional": true
2672 | },
2673 | "@esbuild/openbsd-x64": {
2674 | "version": "0.20.1",
2675 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz",
2676 | "integrity": "sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==",
2677 | "dev": true,
2678 | "optional": true
2679 | },
2680 | "@esbuild/sunos-x64": {
2681 | "version": "0.20.1",
2682 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz",
2683 | "integrity": "sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==",
2684 | "dev": true,
2685 | "optional": true
2686 | },
2687 | "@esbuild/win32-arm64": {
2688 | "version": "0.20.1",
2689 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz",
2690 | "integrity": "sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==",
2691 | "dev": true,
2692 | "optional": true
2693 | },
2694 | "@esbuild/win32-ia32": {
2695 | "version": "0.20.1",
2696 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz",
2697 | "integrity": "sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==",
2698 | "dev": true,
2699 | "optional": true
2700 | },
2701 | "@esbuild/win32-x64": {
2702 | "version": "0.20.1",
2703 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz",
2704 | "integrity": "sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==",
2705 | "dev": true,
2706 | "optional": true
2707 | },
2708 | "@eslint-community/eslint-utils": {
2709 | "version": "4.4.0",
2710 | "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
2711 | "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
2712 | "dev": true,
2713 | "requires": {
2714 | "eslint-visitor-keys": "^3.3.0"
2715 | }
2716 | },
2717 | "@eslint-community/regexpp": {
2718 | "version": "4.10.0",
2719 | "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
2720 | "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
2721 | "dev": true
2722 | },
2723 | "@eslint/eslintrc": {
2724 | "version": "2.1.4",
2725 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
2726 | "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
2727 | "dev": true,
2728 | "peer": true,
2729 | "requires": {
2730 | "ajv": "^6.12.4",
2731 | "debug": "^4.3.2",
2732 | "espree": "^9.6.0",
2733 | "globals": "^13.19.0",
2734 | "ignore": "^5.2.0",
2735 | "import-fresh": "^3.2.1",
2736 | "js-yaml": "^4.1.0",
2737 | "minimatch": "^3.1.2",
2738 | "strip-json-comments": "^3.1.1"
2739 | },
2740 | "dependencies": {
2741 | "brace-expansion": {
2742 | "version": "1.1.11",
2743 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
2744 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
2745 | "dev": true,
2746 | "peer": true,
2747 | "requires": {
2748 | "balanced-match": "^1.0.0",
2749 | "concat-map": "0.0.1"
2750 | }
2751 | },
2752 | "minimatch": {
2753 | "version": "3.1.2",
2754 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2755 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2756 | "dev": true,
2757 | "peer": true,
2758 | "requires": {
2759 | "brace-expansion": "^1.1.7"
2760 | }
2761 | }
2762 | }
2763 | },
2764 | "@eslint/js": {
2765 | "version": "8.56.0",
2766 | "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz",
2767 | "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
2768 | "dev": true,
2769 | "peer": true
2770 | },
2771 | "@fastify/busboy": {
2772 | "version": "2.1.0",
2773 | "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz",
2774 | "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA=="
2775 | },
2776 | "@humanwhocodes/config-array": {
2777 | "version": "0.11.14",
2778 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
2779 | "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
2780 | "dev": true,
2781 | "peer": true,
2782 | "requires": {
2783 | "@humanwhocodes/object-schema": "^2.0.2",
2784 | "debug": "^4.3.1",
2785 | "minimatch": "^3.0.5"
2786 | },
2787 | "dependencies": {
2788 | "brace-expansion": {
2789 | "version": "1.1.11",
2790 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
2791 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
2792 | "dev": true,
2793 | "peer": true,
2794 | "requires": {
2795 | "balanced-match": "^1.0.0",
2796 | "concat-map": "0.0.1"
2797 | }
2798 | },
2799 | "minimatch": {
2800 | "version": "3.1.2",
2801 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2802 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2803 | "dev": true,
2804 | "peer": true,
2805 | "requires": {
2806 | "brace-expansion": "^1.1.7"
2807 | }
2808 | }
2809 | }
2810 | },
2811 | "@humanwhocodes/module-importer": {
2812 | "version": "1.0.1",
2813 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
2814 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
2815 | "dev": true,
2816 | "peer": true
2817 | },
2818 | "@humanwhocodes/object-schema": {
2819 | "version": "2.0.2",
2820 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
2821 | "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
2822 | "dev": true,
2823 | "peer": true
2824 | },
2825 | "@nodelib/fs.scandir": {
2826 | "version": "2.1.5",
2827 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
2828 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
2829 | "dev": true,
2830 | "requires": {
2831 | "@nodelib/fs.stat": "2.0.5",
2832 | "run-parallel": "^1.1.9"
2833 | }
2834 | },
2835 | "@nodelib/fs.stat": {
2836 | "version": "2.0.5",
2837 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
2838 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
2839 | "dev": true
2840 | },
2841 | "@nodelib/fs.walk": {
2842 | "version": "1.2.8",
2843 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
2844 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
2845 | "dev": true,
2846 | "requires": {
2847 | "@nodelib/fs.scandir": "2.1.5",
2848 | "fastq": "^1.6.0"
2849 | }
2850 | },
2851 | "@octokit/auth-token": {
2852 | "version": "4.0.0",
2853 | "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
2854 | "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA=="
2855 | },
2856 | "@octokit/core": {
2857 | "version": "5.1.0",
2858 | "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.1.0.tgz",
2859 | "integrity": "sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==",
2860 | "requires": {
2861 | "@octokit/auth-token": "^4.0.0",
2862 | "@octokit/graphql": "^7.0.0",
2863 | "@octokit/request": "^8.0.2",
2864 | "@octokit/request-error": "^5.0.0",
2865 | "@octokit/types": "^12.0.0",
2866 | "before-after-hook": "^2.2.0",
2867 | "universal-user-agent": "^6.0.0"
2868 | }
2869 | },
2870 | "@octokit/endpoint": {
2871 | "version": "9.0.4",
2872 | "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.4.tgz",
2873 | "integrity": "sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==",
2874 | "requires": {
2875 | "@octokit/types": "^12.0.0",
2876 | "universal-user-agent": "^6.0.0"
2877 | }
2878 | },
2879 | "@octokit/graphql": {
2880 | "version": "7.0.2",
2881 | "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.2.tgz",
2882 | "integrity": "sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==",
2883 | "requires": {
2884 | "@octokit/request": "^8.0.1",
2885 | "@octokit/types": "^12.0.0",
2886 | "universal-user-agent": "^6.0.0"
2887 | }
2888 | },
2889 | "@octokit/openapi-types": {
2890 | "version": "19.1.0",
2891 | "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.1.0.tgz",
2892 | "integrity": "sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw=="
2893 | },
2894 | "@octokit/plugin-paginate-rest": {
2895 | "version": "9.1.5",
2896 | "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz",
2897 | "integrity": "sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==",
2898 | "requires": {
2899 | "@octokit/types": "^12.4.0"
2900 | }
2901 | },
2902 | "@octokit/plugin-rest-endpoint-methods": {
2903 | "version": "10.3.0",
2904 | "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.3.0.tgz",
2905 | "integrity": "sha512-c/fjpoHispRvBZuRoTVt/uALg7pXa9RQbXWJiDMk6NDkGNomuAZG7YuYYpZoxeoXv+kVRjIDTsO0e1z0pei+PQ==",
2906 | "requires": {
2907 | "@octokit/types": "^12.4.0"
2908 | }
2909 | },
2910 | "@octokit/request": {
2911 | "version": "8.2.0",
2912 | "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.2.0.tgz",
2913 | "integrity": "sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ==",
2914 | "requires": {
2915 | "@octokit/endpoint": "^9.0.0",
2916 | "@octokit/request-error": "^5.0.0",
2917 | "@octokit/types": "^12.0.0",
2918 | "universal-user-agent": "^6.0.0"
2919 | }
2920 | },
2921 | "@octokit/request-error": {
2922 | "version": "5.0.1",
2923 | "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.1.tgz",
2924 | "integrity": "sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==",
2925 | "requires": {
2926 | "@octokit/types": "^12.0.0",
2927 | "deprecation": "^2.0.0",
2928 | "once": "^1.4.0"
2929 | }
2930 | },
2931 | "@octokit/types": {
2932 | "version": "12.5.0",
2933 | "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.5.0.tgz",
2934 | "integrity": "sha512-YJEKcb0KkJlIUNU/zjnZwHEP8AoVh/OoIcP/1IyR4UHxExz7fzpe/a8IG4wBtQi7QDEqiomVLX88S6FpxxAJtg==",
2935 | "requires": {
2936 | "@octokit/openapi-types": "^19.1.0"
2937 | }
2938 | },
2939 | "@types/json-schema": {
2940 | "version": "7.0.15",
2941 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
2942 | "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
2943 | "dev": true
2944 | },
2945 | "@types/node": {
2946 | "version": "20.11.19",
2947 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz",
2948 | "integrity": "sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==",
2949 | "dev": true,
2950 | "requires": {
2951 | "undici-types": "~5.26.4"
2952 | }
2953 | },
2954 | "@types/semver": {
2955 | "version": "7.5.7",
2956 | "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz",
2957 | "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==",
2958 | "dev": true
2959 | },
2960 | "@typescript-eslint/eslint-plugin": {
2961 | "version": "7.0.1",
2962 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.1.tgz",
2963 | "integrity": "sha512-OLvgeBv3vXlnnJGIAgCLYKjgMEU+wBGj07MQ/nxAaON+3mLzX7mJbhRYrVGiVvFiXtwFlkcBa/TtmglHy0UbzQ==",
2964 | "dev": true,
2965 | "requires": {
2966 | "@eslint-community/regexpp": "^4.5.1",
2967 | "@typescript-eslint/scope-manager": "7.0.1",
2968 | "@typescript-eslint/type-utils": "7.0.1",
2969 | "@typescript-eslint/utils": "7.0.1",
2970 | "@typescript-eslint/visitor-keys": "7.0.1",
2971 | "debug": "^4.3.4",
2972 | "graphemer": "^1.4.0",
2973 | "ignore": "^5.2.4",
2974 | "natural-compare": "^1.4.0",
2975 | "semver": "^7.5.4",
2976 | "ts-api-utils": "^1.0.1"
2977 | },
2978 | "dependencies": {
2979 | "semver": {
2980 | "version": "7.6.0",
2981 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
2982 | "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
2983 | "dev": true,
2984 | "requires": {
2985 | "lru-cache": "^6.0.0"
2986 | }
2987 | }
2988 | }
2989 | },
2990 | "@typescript-eslint/parser": {
2991 | "version": "7.0.1",
2992 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.0.1.tgz",
2993 | "integrity": "sha512-8GcRRZNzaHxKzBPU3tKtFNing571/GwPBeCvmAUw0yBtfE2XVd0zFKJIMSWkHJcPQi0ekxjIts6L/rrZq5cxGQ==",
2994 | "dev": true,
2995 | "requires": {
2996 | "@typescript-eslint/scope-manager": "7.0.1",
2997 | "@typescript-eslint/types": "7.0.1",
2998 | "@typescript-eslint/typescript-estree": "7.0.1",
2999 | "@typescript-eslint/visitor-keys": "7.0.1",
3000 | "debug": "^4.3.4"
3001 | }
3002 | },
3003 | "@typescript-eslint/scope-manager": {
3004 | "version": "7.0.1",
3005 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.0.1.tgz",
3006 | "integrity": "sha512-v7/T7As10g3bcWOOPAcbnMDuvctHzCFYCG/8R4bK4iYzdFqsZTbXGln0cZNVcwQcwewsYU2BJLay8j0/4zOk4w==",
3007 | "dev": true,
3008 | "requires": {
3009 | "@typescript-eslint/types": "7.0.1",
3010 | "@typescript-eslint/visitor-keys": "7.0.1"
3011 | }
3012 | },
3013 | "@typescript-eslint/type-utils": {
3014 | "version": "7.0.1",
3015 | "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.0.1.tgz",
3016 | "integrity": "sha512-YtT9UcstTG5Yqy4xtLiClm1ZpM/pWVGFnkAa90UfdkkZsR1eP2mR/1jbHeYp8Ay1l1JHPyGvoUYR6o3On5Nhmw==",
3017 | "dev": true,
3018 | "requires": {
3019 | "@typescript-eslint/typescript-estree": "7.0.1",
3020 | "@typescript-eslint/utils": "7.0.1",
3021 | "debug": "^4.3.4",
3022 | "ts-api-utils": "^1.0.1"
3023 | }
3024 | },
3025 | "@typescript-eslint/types": {
3026 | "version": "7.0.1",
3027 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.0.1.tgz",
3028 | "integrity": "sha512-uJDfmirz4FHib6ENju/7cz9SdMSkeVvJDK3VcMFvf/hAShg8C74FW+06MaQPODHfDJp/z/zHfgawIJRjlu0RLg==",
3029 | "dev": true
3030 | },
3031 | "@typescript-eslint/typescript-estree": {
3032 | "version": "7.0.1",
3033 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.0.1.tgz",
3034 | "integrity": "sha512-SO9wHb6ph0/FN5OJxH4MiPscGah5wjOd0RRpaLvuBv9g8565Fgu0uMySFEPqwPHiQU90yzJ2FjRYKGrAhS1xig==",
3035 | "dev": true,
3036 | "requires": {
3037 | "@typescript-eslint/types": "7.0.1",
3038 | "@typescript-eslint/visitor-keys": "7.0.1",
3039 | "debug": "^4.3.4",
3040 | "globby": "^11.1.0",
3041 | "is-glob": "^4.0.3",
3042 | "minimatch": "9.0.3",
3043 | "semver": "^7.5.4",
3044 | "ts-api-utils": "^1.0.1"
3045 | },
3046 | "dependencies": {
3047 | "semver": {
3048 | "version": "7.6.0",
3049 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
3050 | "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
3051 | "dev": true,
3052 | "requires": {
3053 | "lru-cache": "^6.0.0"
3054 | }
3055 | }
3056 | }
3057 | },
3058 | "@typescript-eslint/utils": {
3059 | "version": "7.0.1",
3060 | "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.0.1.tgz",
3061 | "integrity": "sha512-oe4his30JgPbnv+9Vef1h48jm0S6ft4mNwi9wj7bX10joGn07QRfqIqFHoMiajrtoU88cIhXf8ahwgrcbNLgPA==",
3062 | "dev": true,
3063 | "requires": {
3064 | "@eslint-community/eslint-utils": "^4.4.0",
3065 | "@types/json-schema": "^7.0.12",
3066 | "@types/semver": "^7.5.0",
3067 | "@typescript-eslint/scope-manager": "7.0.1",
3068 | "@typescript-eslint/types": "7.0.1",
3069 | "@typescript-eslint/typescript-estree": "7.0.1",
3070 | "semver": "^7.5.4"
3071 | },
3072 | "dependencies": {
3073 | "semver": {
3074 | "version": "7.6.0",
3075 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
3076 | "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
3077 | "dev": true,
3078 | "requires": {
3079 | "lru-cache": "^6.0.0"
3080 | }
3081 | }
3082 | }
3083 | },
3084 | "@typescript-eslint/visitor-keys": {
3085 | "version": "7.0.1",
3086 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.0.1.tgz",
3087 | "integrity": "sha512-hwAgrOyk++RTXrP4KzCg7zB2U0xt7RUU0ZdMSCsqF3eKUwkdXUMyTb0qdCuji7VIbcpG62kKTU9M1J1c9UpFBw==",
3088 | "dev": true,
3089 | "requires": {
3090 | "@typescript-eslint/types": "7.0.1",
3091 | "eslint-visitor-keys": "^3.4.1"
3092 | }
3093 | },
3094 | "@ungap/structured-clone": {
3095 | "version": "1.2.0",
3096 | "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
3097 | "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
3098 | "dev": true,
3099 | "peer": true
3100 | },
3101 | "acorn": {
3102 | "version": "8.11.3",
3103 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
3104 | "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
3105 | "dev": true,
3106 | "peer": true
3107 | },
3108 | "acorn-jsx": {
3109 | "version": "5.3.2",
3110 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
3111 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
3112 | "dev": true,
3113 | "peer": true,
3114 | "requires": {}
3115 | },
3116 | "agent-base": {
3117 | "version": "7.1.0",
3118 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
3119 | "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
3120 | "requires": {
3121 | "debug": "^4.3.4"
3122 | }
3123 | },
3124 | "ajv": {
3125 | "version": "6.12.6",
3126 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
3127 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
3128 | "dev": true,
3129 | "peer": true,
3130 | "requires": {
3131 | "fast-deep-equal": "^3.1.1",
3132 | "fast-json-stable-stringify": "^2.0.0",
3133 | "json-schema-traverse": "^0.4.1",
3134 | "uri-js": "^4.2.2"
3135 | }
3136 | },
3137 | "ansi-regex": {
3138 | "version": "5.0.1",
3139 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
3140 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
3141 | "dev": true,
3142 | "peer": true
3143 | },
3144 | "ansi-styles": {
3145 | "version": "4.3.0",
3146 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3147 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3148 | "dev": true,
3149 | "peer": true,
3150 | "requires": {
3151 | "color-convert": "^2.0.1"
3152 | }
3153 | },
3154 | "argparse": {
3155 | "version": "2.0.1",
3156 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
3157 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
3158 | "dev": true,
3159 | "peer": true
3160 | },
3161 | "array-union": {
3162 | "version": "2.1.0",
3163 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
3164 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
3165 | "dev": true
3166 | },
3167 | "balanced-match": {
3168 | "version": "1.0.2",
3169 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
3170 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
3171 | "dev": true
3172 | },
3173 | "before-after-hook": {
3174 | "version": "2.2.3",
3175 | "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
3176 | "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ=="
3177 | },
3178 | "brace-expansion": {
3179 | "version": "2.0.1",
3180 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
3181 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
3182 | "dev": true,
3183 | "requires": {
3184 | "balanced-match": "^1.0.0"
3185 | }
3186 | },
3187 | "braces": {
3188 | "version": "3.0.2",
3189 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
3190 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
3191 | "dev": true,
3192 | "requires": {
3193 | "fill-range": "^7.0.1"
3194 | }
3195 | },
3196 | "callsites": {
3197 | "version": "3.1.0",
3198 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
3199 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
3200 | "dev": true,
3201 | "peer": true
3202 | },
3203 | "chalk": {
3204 | "version": "4.1.2",
3205 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
3206 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
3207 | "dev": true,
3208 | "peer": true,
3209 | "requires": {
3210 | "ansi-styles": "^4.1.0",
3211 | "supports-color": "^7.1.0"
3212 | }
3213 | },
3214 | "color-convert": {
3215 | "version": "2.0.1",
3216 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3217 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3218 | "dev": true,
3219 | "peer": true,
3220 | "requires": {
3221 | "color-name": "~1.1.4"
3222 | }
3223 | },
3224 | "color-name": {
3225 | "version": "1.1.4",
3226 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3227 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
3228 | "dev": true,
3229 | "peer": true
3230 | },
3231 | "concat-map": {
3232 | "version": "0.0.1",
3233 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
3234 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
3235 | "dev": true,
3236 | "peer": true
3237 | },
3238 | "cross-spawn": {
3239 | "version": "7.0.3",
3240 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
3241 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
3242 | "dev": true,
3243 | "peer": true,
3244 | "requires": {
3245 | "path-key": "^3.1.0",
3246 | "shebang-command": "^2.0.0",
3247 | "which": "^2.0.1"
3248 | }
3249 | },
3250 | "debug": {
3251 | "version": "4.3.4",
3252 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
3253 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
3254 | "requires": {
3255 | "ms": "2.1.2"
3256 | }
3257 | },
3258 | "deep-is": {
3259 | "version": "0.1.4",
3260 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
3261 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
3262 | "dev": true,
3263 | "peer": true
3264 | },
3265 | "deprecation": {
3266 | "version": "2.3.1",
3267 | "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
3268 | "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
3269 | },
3270 | "dir-glob": {
3271 | "version": "3.0.1",
3272 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
3273 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
3274 | "dev": true,
3275 | "requires": {
3276 | "path-type": "^4.0.0"
3277 | }
3278 | },
3279 | "doctrine": {
3280 | "version": "3.0.0",
3281 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
3282 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
3283 | "dev": true,
3284 | "peer": true,
3285 | "requires": {
3286 | "esutils": "^2.0.2"
3287 | }
3288 | },
3289 | "esbuild": {
3290 | "version": "0.20.1",
3291 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz",
3292 | "integrity": "sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==",
3293 | "dev": true,
3294 | "requires": {
3295 | "@esbuild/aix-ppc64": "0.20.1",
3296 | "@esbuild/android-arm": "0.20.1",
3297 | "@esbuild/android-arm64": "0.20.1",
3298 | "@esbuild/android-x64": "0.20.1",
3299 | "@esbuild/darwin-arm64": "0.20.1",
3300 | "@esbuild/darwin-x64": "0.20.1",
3301 | "@esbuild/freebsd-arm64": "0.20.1",
3302 | "@esbuild/freebsd-x64": "0.20.1",
3303 | "@esbuild/linux-arm": "0.20.1",
3304 | "@esbuild/linux-arm64": "0.20.1",
3305 | "@esbuild/linux-ia32": "0.20.1",
3306 | "@esbuild/linux-loong64": "0.20.1",
3307 | "@esbuild/linux-mips64el": "0.20.1",
3308 | "@esbuild/linux-ppc64": "0.20.1",
3309 | "@esbuild/linux-riscv64": "0.20.1",
3310 | "@esbuild/linux-s390x": "0.20.1",
3311 | "@esbuild/linux-x64": "0.20.1",
3312 | "@esbuild/netbsd-x64": "0.20.1",
3313 | "@esbuild/openbsd-x64": "0.20.1",
3314 | "@esbuild/sunos-x64": "0.20.1",
3315 | "@esbuild/win32-arm64": "0.20.1",
3316 | "@esbuild/win32-ia32": "0.20.1",
3317 | "@esbuild/win32-x64": "0.20.1"
3318 | }
3319 | },
3320 | "escape-string-regexp": {
3321 | "version": "4.0.0",
3322 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
3323 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
3324 | "dev": true,
3325 | "peer": true
3326 | },
3327 | "eslint": {
3328 | "version": "8.56.0",
3329 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz",
3330 | "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
3331 | "dev": true,
3332 | "peer": true,
3333 | "requires": {
3334 | "@eslint-community/eslint-utils": "^4.2.0",
3335 | "@eslint-community/regexpp": "^4.6.1",
3336 | "@eslint/eslintrc": "^2.1.4",
3337 | "@eslint/js": "8.56.0",
3338 | "@humanwhocodes/config-array": "^0.11.13",
3339 | "@humanwhocodes/module-importer": "^1.0.1",
3340 | "@nodelib/fs.walk": "^1.2.8",
3341 | "@ungap/structured-clone": "^1.2.0",
3342 | "ajv": "^6.12.4",
3343 | "chalk": "^4.0.0",
3344 | "cross-spawn": "^7.0.2",
3345 | "debug": "^4.3.2",
3346 | "doctrine": "^3.0.0",
3347 | "escape-string-regexp": "^4.0.0",
3348 | "eslint-scope": "^7.2.2",
3349 | "eslint-visitor-keys": "^3.4.3",
3350 | "espree": "^9.6.1",
3351 | "esquery": "^1.4.2",
3352 | "esutils": "^2.0.2",
3353 | "fast-deep-equal": "^3.1.3",
3354 | "file-entry-cache": "^6.0.1",
3355 | "find-up": "^5.0.0",
3356 | "glob-parent": "^6.0.2",
3357 | "globals": "^13.19.0",
3358 | "graphemer": "^1.4.0",
3359 | "ignore": "^5.2.0",
3360 | "imurmurhash": "^0.1.4",
3361 | "is-glob": "^4.0.0",
3362 | "is-path-inside": "^3.0.3",
3363 | "js-yaml": "^4.1.0",
3364 | "json-stable-stringify-without-jsonify": "^1.0.1",
3365 | "levn": "^0.4.1",
3366 | "lodash.merge": "^4.6.2",
3367 | "minimatch": "^3.1.2",
3368 | "natural-compare": "^1.4.0",
3369 | "optionator": "^0.9.3",
3370 | "strip-ansi": "^6.0.1",
3371 | "text-table": "^0.2.0"
3372 | },
3373 | "dependencies": {
3374 | "brace-expansion": {
3375 | "version": "1.1.11",
3376 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
3377 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
3378 | "dev": true,
3379 | "peer": true,
3380 | "requires": {
3381 | "balanced-match": "^1.0.0",
3382 | "concat-map": "0.0.1"
3383 | }
3384 | },
3385 | "minimatch": {
3386 | "version": "3.1.2",
3387 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
3388 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
3389 | "dev": true,
3390 | "peer": true,
3391 | "requires": {
3392 | "brace-expansion": "^1.1.7"
3393 | }
3394 | }
3395 | }
3396 | },
3397 | "eslint-scope": {
3398 | "version": "7.2.2",
3399 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
3400 | "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
3401 | "dev": true,
3402 | "peer": true,
3403 | "requires": {
3404 | "esrecurse": "^4.3.0",
3405 | "estraverse": "^5.2.0"
3406 | }
3407 | },
3408 | "eslint-visitor-keys": {
3409 | "version": "3.4.3",
3410 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
3411 | "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
3412 | "dev": true
3413 | },
3414 | "espree": {
3415 | "version": "9.6.1",
3416 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
3417 | "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
3418 | "dev": true,
3419 | "peer": true,
3420 | "requires": {
3421 | "acorn": "^8.9.0",
3422 | "acorn-jsx": "^5.3.2",
3423 | "eslint-visitor-keys": "^3.4.1"
3424 | }
3425 | },
3426 | "esquery": {
3427 | "version": "1.5.0",
3428 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
3429 | "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
3430 | "dev": true,
3431 | "peer": true,
3432 | "requires": {
3433 | "estraverse": "^5.1.0"
3434 | }
3435 | },
3436 | "esrecurse": {
3437 | "version": "4.3.0",
3438 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
3439 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
3440 | "dev": true,
3441 | "peer": true,
3442 | "requires": {
3443 | "estraverse": "^5.2.0"
3444 | }
3445 | },
3446 | "estraverse": {
3447 | "version": "5.3.0",
3448 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
3449 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
3450 | "dev": true,
3451 | "peer": true
3452 | },
3453 | "esutils": {
3454 | "version": "2.0.3",
3455 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
3456 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
3457 | "dev": true,
3458 | "peer": true
3459 | },
3460 | "fast-deep-equal": {
3461 | "version": "3.1.3",
3462 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
3463 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
3464 | "dev": true,
3465 | "peer": true
3466 | },
3467 | "fast-glob": {
3468 | "version": "3.3.2",
3469 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
3470 | "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
3471 | "dev": true,
3472 | "requires": {
3473 | "@nodelib/fs.stat": "^2.0.2",
3474 | "@nodelib/fs.walk": "^1.2.3",
3475 | "glob-parent": "^5.1.2",
3476 | "merge2": "^1.3.0",
3477 | "micromatch": "^4.0.4"
3478 | },
3479 | "dependencies": {
3480 | "glob-parent": {
3481 | "version": "5.1.2",
3482 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
3483 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
3484 | "dev": true,
3485 | "requires": {
3486 | "is-glob": "^4.0.1"
3487 | }
3488 | }
3489 | }
3490 | },
3491 | "fast-json-stable-stringify": {
3492 | "version": "2.1.0",
3493 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
3494 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
3495 | "dev": true,
3496 | "peer": true
3497 | },
3498 | "fast-levenshtein": {
3499 | "version": "2.0.6",
3500 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
3501 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
3502 | "dev": true,
3503 | "peer": true
3504 | },
3505 | "fastq": {
3506 | "version": "1.17.1",
3507 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
3508 | "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
3509 | "dev": true,
3510 | "requires": {
3511 | "reusify": "^1.0.4"
3512 | }
3513 | },
3514 | "file-entry-cache": {
3515 | "version": "6.0.1",
3516 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
3517 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
3518 | "dev": true,
3519 | "peer": true,
3520 | "requires": {
3521 | "flat-cache": "^3.0.4"
3522 | }
3523 | },
3524 | "fill-range": {
3525 | "version": "7.0.1",
3526 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
3527 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
3528 | "dev": true,
3529 | "requires": {
3530 | "to-regex-range": "^5.0.1"
3531 | }
3532 | },
3533 | "find-up": {
3534 | "version": "5.0.0",
3535 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
3536 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
3537 | "dev": true,
3538 | "peer": true,
3539 | "requires": {
3540 | "locate-path": "^6.0.0",
3541 | "path-exists": "^4.0.0"
3542 | }
3543 | },
3544 | "flat-cache": {
3545 | "version": "3.2.0",
3546 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
3547 | "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
3548 | "dev": true,
3549 | "peer": true,
3550 | "requires": {
3551 | "flatted": "^3.2.9",
3552 | "keyv": "^4.5.3",
3553 | "rimraf": "^3.0.2"
3554 | }
3555 | },
3556 | "flatted": {
3557 | "version": "3.2.9",
3558 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
3559 | "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
3560 | "dev": true,
3561 | "peer": true
3562 | },
3563 | "fs.realpath": {
3564 | "version": "1.0.0",
3565 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
3566 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
3567 | "dev": true,
3568 | "peer": true
3569 | },
3570 | "glob": {
3571 | "version": "7.2.3",
3572 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
3573 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
3574 | "dev": true,
3575 | "peer": true,
3576 | "requires": {
3577 | "fs.realpath": "^1.0.0",
3578 | "inflight": "^1.0.4",
3579 | "inherits": "2",
3580 | "minimatch": "^3.1.1",
3581 | "once": "^1.3.0",
3582 | "path-is-absolute": "^1.0.0"
3583 | },
3584 | "dependencies": {
3585 | "brace-expansion": {
3586 | "version": "1.1.11",
3587 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
3588 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
3589 | "dev": true,
3590 | "peer": true,
3591 | "requires": {
3592 | "balanced-match": "^1.0.0",
3593 | "concat-map": "0.0.1"
3594 | }
3595 | },
3596 | "minimatch": {
3597 | "version": "3.1.2",
3598 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
3599 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
3600 | "dev": true,
3601 | "peer": true,
3602 | "requires": {
3603 | "brace-expansion": "^1.1.7"
3604 | }
3605 | }
3606 | }
3607 | },
3608 | "glob-parent": {
3609 | "version": "6.0.2",
3610 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
3611 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
3612 | "dev": true,
3613 | "peer": true,
3614 | "requires": {
3615 | "is-glob": "^4.0.3"
3616 | }
3617 | },
3618 | "globals": {
3619 | "version": "13.24.0",
3620 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
3621 | "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
3622 | "dev": true,
3623 | "peer": true,
3624 | "requires": {
3625 | "type-fest": "^0.20.2"
3626 | }
3627 | },
3628 | "globby": {
3629 | "version": "11.1.0",
3630 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
3631 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
3632 | "dev": true,
3633 | "requires": {
3634 | "array-union": "^2.1.0",
3635 | "dir-glob": "^3.0.1",
3636 | "fast-glob": "^3.2.9",
3637 | "ignore": "^5.2.0",
3638 | "merge2": "^1.4.1",
3639 | "slash": "^3.0.0"
3640 | }
3641 | },
3642 | "graphemer": {
3643 | "version": "1.4.0",
3644 | "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
3645 | "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
3646 | "dev": true
3647 | },
3648 | "has-flag": {
3649 | "version": "4.0.0",
3650 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
3651 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3652 | "dev": true,
3653 | "peer": true
3654 | },
3655 | "https-proxy-agent": {
3656 | "version": "7.0.4",
3657 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
3658 | "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
3659 | "requires": {
3660 | "agent-base": "^7.0.2",
3661 | "debug": "4"
3662 | }
3663 | },
3664 | "ignore": {
3665 | "version": "5.3.1",
3666 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
3667 | "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
3668 | "dev": true
3669 | },
3670 | "import-fresh": {
3671 | "version": "3.3.0",
3672 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
3673 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
3674 | "dev": true,
3675 | "peer": true,
3676 | "requires": {
3677 | "parent-module": "^1.0.0",
3678 | "resolve-from": "^4.0.0"
3679 | }
3680 | },
3681 | "imurmurhash": {
3682 | "version": "0.1.4",
3683 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
3684 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
3685 | "dev": true,
3686 | "peer": true
3687 | },
3688 | "inflight": {
3689 | "version": "1.0.6",
3690 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
3691 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
3692 | "dev": true,
3693 | "peer": true,
3694 | "requires": {
3695 | "once": "^1.3.0",
3696 | "wrappy": "1"
3697 | }
3698 | },
3699 | "inherits": {
3700 | "version": "2.0.4",
3701 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
3702 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
3703 | "dev": true,
3704 | "peer": true
3705 | },
3706 | "is-extglob": {
3707 | "version": "2.1.1",
3708 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
3709 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
3710 | "dev": true
3711 | },
3712 | "is-glob": {
3713 | "version": "4.0.3",
3714 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
3715 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
3716 | "dev": true,
3717 | "requires": {
3718 | "is-extglob": "^2.1.1"
3719 | }
3720 | },
3721 | "is-number": {
3722 | "version": "7.0.0",
3723 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
3724 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
3725 | "dev": true
3726 | },
3727 | "is-path-inside": {
3728 | "version": "3.0.3",
3729 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
3730 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
3731 | "dev": true,
3732 | "peer": true
3733 | },
3734 | "isexe": {
3735 | "version": "2.0.0",
3736 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
3737 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
3738 | "dev": true,
3739 | "peer": true
3740 | },
3741 | "js-yaml": {
3742 | "version": "4.1.0",
3743 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
3744 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
3745 | "dev": true,
3746 | "peer": true,
3747 | "requires": {
3748 | "argparse": "^2.0.1"
3749 | }
3750 | },
3751 | "json-buffer": {
3752 | "version": "3.0.1",
3753 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
3754 | "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
3755 | "dev": true,
3756 | "peer": true
3757 | },
3758 | "json-schema-traverse": {
3759 | "version": "0.4.1",
3760 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
3761 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
3762 | "dev": true,
3763 | "peer": true
3764 | },
3765 | "json-stable-stringify-without-jsonify": {
3766 | "version": "1.0.1",
3767 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
3768 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
3769 | "dev": true,
3770 | "peer": true
3771 | },
3772 | "keyv": {
3773 | "version": "4.5.4",
3774 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
3775 | "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
3776 | "dev": true,
3777 | "peer": true,
3778 | "requires": {
3779 | "json-buffer": "3.0.1"
3780 | }
3781 | },
3782 | "levn": {
3783 | "version": "0.4.1",
3784 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
3785 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
3786 | "dev": true,
3787 | "peer": true,
3788 | "requires": {
3789 | "prelude-ls": "^1.2.1",
3790 | "type-check": "~0.4.0"
3791 | }
3792 | },
3793 | "locate-path": {
3794 | "version": "6.0.0",
3795 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
3796 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
3797 | "dev": true,
3798 | "peer": true,
3799 | "requires": {
3800 | "p-locate": "^5.0.0"
3801 | }
3802 | },
3803 | "lodash.merge": {
3804 | "version": "4.6.2",
3805 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
3806 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
3807 | "dev": true,
3808 | "peer": true
3809 | },
3810 | "lru-cache": {
3811 | "version": "6.0.0",
3812 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
3813 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
3814 | "dev": true,
3815 | "requires": {
3816 | "yallist": "^4.0.0"
3817 | }
3818 | },
3819 | "merge2": {
3820 | "version": "1.4.1",
3821 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
3822 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
3823 | "dev": true
3824 | },
3825 | "micromatch": {
3826 | "version": "4.0.5",
3827 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
3828 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
3829 | "dev": true,
3830 | "requires": {
3831 | "braces": "^3.0.2",
3832 | "picomatch": "^2.3.1"
3833 | }
3834 | },
3835 | "minimatch": {
3836 | "version": "9.0.3",
3837 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
3838 | "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
3839 | "dev": true,
3840 | "requires": {
3841 | "brace-expansion": "^2.0.1"
3842 | }
3843 | },
3844 | "ms": {
3845 | "version": "2.1.2",
3846 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
3847 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
3848 | },
3849 | "natural-compare": {
3850 | "version": "1.4.0",
3851 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
3852 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
3853 | "dev": true
3854 | },
3855 | "once": {
3856 | "version": "1.4.0",
3857 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
3858 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
3859 | "requires": {
3860 | "wrappy": "1"
3861 | }
3862 | },
3863 | "optionator": {
3864 | "version": "0.9.3",
3865 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
3866 | "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
3867 | "dev": true,
3868 | "peer": true,
3869 | "requires": {
3870 | "@aashutoshrathi/word-wrap": "^1.2.3",
3871 | "deep-is": "^0.1.3",
3872 | "fast-levenshtein": "^2.0.6",
3873 | "levn": "^0.4.1",
3874 | "prelude-ls": "^1.2.1",
3875 | "type-check": "^0.4.0"
3876 | }
3877 | },
3878 | "p-limit": {
3879 | "version": "3.1.0",
3880 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
3881 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
3882 | "dev": true,
3883 | "peer": true,
3884 | "requires": {
3885 | "yocto-queue": "^0.1.0"
3886 | }
3887 | },
3888 | "p-locate": {
3889 | "version": "5.0.0",
3890 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
3891 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
3892 | "dev": true,
3893 | "peer": true,
3894 | "requires": {
3895 | "p-limit": "^3.0.2"
3896 | }
3897 | },
3898 | "parent-module": {
3899 | "version": "1.0.1",
3900 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
3901 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
3902 | "dev": true,
3903 | "peer": true,
3904 | "requires": {
3905 | "callsites": "^3.0.0"
3906 | }
3907 | },
3908 | "path-exists": {
3909 | "version": "4.0.0",
3910 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
3911 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
3912 | "dev": true,
3913 | "peer": true
3914 | },
3915 | "path-is-absolute": {
3916 | "version": "1.0.1",
3917 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
3918 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
3919 | "dev": true,
3920 | "peer": true
3921 | },
3922 | "path-key": {
3923 | "version": "3.1.1",
3924 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
3925 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
3926 | "dev": true,
3927 | "peer": true
3928 | },
3929 | "path-type": {
3930 | "version": "4.0.0",
3931 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
3932 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
3933 | "dev": true
3934 | },
3935 | "picomatch": {
3936 | "version": "2.3.1",
3937 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
3938 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
3939 | "dev": true
3940 | },
3941 | "prelude-ls": {
3942 | "version": "1.2.1",
3943 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
3944 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
3945 | "dev": true,
3946 | "peer": true
3947 | },
3948 | "prettier": {
3949 | "version": "3.2.5",
3950 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
3951 | "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
3952 | "dev": true
3953 | },
3954 | "punycode": {
3955 | "version": "2.3.1",
3956 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
3957 | "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
3958 | "dev": true,
3959 | "peer": true
3960 | },
3961 | "queue-microtask": {
3962 | "version": "1.2.3",
3963 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
3964 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
3965 | "dev": true
3966 | },
3967 | "resolve-from": {
3968 | "version": "4.0.0",
3969 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
3970 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
3971 | "dev": true,
3972 | "peer": true
3973 | },
3974 | "reusify": {
3975 | "version": "1.0.4",
3976 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
3977 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
3978 | "dev": true
3979 | },
3980 | "rimraf": {
3981 | "version": "3.0.2",
3982 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
3983 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
3984 | "dev": true,
3985 | "peer": true,
3986 | "requires": {
3987 | "glob": "^7.1.3"
3988 | }
3989 | },
3990 | "run-parallel": {
3991 | "version": "1.2.0",
3992 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
3993 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
3994 | "dev": true,
3995 | "requires": {
3996 | "queue-microtask": "^1.2.2"
3997 | }
3998 | },
3999 | "semver": {
4000 | "version": "6.3.1",
4001 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
4002 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
4003 | },
4004 | "shebang-command": {
4005 | "version": "2.0.0",
4006 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
4007 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
4008 | "dev": true,
4009 | "peer": true,
4010 | "requires": {
4011 | "shebang-regex": "^3.0.0"
4012 | }
4013 | },
4014 | "shebang-regex": {
4015 | "version": "3.0.0",
4016 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
4017 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
4018 | "dev": true,
4019 | "peer": true
4020 | },
4021 | "slash": {
4022 | "version": "3.0.0",
4023 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
4024 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
4025 | "dev": true
4026 | },
4027 | "strip-ansi": {
4028 | "version": "6.0.1",
4029 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
4030 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
4031 | "dev": true,
4032 | "peer": true,
4033 | "requires": {
4034 | "ansi-regex": "^5.0.1"
4035 | }
4036 | },
4037 | "strip-json-comments": {
4038 | "version": "3.1.1",
4039 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
4040 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
4041 | "dev": true,
4042 | "peer": true
4043 | },
4044 | "supports-color": {
4045 | "version": "7.2.0",
4046 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
4047 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
4048 | "dev": true,
4049 | "peer": true,
4050 | "requires": {
4051 | "has-flag": "^4.0.0"
4052 | }
4053 | },
4054 | "text-table": {
4055 | "version": "0.2.0",
4056 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
4057 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
4058 | "dev": true,
4059 | "peer": true
4060 | },
4061 | "to-regex-range": {
4062 | "version": "5.0.1",
4063 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
4064 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
4065 | "dev": true,
4066 | "requires": {
4067 | "is-number": "^7.0.0"
4068 | }
4069 | },
4070 | "ts-api-utils": {
4071 | "version": "1.2.1",
4072 | "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz",
4073 | "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==",
4074 | "dev": true,
4075 | "requires": {}
4076 | },
4077 | "tunnel": {
4078 | "version": "0.0.6",
4079 | "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
4080 | "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
4081 | },
4082 | "type-check": {
4083 | "version": "0.4.0",
4084 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
4085 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
4086 | "dev": true,
4087 | "peer": true,
4088 | "requires": {
4089 | "prelude-ls": "^1.2.1"
4090 | }
4091 | },
4092 | "type-fest": {
4093 | "version": "0.20.2",
4094 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
4095 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
4096 | "dev": true,
4097 | "peer": true
4098 | },
4099 | "typescript": {
4100 | "version": "5.3.3",
4101 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
4102 | "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
4103 | "dev": true
4104 | },
4105 | "undici": {
4106 | "version": "5.28.3",
4107 | "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz",
4108 | "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==",
4109 | "requires": {
4110 | "@fastify/busboy": "^2.0.0"
4111 | }
4112 | },
4113 | "undici-types": {
4114 | "version": "5.26.5",
4115 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
4116 | "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
4117 | "dev": true
4118 | },
4119 | "universal-user-agent": {
4120 | "version": "6.0.1",
4121 | "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz",
4122 | "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ=="
4123 | },
4124 | "uri-js": {
4125 | "version": "4.4.1",
4126 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
4127 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
4128 | "dev": true,
4129 | "peer": true,
4130 | "requires": {
4131 | "punycode": "^2.1.0"
4132 | }
4133 | },
4134 | "uuid": {
4135 | "version": "3.4.0",
4136 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
4137 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
4138 | },
4139 | "which": {
4140 | "version": "2.0.2",
4141 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
4142 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
4143 | "dev": true,
4144 | "peer": true,
4145 | "requires": {
4146 | "isexe": "^2.0.0"
4147 | }
4148 | },
4149 | "wrappy": {
4150 | "version": "1.0.2",
4151 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
4152 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
4153 | },
4154 | "yallist": {
4155 | "version": "4.0.0",
4156 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
4157 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
4158 | "dev": true
4159 | },
4160 | "yocto-queue": {
4161 | "version": "0.1.0",
4162 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
4163 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
4164 | "dev": true,
4165 | "peer": true
4166 | }
4167 | }
4168 | }
4169 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "buf-setup",
3 | "version": "1.6.0",
4 | "scripts": {
5 | "build": "esbuild --minify --bundle --sourcemap '--define:process.env.NODE_ENV=\"production\"' --outdir=dist --platform=node --target=node20 ./src/main.ts",
6 | "eslint": "eslint --max-warnings 0 .",
7 | "format": "prettier --write '**/*.{json,js,jsx,ts,tsx,css}' --loglevel error",
8 | "lint": "npm run eslint && npm run types-check",
9 | "types-check": "tsc --noemit"
10 | },
11 | "engineStrict": true,
12 | "engines": {
13 | "node": ">=20",
14 | "npm": ">=8"
15 | },
16 | "dependencies": {
17 | "@actions/core": "^1.10.1",
18 | "@actions/github": "^6.0.0",
19 | "@actions/io": "^1.1.3",
20 | "@actions/tool-cache": "^2.0.1",
21 | "https-proxy-agent": "^7.0.2",
22 | "semver": "^6.3.1"
23 | },
24 | "devDependencies": {
25 | "@types/node": "^20.11.19",
26 | "@typescript-eslint/eslint-plugin": "^7.0.1",
27 | "@typescript-eslint/parser": "^7.0.1",
28 | "esbuild": "^0.20.1",
29 | "prettier": "^3.2.5",
30 | "typescript": "^5.3.3"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/buf.ts:
--------------------------------------------------------------------------------
1 | // Copyright 2020-2025 Buf Technologies, Inc.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | import * as os from "os";
16 | import * as path from "path";
17 | import * as core from "@actions/core";
18 | import * as tc from "@actions/tool-cache";
19 | import { Octokit } from "@octokit/core";
20 | import { Error, isError } from "./error";
21 | import { HttpsProxyAgent } from "https-proxy-agent";
22 |
23 | // versionPrefix is used in Github release names, and can
24 | // optionally be specified in the action's version parameter.
25 | const versionPrefix = "v";
26 |
27 | export async function getBuf(
28 | version: string,
29 | githubToken: string,
30 | ): Promise {
31 | const binaryPath = tc.find("buf", version, os.arch());
32 | if (binaryPath !== "") {
33 | core.info(`Found in cache @ ${binaryPath}`);
34 | return binaryPath;
35 | }
36 |
37 | core.info(`Resolving the download URL for the current platform...`);
38 | const downloadURL = await getDownloadURL(version, githubToken);
39 | if (isError(downloadURL)) {
40 | return downloadURL;
41 | }
42 |
43 | let cacheDir = "";
44 | core.info(`Downloading buf version "${version}" from ${downloadURL}`);
45 | if (downloadURL.endsWith(".tar.gz")) {
46 | const downloadPath = await tc.downloadTool(downloadURL);
47 | core.info(
48 | `Successfully downloaded buf version "${version}" from ${downloadURL}`,
49 | );
50 |
51 | core.info("Extracting buf...");
52 | const extractPath = await tc.extractTar(downloadPath);
53 | core.info(`Successfully extracted buf to ${extractPath}`);
54 |
55 | core.info("Adding buf to the cache...");
56 | cacheDir = await tc.cacheDir(
57 | path.join(extractPath, "buf"),
58 | "buf",
59 | version,
60 | os.arch(),
61 | );
62 | } else {
63 | // For Windows, we only download the .exe for `buf` CLI becasue we do not create `.tar.gz`
64 | // bundles for Windows releases.
65 | const downloadPath = await tc.downloadTool(
66 | downloadURL,
67 | "C:\\Users\\runneradmin\\buf-download\\buf.exe",
68 | );
69 | core.info(
70 | `Successfully downloaded buf version "${version}" from ${downloadURL} to ${downloadPath}`,
71 | );
72 |
73 | core.info("Adding buf to the cache...");
74 | cacheDir = await tc.cacheDir(
75 | path.dirname(downloadPath),
76 | "buf",
77 | version,
78 | os.arch(),
79 | );
80 | }
81 | core.info(`Successfully cached buf to ${cacheDir}`);
82 | return cacheDir;
83 | }
84 |
85 | // getDownloadURL resolves Buf's Github download URL for the
86 | // current architecture and platform.
87 | async function getDownloadURL(
88 | version: string,
89 | githubToken: string,
90 | ): Promise {
91 | let architecture = "";
92 | switch (os.arch()) {
93 | // The available architectures can be found at:
94 | // https://nodejs.org/api/process.html#process_process_arch
95 | case "x64":
96 | architecture = "x86_64";
97 | break;
98 | case "arm64":
99 | architecture = "arm64";
100 | break;
101 | default:
102 | return {
103 | message: `The "${os.arch()}" architecture is not supported with a Buf release.`,
104 | };
105 | }
106 | let platform = "";
107 | switch (os.platform()) {
108 | // The available platforms can be found at:
109 | // https://nodejs.org/api/process.html#process_process_platform
110 | case "linux":
111 | platform = "Linux";
112 | break;
113 | case "darwin":
114 | platform = "Darwin";
115 | break;
116 | case "win32":
117 | platform = "Windows";
118 | break;
119 | default:
120 | return {
121 | message: `The "${os.platform()}" platform is not supported with a Buf release.`,
122 | };
123 | }
124 | // The asset name is determined by the buf release structure found at:
125 | // https://github.com/bufbuild/buf/blob/8255257bd94c9f1b5faa27242211c5caad05be79/make/buf/scripts/release.bash#L102
126 | let assetName = "";
127 |
128 | // See: https://github.com/bufbuild/buf-setup-action/issues/166
129 | if (platform === "Linux" && architecture === "arm64") {
130 | architecture = "aarch64";
131 | }
132 |
133 | // For Windows, we only download the .exe for `buf` CLI
134 | if (platform === "Windows") {
135 | assetName = `buf-${platform}-${architecture}.exe`;
136 | } else {
137 | assetName = `buf-${platform}-${architecture}.tar.gz`;
138 | }
139 | const requestAgent = process.env.http_proxy
140 | ? new HttpsProxyAgent(process.env.http_proxy)
141 | : undefined;
142 | const octokit = new Octokit({
143 | auth: githubToken,
144 | request: {
145 | agent: requestAgent,
146 | },
147 | });
148 | if (version === "latest") {
149 | const { data: releases } = await octokit.request(
150 | "GET /repos/{owner}/{repo}/releases",
151 | {
152 | owner: "bufbuild",
153 | repo: "buf",
154 | per_page: 1,
155 | },
156 | );
157 | for (const asset of releases[0].assets) {
158 | if (assetName === asset.name) {
159 | return asset.browser_download_url;
160 | }
161 | }
162 | return {
163 | message: `Unable to find Buf version "${version}" for platform "${platform}" and architecture "${architecture}".`,
164 | };
165 | }
166 | const tag = releaseTagForVersion(version);
167 | const { data: release } = await octokit.request(
168 | "GET /repos/{owner}/{repo}/releases/tags/{tag}",
169 | {
170 | owner: "bufbuild",
171 | repo: "buf",
172 | tag: tag,
173 | },
174 | );
175 | for (const asset of release.assets) {
176 | if (assetName === asset.name) {
177 | return asset.browser_download_url;
178 | }
179 | }
180 | return {
181 | message: `Unable to find Buf version "${version}" for platform "${platform}" and architecture "${architecture}".`,
182 | };
183 | }
184 |
185 | // releaseTagForVersion returns the release tag name based on a given version configuration.
186 | // Github releases include the 'v' prefix, but the `buf --version` does not. Thus, we permit
187 | // both versions, e.g. v0.38.0 and 0.38.0.
188 | function releaseTagForVersion(version: string): string {
189 | if (version.indexOf(versionPrefix) === 0) {
190 | return version;
191 | }
192 | return versionPrefix + version;
193 | }
194 |
--------------------------------------------------------------------------------
/src/error.ts:
--------------------------------------------------------------------------------
1 | // Copyright 2020-2025 Buf Technologies, Inc.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | // Error is the built-in error type.
16 | export interface Error {
17 | message: string;
18 | }
19 |
20 | // isError determines if the given value is an Error.
21 | // https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates
22 | // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
23 | export function isError(value: any): value is Error {
24 | // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
25 | return (value as Error).message !== undefined;
26 | }
27 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | // Copyright 2020-2025 Buf Technologies, Inc.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | import { run } from "./run";
16 |
17 | void run();
18 |
--------------------------------------------------------------------------------
/src/run.ts:
--------------------------------------------------------------------------------
1 | // Copyright 2020-2025 Buf Technologies, Inc.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | import cp from "child_process";
16 | import * as os from "os";
17 | import * as path from "path";
18 | import * as core from "@actions/core";
19 | import * as io from "@actions/io";
20 | import { getBuf } from "./buf";
21 | import { Error, isError } from "./error";
22 |
23 | export async function run(): Promise {
24 | try {
25 | const result = await runSetup();
26 | if (result !== null && isError(result)) {
27 | core.setFailed(result.message);
28 | }
29 | } catch (error) {
30 | // In case we ever fail to catch an error
31 | // in the call chain, we catch the error
32 | // and mark the build as a failure. The
33 | // user is otherwise prone to false positives.
34 | if (isError(error)) {
35 | core.setFailed(error.message);
36 | return;
37 | }
38 | core.setFailed("Internal error");
39 | }
40 | }
41 |
42 | // runSetup runs the buf-setup action, and returns
43 | // a non-empty error if it fails.
44 | async function runSetup(): Promise {
45 | const version = core.getInput("version");
46 | if (version === "") {
47 | return {
48 | message: "a version was not provided",
49 | };
50 | }
51 |
52 | const githubToken = core.getInput("github_token");
53 | if (githubToken === "") {
54 | core.warning(
55 | "No github_token supplied, API requests will be subject to stricter rate limiting",
56 | );
57 | }
58 |
59 | core.info(`Setting up buf version "${version}"`);
60 | const installDir = await getBuf(version, githubToken);
61 | if (isError(installDir)) {
62 | return installDir;
63 | }
64 |
65 | core.info("Adding buf binary to PATH");
66 | let binaryPath = "";
67 | if (os.platform() === "win32") {
68 | core.addPath(installDir);
69 | } else {
70 | core.addPath(path.join(installDir, "bin"));
71 | }
72 | binaryPath = await io.which("buf", true);
73 | if (binaryPath === "") {
74 | return {
75 | message: "buf was not found on PATH",
76 | };
77 | }
78 |
79 | core.info(`Successfully setup buf version ${version}`);
80 | core.info(cp.execSync(`${binaryPath} --version`).toString());
81 |
82 | const bufDomain = core.getInput("buf_domain");
83 | const bufUser = core.getInput("buf_user");
84 | const bufAPIToken = core.getInput("buf_api_token");
85 | if (bufUser !== "" && bufAPIToken !== "") {
86 | core.info(`buf_user and buf_token supplied, logging in...`);
87 | core.info(
88 | cp
89 | .execSync(
90 | `${binaryPath} registry login ${bufDomain} --username ${bufUser} --token-stdin`,
91 | { input: bufAPIToken },
92 | )
93 | .toString(),
94 | );
95 | return null;
96 | }
97 |
98 | if (bufUser !== "") {
99 | core.info(
100 | `buf_user is supplied, must also supply buf_token to log into Buf Schema Registry`,
101 | );
102 | return null;
103 | }
104 |
105 | if (bufAPIToken !== "") {
106 | core.info(
107 | `buf_token is supplied, must also supply buf_user to log into Buf Schema Registry`,
108 | );
109 | return null;
110 | }
111 |
112 | core.info(
113 | `buf_user and buf_token are not supplied, not logging into Buf Schema Registry`,
114 | );
115 | return null;
116 | }
117 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": "./src",
4 | "lib": ["ES6"],
5 | "jsx": "preserve",
6 | "noImplicitAny": true,
7 | "esModuleInterop": true,
8 | "target": "es6",
9 | "allowJs": false,
10 | "skipLibCheck": true,
11 | "allowSyntheticDefaultImports": true,
12 | "strict": true,
13 | "forceConsistentCasingInFileNames": true,
14 | "module": "esnext",
15 | "moduleResolution": "node",
16 | "resolveJsonModule": true,
17 | "isolatedModules": true,
18 | "noEmit": true,
19 | "noImplicitReturns": true,
20 | "noFallthroughCasesInSwitch": true,
21 | "noUnusedParameters": true
22 | }
23 | }
24 |
--------------------------------------------------------------------------------