diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 12c5981..69d0971 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -95,7 +95,7 @@ jobs:
breaking: false
push: false
archive: false
- comment: false
+ pr_comment: false
test-format:
runs-on: ubuntu-latest
needs: build
@@ -112,7 +112,7 @@ jobs:
breaking: false
push: false
archive: false
- comment: false
+ pr_comment: false
test-breaking:
runs-on: ubuntu-latest
needs: build
@@ -130,7 +130,7 @@ jobs:
breaking_against: .
push: false
archive: false
- comment: false
+ pr_comment: false
test-comment:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
@@ -158,13 +158,13 @@ jobs:
breaking_against: .
push: false
archive: false
- comment: true
+ pr_comment: true
- uses: actions/github-script@v7
with:
script: |
const expectedComment = `The latest Buf updates on your PR.
-
Name | Status |
---|
build | ✅ passed |
format | ❌ failed |
breaking | ✅ passed |
+ Name | Status |
---|
build | ✅ passed |
lint | ⏩ skipped |
format | ❌ failed |
breaking | ✅ passed |
`
const commentTag = "";
const { owner, repo } = context.repo;
@@ -231,7 +231,7 @@ jobs:
breaking: false
push: true
archive: false
- comment: false
+ pr_comment: false
test-push-token-only:
needs: build
runs-on: ubuntu-latest
@@ -252,7 +252,7 @@ jobs:
breaking: false
push: true
archive: false
- comment: false
+ pr_comment: false
test-push-unnamed:
needs: build
runs-on: ubuntu-latest
@@ -272,7 +272,7 @@ jobs:
breaking: false
push: true
archive: false
- comment: false
+ pr_comment: false
# Test v1 buf.yaml config.
- run: |
rm -rf proto
@@ -287,7 +287,7 @@ jobs:
breaking: false
push: true
archive: false
- comment: false
+ pr_comment: false
input: proto
# Test v2 with multiple modules, one without a name.
- env:
@@ -306,7 +306,7 @@ jobs:
breaking: false
push: true
archive: false
- comment: false
+ pr_comment: false
test-archive:
if: github.event_name == 'push' && github.ref_name != github.event.repository.default_branch
runs-on: ubuntu-latest
@@ -331,38 +331,8 @@ jobs:
breaking: false
push: false
archive: true
- # On push github.ref_name, on delete github.event.ref_name.
- archive_labels: ${{ github.ref_name }}
- comment: false
- test-archive-name:
- # Check the archive command parses non-module names.
- runs-on: ubuntu-latest
- needs:
- - test-push
- - test-push-token-only
- - test-push-unnamed
- steps:
- - uses: actions/checkout@v4
- - env:
- BUF_USERNAME: ${{ secrets.BUF_USERNAME }}
- run: |
- mkdir -p foo/v1
- printf "version: v2\nname: ${BUF_MODULE}\n" > buf.yaml
- printf "syntax = \"proto3\";\npackage foo.v1;\nmessage Bar {}\n" > foo/v1/bar.proto
- - uses: ./
- with:
- username: ${{ secrets.BUF_USERNAME }}
- token: ${{ secrets.BUF_TOKEN }}
- lint: false
- format: false
- breaking: false
- push: true # Push to re-create.
- push_git_metadata: false
- push_labels: ${{ github.event.ref }}-root-name
- archive: true # Archive the pushed module.
- archive_labels: ${{ github.event.ref }}-root-name
- comment: false
- test-archive-not-exists:
+ pr_comment: false
+ test-archive-unnamed:
if: github.event_name == 'push'
runs-on: ubuntu-latest
needs:
@@ -371,70 +341,54 @@ jobs:
- test-push-unnamed
steps:
- uses: actions/checkout@v4
- - env:
- BUF_USERNAME: ${{ secrets.BUF_USERNAME }}
- run: |
+ - run: |
mkdir -p proto/foo/v1
- printf "version: v2\nmodules:\n - path: proto\n name: ${BUF_MODULE}\n" > buf.yaml
+ printf "version: v2\nmodules:\n - path: proto\n" > buf.yaml
printf "syntax = \"proto3\";\npackage foo.v1;\nmessage Bar {}\n" > proto/foo/v1/bar.proto
- uses: ./
with:
- username: ${{ secrets.BUF_USERNAME }}
token: ${{ secrets.BUF_TOKEN }}
lint: false
format: false
breaking: false
push: false
archive: true
- archive_labels: label_does_not_exist
- comment: false
+ pr_comment: false
+ - run: |
+ rm -rf proto
+ mkdir -p proto/foo/v1
+ printf "version: v1\n" > proto/buf.yaml
+ printf "syntax = \"proto3\";\npackage foo.v1;\nmessage Bar {}\n" > proto/foo/v1/bar.proto
- uses: ./
with:
- username: ${{ secrets.BUF_USERNAME }}
token: ${{ secrets.BUF_TOKEN }}
lint: false
format: false
breaking: false
push: false
archive: true
- archive_labels: |
- label_does_not_exist
- label_does_not_exist_either
- comment: false
- test-archive-unnamed:
- if: github.event_name == 'push'
+ pr_comment: false
+ input: proto
+ test-archive-root:
+ # Check the archive command parses non-module names.
runs-on: ubuntu-latest
needs:
- - test-push
- - test-push-token-only
- - test-push-unnamed
+ - test-archive
steps:
- uses: actions/checkout@v4
- - run: |
- mkdir -p proto/foo/v1
- printf "version: v2\nmodules:\n - path: proto\n" > buf.yaml
- printf "syntax = \"proto3\";\npackage foo.v1;\nmessage Bar {}\n" > proto/foo/v1/bar.proto
- - uses: ./
- with:
- token: ${{ secrets.BUF_TOKEN }}
- lint: false
- format: false
- breaking: false
- push: false
- archive: true
- comment: false
- - run: |
- rm -rf proto
- mkdir -p proto/foo/v1
- printf "version: v1\n" > proto/buf.yaml
- printf "syntax = \"proto3\";\npackage foo.v1;\nmessage Bar {}\n" > proto/foo/v1/bar.proto
+ - env:
+ BUF_USERNAME: ${{ secrets.BUF_USERNAME }}
+ run: |
+ mkdir -p foo/v1
+ printf "version: v2\nname: ${BUF_MODULE}\n" > buf.yaml
+ printf "syntax = \"proto3\";\npackage foo.v1;\nmessage Bar {}\n" > foo/v1/bar.proto
- uses: ./
with:
+ username: ${{ secrets.BUF_USERNAME }}
token: ${{ secrets.BUF_TOKEN }}
lint: false
format: false
breaking: false
- push: false
- archive: true
+ push: true # Push to re-create.
+ archive: true # Archive the pushed module.
comment: false
- input: proto
diff --git a/README.md b/README.md
index b720b66..cae4192 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@ This GitHub action makes it easy to run [`buf`][buf] within a workflow to check
[lint](https://buf.build/docs/lint/overview),
[format](https://buf.build/docs/format/style),
and [breaking change](https://buf.build/docs/breaking/overview) errors,
-as well as to automatically [publish schema changes](https://buf.build/docs/bsr/module/publish) to a public or private instance of the [Buf Schema Registry](https://buf.build/product/bsr).
+as well as to automatically [publish schema changes](https://buf.build/docs/bsr/module/publish) to the [Buf Schema Registry (BSR)](https://buf.build/product/bsr).
![Annotations example for lint and breaking changes](./static/img/annotations-example.png "Annotations example")
@@ -42,31 +42,72 @@ jobs:
token: ${{ secrets.BUF_TOKEN }}
```
-See [action.yml](action.yml) for all options.
-
### Default behavior
-The default behavior of this action is the recommended workflow for a GitHub repository that contains Protobuf files.
+When you push a Git commit, tag, or branch to GitHub, the action will [push named modules to the BSR](https://buf.build/docs/bsr/module/publish) using `buf push`.
+
+On a pull request, the action will run all checks (using `buf build`, `buf lint`, `buf format`, `buf breaking`) and then post a [summary comment](#summary-comment) on the PR.
+
+When you delete a Git branch or tag, the action will archive the corresponding label on the BSR.
-| GitHub action event | Default behavior | `buf` commands |
-| - | - | - |
-| [`push`][push-event] | Modules that are configured with a BSR name are [pushed to the BSR](https://buf.build/docs/bsr/module/publish) every time a new Git commit, tag, or branch is pushed to GitHub. | `buf push` |
-| [`pull_request`][pull-request-event] | Run all checks and post (or update) a [summary comment](#summary-comment) on the PR every time the PR is updated. Errors are added as annotations on the PR. | `buf build`
`buf lint`
`buf format`
`buf breaking` |
-| [`delete`][delete-event] | Archive the corresponding label on the BSR every time a Git branch or tag is deleted from GitHub. | `buf beta registry archive --label` |
-### Skipping steps
+### Configuration
-The default configuration makes it possible to skip lint, formatting, or breaking change checks on a PR
-by adding a label with a (case-insensitive) special name to that PR.
+To customize the behavior of the action, you can set the following parameters in the workflow file.
+Add these parameters under the `with` section of the `uses` step in the workflow file.
+
+```yaml
+- uses: bufbuild/buf-action@v0.1
+ with:
+ ...
+```
-- `buf skip breaking`: skips breaking change detection.
-- `buf skip lint`: skips lint.
-- `buf skip format`: skips format.
+| Parameter | Description | Default |
+|:--------------------------------|:---------------------------------------------------|:-------------------|
+| `version` | Version of the `buf` CLI to use. | Latest [version][buf-releases] |
+| `username` | Username for [logging into the BSR](https://buf.build/docs/bsr/authentication). | |
+| `token` | API token for [logging into the BSR](https://buf.build/docs/bsr/authentication). | |
+| `domain` | Domain for logging into the BSR, enterprise only.| `buf.build` |
+| `input` | [Input](https://buf.build/docs/reference/inputs) for the `buf` command. | |
+| `paths` | Limit to specific files or directories (separated by newlines). | |
+| `exclude_imports` | Exclude files imported by the target modules. | False |
+| `exclude_paths` | Exclude specific files or directories, e.g. "proto/a/a.proto", "proto/a" (separated by newlines). | |
+| `pr_comment` | Comment the results on the pull request. | Only on pull requests |
+| `format` | Whether to run the formatting step. | Runs on pushes to Git PR |
+| `lint` | Whether to run the linting step. | Runs on pushes to Git PR |
+| `breaking` | Whether to run the breaking change detection step. | Runs on pushes to Git PR |
+| `breaking_against` | [Input](https://buf.build/docs/reference/inputs) to compare against. | Base of the PR or the commit before the event |
+| `push` | Whether to run the push step. | Runs on Git pushes |
+| `push_disable_create` | Disables repository creation if it does not exist. | False |
+| `archive` | Whether to run the archive step. | Runs on Git deletes |
+| `setup_only` | Setup only the `buf` environment, optionally logging into the BSR, but without executing other commands. | |
+
+
+### Skip the breaking change detection step
+
+By default, the action runs the breaking change detection step on every pull request.
+To skip this step, add the label `buf skip breaking` to the PR.
+
+![Skip breaking changes example](./static/img/skip-breaking-example.png "Skip breaking changes example")
Ensure the workflow file includes the `pull_request` event types `labeled` and `unlabeled` so checks re-run on label changes.
-To disable this behaviour, override the action inputs `breaking`, `lint`, and `format`.
+
+To disable the ability to skip breaking change checks via a label, set the `breaking` parameter to the value `${{ github.event_name == 'pull_request' }}` so it runs on all PRs.
See [examples/disable-skip/buf-ci.yaml](examples/disable-skip/buf-ci.yaml) for an example.
+### Disable steps
+
+To disable parts of the workflow, each step corresponds to a boolean flag in the parameters.
+For example to disable formatting set the parameter `format` to `false`:
+
+```yaml
+- uses: bufbuild/buf-action@v0.1
+ with:
+ format: false
+```
+
+See [action.yml](action.yml) for all available parameters.
+
### Versioning
For reproducible builds, you can pin to an explicit version of `buf` by setting `version`.
@@ -77,21 +118,21 @@ For reproducible builds, you can pin to an explicit version of `buf` by setting
version: 1.34.0
```
-If no version is specified in the workflow config, the action will resolve the version in order of precendence:
+If no version is specified in the workflow config, the action will resolve the version in order of precedence:
- A version specified in the environment variable `${BUF_VERSION}`.
- The version of `buf` that is already installed on the runner (if it exists).
- The latest version of the `buf` binary from the official releases on GitHub.
### Authentication
-[Publishing schemas](https://buf.build/docs/bsr/module/publish) to the Buf Schema Registry (BSR) provides a seamless
+[Publishing schemas](https://buf.build/docs/bsr/module/publish) to the BSR provides a seamless
way for consumers of your APIs to generate code.
Authenticating with the BSR is required for both the push and archive label steps.
-To authenticate with the BSR, set the inputs `username` and `token`.
+To authenticate with the BSR, set the parameters `username` and `token`.
The `username` and `token` values should be
[stored as secrets in the repository settings](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions).
-The `token` value can be [generated from the Buf Schema Registry UI](https://buf.build/docs/bsr/authentication#create-an-api-token).
+The `token` value can be [generated from the BSR UI](https://buf.build/docs/bsr/authentication#create-an-api-token).
```yaml
- uses: bufbuild/buf-action@v0.1
@@ -100,7 +141,7 @@ The `token` value can be [generated from the Buf Schema Registry UI](https://buf
token: ${{ secrets.BUF_TOKEN }}
```
-For more information on authentication, see the [Buf Schema Registry Authentication Reference](https://buf.build/docs/bsr/authentication).
+For more information on authentication, see the [BSR Authentication Reference](https://buf.build/docs/bsr/authentication).
### Summary comment
@@ -108,7 +149,7 @@ The action reports the status of the most recent checks in a comment on each pul
![Comment example showing the GitHub summary](./static/img/comment-example.png "Summary comment example")
-To disable the comment, set the input `comment` to `false` and remove the permission `pull_request: write` as this is no longer required.
+To disable the comment, set the parameter `comment` to `false` and remove the permission `pull_request: write` as this is no longer required.
```diff
name: Buf CI
@@ -129,27 +170,32 @@ jobs:
with:
username: ${{ secrets.BUF_USERNAME }}
token: ${{ secrets.BUF_TOKEN }}
-+ comment: false
++ pr_comment: false
```
-### Specify input directory
+### Specify the input directory
-To run the action for inputs not specified at the root of the repository,
-set the input `input` to the path of your `buf.yaml` directory.
+To run the action for parameters not declared at the root of the repository,
+set the parameter `input` to the directory of your `buf.yaml` file.
+
+```yaml
+- uses: bufbuild/buf-action@v0.1
+ with:
+ input:
+```
-Breaking change detection will also need to be configured with the correct value for `breaking_against`.
-If you are using a URL, add the `subdir` parameter to match `input`.
+Breaking change detection by default will use the `input` value as a subdirectory for the breaking against value.
+To customize this behavior, set the parameter `breaking_against` to the desired input.
```yaml
- uses: bufbuild/buf-action@v0.1
with:
- input: protos
- breaking_against: |
- ${{ github.event.repository.clone_url }}#format=git,commit=${{ github.event.pull_request.base.sha }},subdir=protos
+ input:
+ breaking_against: ${{ github.event.repository.clone_url }}#format=git,commit=${{ github.event.pull_request.base.sha }},subdir=
```
Alternatively, you can checkout the base for the breaking comparison to a local folder
-and then set the value of `breaking_against` to point to that local folder.
+and then set the value of `breaking_against` to the path of the base.
```yaml
- uses: actions/checkout@v4
@@ -161,15 +207,15 @@ and then set the value of `breaking_against` to point to that local folder.
ref: ${{ github.event.pull_request.base.sha }}
- uses: bufbuild/buf-action@v0.1
with:
- input: head/protos
- breaking_against: base/protos
+ input: head/
+ breaking_against: base/
```
For more information on inputs, see the [Buf Inputs Reference](https://buf.build/docs/reference/inputs).
### Setup only
-To only setup the action without running any commands, set the input `setup_only` to `true`.
+To only setup the action without running any commands, set the parameter `setup_only` to `true`.
This will install `buf` and optionally login to the schema registry but no additional commands will be run.
Subsequent steps will have `buf` available in their $PATH and can invoke `buf` directly.
@@ -182,23 +228,10 @@ Subsequent steps will have `buf` available in their $PATH and can invoke `buf` d
See the [only-setup.yaml](examples/only-setup/buf-ci.yaml) example.
-### Skip steps
-
-To skip or disable parts of the workflow, each step corresponds to a boolean flag in the input.
-For example to disable formatting set the input `format` to `false`:
-
-```yaml
-- uses: bufbuild/buf-action@v0.1
- with:
- format: false
-```
-
-See [action.yml](action.yml) for all available inputs.
-
### Customize when steps run
To trigger steps on different events use the GitHub action context to deduce the event type.
-For example to enable formatting checks on both pull requests and push create an expression for the input `format`:
+For example to enable formatting checks on both pull requests and push create an expression for the parameter `format`:
```yaml
- uses: bufbuild/buf-action@v0.1
@@ -208,10 +241,10 @@ For example to enable formatting checks on both pull requests and push create an
See [GitHub Actions expressions](https://docs.github.com/en/actions/learn-github-actions/expressions) documentation.
-### Skip checks on commit messages
+### Skip checks if commit message matches a specific pattern
To conditionally run checks based on user input, use the GitHub action context to check for the contents of the commit.
-For example to disable breaking change detection on commits, create an expression on the input `breaking` to check the contents of the commit message:
+For example to disable breaking change detection on commits, create an expression on the parameter `breaking` to check the contents of the commit message:
```yaml
- uses: bufbuild/buf-action@v0.1
@@ -223,9 +256,9 @@ For example to disable breaking change detection on commits, create an expressio
See [GitHub Actions job context](https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#job-context) documentation.
-### Only push on changes
+### Only push on changes to APIs
-To push only on changes to the protos, restrict the push step for any changes to buf releated files.
+To push only on changes to when your module changes, restrict the push step for any changes to `buf` related files.
This can be achieved by using the `paths` filter on the `push` event.
```yaml
@@ -241,27 +274,6 @@ push:
See the [push-on-changes.yaml](examples/push-on-changes/buf-ci.yaml) example.
-### Verify generated files are up-to-date
-
-If your project uses local code generation, we recommend checking for diffs on pull requests.
-This isn't available as a built-in step because generating code may require manual setup, but can easily be added by invoking `buf`.
-
-To check that generated files match committed protobuf files, run the `buf generate` command and then `git diff`.
-If differences exist, `git diff` returns a non-zero exit code with the `--exit-code` flag.
-
-```yaml
-- name: Run buf generate
- run: |
- buf generate --error-format github-actions
- git diff --exit-code gen
-```
-
-#### Builtin protoc plugins
-
-Some projects require the use of builtin `protoc` plugins, such as `protoc-gen-cpp`.
-To use these plugins, please additionaly install `protoc` such as with the action
-[`setup-protoc`](https://github.com/marketplace/actions/setup-protoc).
-
### Example workflows
Check out the [examples](examples) directory for more detailed workflows.
@@ -272,7 +284,7 @@ If you're currently using any of our individual actions
([buf-setup-action][buf-setup], [buf-breaking-action][buf-breaking], [buf-lint-action][buf-lint], [buf-push-action][buf-push]),
we recommend migrating to this consolidated action that has additional capabilities. Benefits to migrating include:
- Less configuration and setup, with built-in best practices.
-- Enhanced integration with Git data when pushing to the Buf Schema Registry (BSR).
+- Enhanced integration with Git data when pushing to the BSR.
- Status comments on pull requests.
- Easy configuration for custom behavior.
@@ -295,6 +307,7 @@ Offered under the [Apache 2 license][license].
[buf-cli]: https://github.com/bufbuild/buf
[buf-lint]: https://github.com/marketplace/actions/buf-lint
[buf-push]: https://github.com/marketplace/actions/buf-push
+[buf-releases]: https://github.com/bufbuild/buf/releases
[ci]: https://github.com/bufbuild/buf-action/actions/workflows/ci.yaml
[license]: https://github.com/bufbuild/bufisk/blob/main/LICENSE
[slack]: https://buf.build/links/slack
diff --git a/action.yml b/action.yml
index 905d024..2ba22a6 100644
--- a/action.yml
+++ b/action.yml
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Buf Technologies, Inc.
+# Copyright 2024 Buf Technologies, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -31,15 +31,15 @@ inputs:
required: false
username:
description: |-
- Username for logging into the Buf Schema Registry.
+ Username for logging into the BSR.
required: false
token:
description: |-
- API token for logging into the Buf Schema Registry.
+ API token for logging into the BSR.
required: false
domain:
description: |-
- Domain for logging into the Buf Schema Registry.
+ Domain for logging into the BSR, enterprise only.
required: false
default: "buf.build"
github_actor:
@@ -57,9 +57,9 @@ inputs:
Setup only the buf environment, optionally logging into the BSR, but without executing other commands.
required: false
default: "false"
- comment:
+ pr_comment:
description: |-
- Comment on the pull request with the results of the lint, format, and breaking steps.
+ Comment on the pull request with the results of each step.
required: false
default: ${{ github.event_name == 'pull_request' }}
@@ -67,16 +67,6 @@ inputs:
description: |-
Input for the buf command.
required: false
- config:
- description: |-
- Path to buf.yaml or data to use for configuration.
- required: false
- disable_symlinks:
- description: |-
- Disables following symlinks when reading sources or configuration from the local filesystem.
- By default, symlinks are followed by buf, but never followed on the Buf Schema Registry.
- required: false
- default: "false"
paths:
description: |-
Limit to specific files or directories (separated by newlines).
@@ -97,27 +87,27 @@ inputs:
required: false
exclude_imports:
description: |-
- Excludes imports.
+ Exclude files imported by the target modules.
required: false
default: "false"
lint:
description: |-
Whether to run the linting step.
- Runs by default on pull requests if the "buf skip lint" label is not applied.
+ Runs by default on pull requests.
required: false
- default: ${{ github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'buf skip lint') }}
+ default: ${{ github.event_name == 'pull_request' }}
format:
description: |-
Whether to run the formatting step.
- Runs by default on pull requests if the "buf skip format" label is not applied.
+ Runs by default on pull requests.
required: false
- default: ${{ github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'buf skip format') }}
+ default: ${{ github.event_name == 'pull_request' }}
breaking:
description: |-
- Whether to run breaking change detection.
+ Whether to run the breaking change detection step.
Runs by default on pull requests if the "buf skip breaking" label is not applied.
required: false
default: ${{ github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'buf skip breaking') }}
@@ -126,71 +116,23 @@ inputs:
Input to compare against for breaking change detection.
Defaults to the base branch of the pull request or the commit before the push.
required: false
- default: ${{ github.event.repository.clone_url }}#format=git,commit=${{ github.event.pull_request.base.sha || github.event.before }}
- breaking_against_config:
- description: |-
- Path to buf.yaml or data to use for the against configuration.
- required: false
- breaking_limit_to_input_files:
- description: |-
- Only run breaking checks against the files in the input.
- When set, the "breaking_against" input contains only the files in the input.
- Overrides path.
- required: false
- default: "false"
push:
description: |-
Whether to run the push step. Runs by default on pushes.
required: false
default: ${{ github.event_name == 'push' }}
- push_create:
- description: |-
- Create the repository if it does not exist.
- required: false
- default: "true"
- push_create_visibility:
+ push_disable_create:
description: |-
- Repository's visibility setting if created.
- Must be either "public" or "private".
- required: false
- push_labels:
- description: |-
- Associates the labels with the pushed modules (separated by newlines).
- Labels are added in addition to the default labels from "--git-metadata".
- Example:
- with:
- push_labels: |
- label1
- label2
- required: false
- push_git_metadata:
- description: |-
- Set additional git metadata for the push using "--git-metadata".
- Defaults to true.
- required: false
- default: "true"
- push_source_control_url:
- description: |-
- Set the source control URL for the pushed modules.
+ Disables repository creation if it does not exist. Defaults to false.
required: false
+ default: "false"
archive:
description: |-
Whether to run the archive step. Runs by default on deletes.
required: false
default: ${{ github.event_name == 'delete' }}
- archive_labels:
- description: |-
- Labels to archive (separated by newlines).
- Example:
- with:
- archive_labels: |
- label1
- label2
- required: false
- default: |
- ${{ github.event.ref }}
outputs:
buf_version:
diff --git a/dist/index.js b/dist/index.js
index 38485d6..1bc8789 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -37517,8 +37517,6 @@ var core = __nccwpck_require__(2186);
var exec = __nccwpck_require__(1514);
// EXTERNAL MODULE: ./node_modules/@actions/github/lib/github.js
var lib_github = __nccwpck_require__(5438);
-// EXTERNAL MODULE: ./node_modules/semver/index.js
-var semver = __nccwpck_require__(1383);
;// CONCATENATED MODULE: ./node_modules/@bufbuild/protobuf/dist/esm/service-type.js
// Copyright 2021-2024 Buf Technologies, Inc.
//
@@ -45377,20 +45375,18 @@ const LabelService = {
// See the License for the specific language governing permissions and
// limitations under the License.
+
// getInputs decodes the inputs from the environment variables.
function getInputs() {
- return {
+ const inputs = {
version: core.getInput("version"),
username: core.getInput("username"),
token: core.getInput("token") || getEnv("BUF_TOKEN"),
domain: core.getInput("domain"),
- github_token: core.getInput("github_token"),
setup_only: core.getBooleanInput("setup_only"),
- comment: core.getBooleanInput("comment"),
+ pr_comment: core.getBooleanInput("pr_comment"),
// Inputs shared between buf steps.
input: core.getInput("input"),
- config: core.getInput("config"),
- disable_symlinks: core.getBooleanInput("disable_symlinks"),
paths: core.getMultilineInput("paths"),
exclude_paths: core.getMultilineInput("exclude_paths"),
exclude_imports: core.getBooleanInput("exclude_imports"),
@@ -45399,17 +45395,36 @@ function getInputs() {
format: core.getBooleanInput("format"),
breaking: core.getBooleanInput("breaking"),
breaking_against: core.getInput("breaking_against"),
- breaking_against_config: core.getInput("breaking_against_config"),
- breaking_limit_to_input_files: core.getBooleanInput("breaking_limit_to_input_files"),
push: core.getBooleanInput("push"),
- push_create: core.getBooleanInput("push_create"),
- push_create_visibility: core.getInput("push_create_visibility"),
- push_labels: core.getMultilineInput("push_labels"),
- push_git_metadata: core.getBooleanInput("push_git_metadata"),
- push_source_control_url: core.getInput("push_source_control_url"),
+ push_disable_create: core.getBooleanInput("push_disable_create"),
archive: core.getBooleanInput("archive"),
- archive_labels: core.getMultilineInput("archive_labels"),
+ archive_labels: [],
};
+ if (lib_github.context.eventName === "push") {
+ const event = lib_github.context.payload;
+ if (inputs.breaking_against === "") {
+ inputs.breaking_against = `${event.repository.clone_url}#format=git,commit=${event.before}`;
+ if (inputs.input) {
+ inputs.breaking_against += `,subdir=${inputs.input}`;
+ }
+ }
+ inputs.archive_labels.push(lib_github.context.ref);
+ }
+ if (lib_github.context.eventName === "pull_request") {
+ const event = lib_github.context.payload;
+ if (inputs.breaking_against === "") {
+ inputs.breaking_against = `${event.repository.clone_url}#format=git,commit=${event.pull_request.base.sha}`;
+ if (inputs.input) {
+ inputs.breaking_against += `,subdir=${inputs.input}`;
+ }
+ }
+ inputs.archive_labels.push(lib_github.context.ref);
+ }
+ if (lib_github.context.eventName === "delete") {
+ const event = lib_github.context.payload;
+ inputs.archive_labels.push(event.ref);
+ }
+ return inputs;
}
// getEnv returns the case insensitive value of the environment variable.
// Prefers the lowercase version of the variable if it exists.
@@ -45439,6 +45454,8 @@ var Outputs;
// EXTERNAL MODULE: ./node_modules/@actions/tool-cache/lib/tool-cache.js
var tool_cache = __nccwpck_require__(7784);
+// EXTERNAL MODULE: ./node_modules/semver/index.js
+var semver = __nccwpck_require__(1383);
;// CONCATENATED MODULE: ./src/installer.ts
// Copyright 2024 Buf Technologies, Inc.
//
@@ -45697,11 +45714,10 @@ function parseModuleName(moduleName) {
-
// main is the entrypoint for the action.
async function main() {
const inputs = getInputs();
- const github = (0,lib_github.getOctokit)(inputs.github_token);
+ const github = (0,lib_github.getOctokit)(core.getInput("github_token"));
const [bufPath, bufVersion] = await installBuf(github, inputs.version);
core.setOutput(Outputs.BufVersion, bufVersion);
await login(bufPath, inputs);
@@ -45710,11 +45726,11 @@ async function main() {
return;
}
// Run the buf workflow.
- const steps = await runWorkflow(bufPath, bufVersion, inputs);
+ const steps = await runWorkflow(bufPath, inputs);
// Create a summary of the steps.
const summary = createSummary(inputs, steps);
// Comment on the PR with the summary, if requested.
- if (inputs.comment) {
+ if (inputs.pr_comment) {
await commentOnPR(lib_github.context, github, summary.stringify());
}
// Write the summary to a file defined by GITHUB_STEP_SUMMARY.
@@ -45739,13 +45755,10 @@ function createSummary(inputs, steps) {
{ data: "Status", header: true },
],
["build", message(steps.build?.status)],
+ ["lint", message(steps.lint?.status)],
+ ["format", message(steps.format?.status)],
+ ["breaking", message(steps.breaking?.status)],
];
- if (inputs.lint)
- table.push(["lint", message(steps.lint?.status)]);
- if (inputs.format)
- table.push(["format", message(steps.format?.status)]);
- if (inputs.breaking)
- table.push(["breaking", message(steps.breaking?.status)]);
if (inputs.push)
table.push(["push", message(steps.push?.status)]);
if (inputs.archive)
@@ -45756,7 +45769,7 @@ function createSummary(inputs, steps) {
// First, it builds the input. If the build fails, the workflow stops.
// Next, it runs lint, format, and breaking checks. If any of these fail, the workflow stops.
// Finally, it pushes or archives the label to the registry.
-async function runWorkflow(bufPath, bufVersion, inputs) {
+async function runWorkflow(bufPath, inputs) {
const steps = {};
steps.build = await build(bufPath, inputs);
if (steps.build.status == Status.Failed) {
@@ -45774,7 +45787,7 @@ async function runWorkflow(bufPath, bufVersion, inputs) {
return steps;
}
const moduleNames = await parseModuleNames(bufPath, inputs.input);
- steps.push = await push(bufPath, bufVersion, inputs, moduleNames);
+ steps.push = await push(bufPath, inputs, moduleNames);
steps.archive = await archive(inputs, moduleNames);
return steps;
}
@@ -45799,12 +45812,6 @@ async function build(bufPath, inputs) {
if (inputs.input) {
args.push(inputs.input);
}
- if (inputs.config != "") {
- args.push("--config", inputs.config);
- }
- if (inputs.disable_symlinks) {
- args.push("--disable-symlinks");
- }
for (const path of inputs.paths) {
args.push("--path", path);
}
@@ -45826,12 +45833,6 @@ async function lint(bufPath, inputs) {
if (inputs.input) {
args.push(inputs.input);
}
- if (inputs.config != "") {
- args.push("--config", inputs.config);
- }
- if (inputs.disable_symlinks) {
- args.push("--disable-symlinks");
- }
for (const path of inputs.paths) {
args.push("--path", path);
}
@@ -45856,12 +45857,6 @@ async function format(bufPath, inputs) {
if (inputs.input) {
args.push(inputs.input);
}
- if (inputs.config) {
- args.push("--config", inputs.config);
- }
- if (inputs.disable_symlinks) {
- args.push("--disable-symlinks");
- }
for (const path of inputs.paths) {
args.push("--path", path);
}
@@ -45886,15 +45881,6 @@ async function breaking(bufPath, inputs) {
if (inputs.input) {
args.push(inputs.input);
}
- if (inputs.breaking_against_config) {
- args.push("--against-config", inputs.breaking_against_config);
- }
- if (inputs.config) {
- args.push("--config", inputs.config);
- }
- if (inputs.disable_symlinks) {
- args.push("--disable-symlinks");
- }
for (const path of inputs.paths) {
args.push("--path", path);
}
@@ -45907,7 +45893,7 @@ async function breaking(bufPath, inputs) {
return run(bufPath, args);
}
// push runs the "buf push" step.
-async function push(bufPath, bufVersion, inputs, moduleNames) {
+async function push(bufPath, inputs, moduleNames) {
if (!inputs.push) {
core.debug("Skipping push");
return skip();
@@ -45916,32 +45902,19 @@ async function push(bufPath, bufVersion, inputs, moduleNames) {
core.debug("Skipping push, no named modules detected");
return skip();
}
- const args = ["push", "--error-format", "github-actions"];
- // Add --exclude-unnamed on buf versions that support the flag.
- if (semver.satisfies(bufVersion, ">=1.33.0")) {
- args.push("--exclude-unnamed");
+ const args = [
+ "push",
+ "--error-format",
+ "github-actions",
+ "--exclude-unnamed",
+ "--git-metadata",
+ ];
+ if (!inputs.push_disable_create) {
+ args.push("--create");
}
if (inputs.input) {
args.push(inputs.input);
}
- if (inputs.push_create) {
- args.push("--create");
- if (inputs.push_create_visibility) {
- args.push("--create-visibility", inputs.push_create_visibility);
- }
- }
- if (inputs.push_git_metadata) {
- args.push("--git-metadata");
- }
- if (inputs.push_source_control_url) {
- args.push("--source-control-url", inputs.push_source_control_url);
- }
- if (inputs.disable_symlinks) {
- args.push("--disable-symlinks");
- }
- for (const label of inputs.push_labels) {
- args.push("--label", label);
- }
return run(bufPath, args);
}
// archive runs the "buf archive" step.
diff --git a/examples/disable-skip/buf-ci.yaml b/examples/disable-skip/buf-ci.yaml
index 98b33ae..0a125dd 100644
--- a/examples/disable-skip/buf-ci.yaml
+++ b/examples/disable-skip/buf-ci.yaml
@@ -19,6 +19,4 @@ jobs:
with:
username: ${{ secrets.BUF_USERNAME }}
token: ${{ secrets.BUF_TOKEN }}
- lint: ${{ github.event_name == 'pull_request' }}
- format: ${{ github.event_name == 'pull_request' }}
breaking: ${{ github.event_name == 'pull_request' }}
diff --git a/package-lock.json b/package-lock.json
index 881180f..10871a9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,9 +13,10 @@
"@actions/exec": "^1.1.1",
"@actions/github": "^6.0.0",
"@actions/tool-cache": "^2.0.1",
- "@buf/bufbuild_registry.connectrpc_es": "^1.4.0-20240610164129-660609bc46d3.2",
+ "@buf/bufbuild_registry.connectrpc_es": "^1.4.0-20240626210909-c9e875a41f74.3",
"@connectrpc/connect": "^1.4.0",
"@connectrpc/connect-web": "^1.4.0",
+ "@octokit/webhooks-definitions": "^3.67.3",
"semver": "^7.6.1"
},
"devDependencies": {
@@ -33,8 +34,7 @@
},
"node_modules/@actions/core": {
"version": "1.10.1",
- "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz",
- "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==",
+ "license": "MIT",
"dependencies": {
"@actions/http-client": "^2.0.1",
"uuid": "^8.3.2"
@@ -42,16 +42,14 @@
},
"node_modules/@actions/exec": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz",
- "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==",
+ "license": "MIT",
"dependencies": {
"@actions/io": "^1.0.1"
}
},
"node_modules/@actions/github": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@actions/github/-/github-6.0.0.tgz",
- "integrity": "sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==",
+ "license": "MIT",
"dependencies": {
"@actions/http-client": "^2.2.0",
"@octokit/core": "^5.0.1",
@@ -61,8 +59,7 @@
},
"node_modules/@actions/http-client": {
"version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.1.tgz",
- "integrity": "sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==",
+ "license": "MIT",
"dependencies": {
"tunnel": "^0.0.6",
"undici": "^5.25.4"
@@ -70,13 +67,11 @@
},
"node_modules/@actions/io": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz",
- "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q=="
+ "license": "MIT"
},
"node_modules/@actions/tool-cache": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-2.0.1.tgz",
- "integrity": "sha512-iPU+mNwrbA8jodY8eyo/0S/QqCKDajiR8OxWTnSk/SnYg0sj8Hp4QcUEVC1YFpHWXtrfbQrE13Jz4k4HXJQKcA==",
+ "license": "MIT",
"dependencies": {
"@actions/core": "^1.2.6",
"@actions/exec": "^1.0.0",
@@ -88,54 +83,51 @@
},
"node_modules/@actions/tool-cache/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/@actions/tool-cache/node_modules/uuid": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "license": "MIT",
"bin": {
"uuid": "bin/uuid"
}
},
"node_modules/@buf/bufbuild_protovalidate.bufbuild_es": {
- "version": "1.7.2-20240401165935-b983156c5e99.1",
- "resolved": "https://buf.build/gen/npm/v1/@buf/bufbuild_protovalidate.bufbuild_es/-/bufbuild_protovalidate.bufbuild_es-1.7.2-20240401165935-b983156c5e99.1.tgz",
+ "version": "1.7.2-20240401165935-b983156c5e99.2",
+ "resolved": "https://buf.build/gen/npm/v1/@buf/bufbuild_protovalidate.bufbuild_es/-/bufbuild_protovalidate.bufbuild_es-1.7.2-20240401165935-b983156c5e99.2.tgz",
"peerDependencies": {
"@bufbuild/protobuf": "^1.7.2"
}
},
"node_modules/@buf/bufbuild_protovalidate.connectrpc_es": {
- "version": "1.4.0-20240401165935-b983156c5e99.2",
- "resolved": "https://buf.build/gen/npm/v1/@buf/bufbuild_protovalidate.connectrpc_es/-/bufbuild_protovalidate.connectrpc_es-1.4.0-20240401165935-b983156c5e99.2.tgz",
+ "version": "1.4.0-20240401165935-b983156c5e99.3",
+ "resolved": "https://buf.build/gen/npm/v1/@buf/bufbuild_protovalidate.connectrpc_es/-/bufbuild_protovalidate.connectrpc_es-1.4.0-20240401165935-b983156c5e99.3.tgz",
"dependencies": {
- "@buf/bufbuild_protovalidate.bufbuild_es": "1.7.2-20240401165935-b983156c5e99.1"
+ "@buf/bufbuild_protovalidate.bufbuild_es": "1.7.2-20240401165935-b983156c5e99.2"
},
"peerDependencies": {
"@connectrpc/connect": "^1.4.0"
}
},
"node_modules/@buf/bufbuild_registry.bufbuild_es": {
- "version": "1.7.2-20240610164129-660609bc46d3.1",
- "resolved": "https://buf.build/gen/npm/v1/@buf/bufbuild_registry.bufbuild_es/-/bufbuild_registry.bufbuild_es-1.7.2-20240610164129-660609bc46d3.1.tgz",
+ "version": "1.7.2-20240626210909-c9e875a41f74.2",
+ "resolved": "https://buf.build/gen/npm/v1/@buf/bufbuild_registry.bufbuild_es/-/bufbuild_registry.bufbuild_es-1.7.2-20240626210909-c9e875a41f74.2.tgz",
"dependencies": {
- "@buf/bufbuild_protovalidate.bufbuild_es": "1.7.2-20240401165935-b983156c5e99.1"
+ "@buf/bufbuild_protovalidate.bufbuild_es": "1.7.2-20240401165935-b983156c5e99.2"
},
"peerDependencies": {
"@bufbuild/protobuf": "^1.7.2"
}
},
"node_modules/@buf/bufbuild_registry.connectrpc_es": {
- "version": "1.4.0-20240610164129-660609bc46d3.2",
- "resolved": "https://buf.build/gen/npm/v1/@buf/bufbuild_registry.connectrpc_es/-/bufbuild_registry.connectrpc_es-1.4.0-20240610164129-660609bc46d3.2.tgz",
+ "version": "1.4.0-20240626210909-c9e875a41f74.3",
+ "resolved": "https://buf.build/gen/npm/v1/@buf/bufbuild_registry.connectrpc_es/-/bufbuild_registry.connectrpc_es-1.4.0-20240626210909-c9e875a41f74.3.tgz",
"dependencies": {
- "@buf/bufbuild_protovalidate.connectrpc_es": "1.4.0-20240401165935-b983156c5e99.2",
- "@buf/bufbuild_registry.bufbuild_es": "1.7.2-20240610164129-660609bc46d3.1"
+ "@buf/bufbuild_protovalidate.connectrpc_es": "1.4.0-20240401165935-b983156c5e99.3",
+ "@buf/bufbuild_registry.bufbuild_es": "1.7.2-20240626210909-c9e875a41f74.2"
},
"peerDependencies": {
"@connectrpc/connect": "^1.4.0"
@@ -143,9 +135,8 @@
},
"node_modules/@bufbuild/license-header": {
"version": "0.0.4",
- "resolved": "https://registry.npmjs.org/@bufbuild/license-header/-/license-header-0.0.4.tgz",
- "integrity": "sha512-wOOrMjfLdDAO/BAKzCs/bvMPz61X3+qYC9nUbYxJYLVPFAlXus8aw2jNktyHEvLToCjOhn5EcpyaCpMzPHyHIQ==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"picomatch": "^2.3.1"
},
@@ -155,22 +146,19 @@
},
"node_modules/@bufbuild/protobuf": {
"version": "1.10.0",
- "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.10.0.tgz",
- "integrity": "sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==",
+ "license": "(Apache-2.0 AND BSD-3-Clause)",
"peer": true
},
"node_modules/@connectrpc/connect": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@connectrpc/connect/-/connect-1.4.0.tgz",
- "integrity": "sha512-vZeOkKaAjyV4+RH3+rJZIfDFJAfr+7fyYr6sLDKbYX3uuTVszhFe9/YKf5DNqrDb5cKdKVlYkGn6DTDqMitAnA==",
+ "license": "Apache-2.0",
"peerDependencies": {
"@bufbuild/protobuf": "^1.4.2"
}
},
"node_modules/@connectrpc/connect-web": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@connectrpc/connect-web/-/connect-web-1.4.0.tgz",
- "integrity": "sha512-13aO4psFbbm7rdOFGV0De2Za64DY/acMspgloDlcOKzLPPs0yZkhp1OOzAQeiAIr7BM/VOHIA3p8mF0inxCYTA==",
+ "license": "Apache-2.0",
"peerDependencies": {
"@bufbuild/protobuf": "^1.4.2",
"@connectrpc/connect": "1.4.0"
@@ -178,9 +166,8 @@
},
"node_modules/@eslint-community/eslint-utils": {
"version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"eslint-visitor-keys": "^3.3.0"
},
@@ -193,18 +180,16 @@
},
"node_modules/@eslint-community/regexpp": {
"version": "4.10.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
- "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
"node_modules/@eslint/eslintrc": {
"version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
- "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
@@ -225,9 +210,8 @@
},
"node_modules/@eslint/eslintrc/node_modules/globals": {
"version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -240,26 +224,23 @@
},
"node_modules/@eslint/js": {
"version": "9.2.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.2.0.tgz",
- "integrity": "sha512-ESiIudvhoYni+MdsI8oD7skpprZ89qKocwRM2KEvhhBJ9nl5MRh7BXU5GTod7Mdygq+AUl+QzId6iWJKR/wABA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@fastify/busboy": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz",
- "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==",
+ "license": "MIT",
"engines": {
"node": ">=14"
}
},
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.14",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
- "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@humanwhocodes/object-schema": "^2.0.2",
"debug": "^4.3.1",
@@ -271,9 +252,8 @@
},
"node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=12.22"
},
@@ -284,15 +264,13 @@
},
"node_modules/@humanwhocodes/object-schema": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
- "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
@@ -303,18 +281,16 @@
},
"node_modules/@nodelib/fs.stat": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 8"
}
},
"node_modules/@nodelib/fs.walk": {
"version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
@@ -325,16 +301,14 @@
},
"node_modules/@octokit/auth-token": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
- "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
+ "license": "MIT",
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/core": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz",
- "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==",
+ "license": "MIT",
"dependencies": {
"@octokit/auth-token": "^4.0.0",
"@octokit/graphql": "^7.1.0",
@@ -350,8 +324,7 @@
},
"node_modules/@octokit/endpoint": {
"version": "9.0.5",
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz",
- "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==",
+ "license": "MIT",
"dependencies": {
"@octokit/types": "^13.1.0",
"universal-user-agent": "^6.0.0"
@@ -362,8 +335,7 @@
},
"node_modules/@octokit/graphql": {
"version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz",
- "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==",
+ "license": "MIT",
"dependencies": {
"@octokit/request": "^8.3.0",
"@octokit/types": "^13.0.0",
@@ -375,13 +347,11 @@
},
"node_modules/@octokit/openapi-types": {
"version": "22.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.1.0.tgz",
- "integrity": "sha512-pGUdSP+eEPfZiQHNkZI0U01HLipxncisdJQB4G//OAmfeO8sqTQ9KRa0KF03TUPCziNsoXUrTg4B2Q1EX++T0Q=="
+ "license": "MIT"
},
"node_modules/@octokit/plugin-paginate-rest": {
"version": "9.2.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz",
- "integrity": "sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==",
+ "license": "MIT",
"dependencies": {
"@octokit/types": "^12.6.0"
},
@@ -394,21 +364,18 @@
},
"node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": {
"version": "20.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz",
- "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA=="
+ "license": "MIT"
},
"node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": {
"version": "12.6.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz",
- "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==",
+ "license": "MIT",
"dependencies": {
"@octokit/openapi-types": "^20.0.0"
}
},
"node_modules/@octokit/plugin-rest-endpoint-methods": {
"version": "10.4.1",
- "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz",
- "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==",
+ "license": "MIT",
"dependencies": {
"@octokit/types": "^12.6.0"
},
@@ -421,21 +388,18 @@
},
"node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": {
"version": "20.0.0",
- "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz",
- "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA=="
+ "license": "MIT"
},
"node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": {
"version": "12.6.0",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz",
- "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==",
+ "license": "MIT",
"dependencies": {
"@octokit/openapi-types": "^20.0.0"
}
},
"node_modules/@octokit/request": {
"version": "8.4.0",
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz",
- "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==",
+ "license": "MIT",
"dependencies": {
"@octokit/endpoint": "^9.0.1",
"@octokit/request-error": "^5.1.0",
@@ -448,8 +412,7 @@
},
"node_modules/@octokit/request-error": {
"version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz",
- "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==",
+ "license": "MIT",
"dependencies": {
"@octokit/types": "^13.1.0",
"deprecation": "^2.0.0",
@@ -461,32 +424,32 @@
},
"node_modules/@octokit/types": {
"version": "13.4.1",
- "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.4.1.tgz",
- "integrity": "sha512-Y73oOAzRBAUzR/iRAbGULzpNkX8vaxKCqEtg6K74Ff3w9f5apFnWtE/2nade7dMWWW3bS5Kkd6DJS4HF04xreg==",
+ "license": "MIT",
"dependencies": {
"@octokit/openapi-types": "^22.1.0"
}
},
+ "node_modules/@octokit/webhooks-definitions": {
+ "version": "3.67.3",
+ "license": "MIT"
+ },
"node_modules/@types/node": {
"version": "20.12.7",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz",
- "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"undici-types": "~5.26.4"
}
},
"node_modules/@types/semver": {
"version": "7.5.8",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
- "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.9.0.tgz",
- "integrity": "sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
"@typescript-eslint/scope-manager": "7.9.0",
@@ -517,9 +480,8 @@
},
"node_modules/@typescript-eslint/parser": {
"version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.9.0.tgz",
- "integrity": "sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@typescript-eslint/scope-manager": "7.9.0",
"@typescript-eslint/types": "7.9.0",
@@ -545,9 +507,8 @@
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.9.0.tgz",
- "integrity": "sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/types": "7.9.0",
"@typescript-eslint/visitor-keys": "7.9.0"
@@ -562,9 +523,8 @@
},
"node_modules/@typescript-eslint/type-utils": {
"version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.9.0.tgz",
- "integrity": "sha512-6Qy8dfut0PFrFRAZsGzuLoM4hre4gjzWJB6sUvdunCYZsYemTkzZNwF1rnGea326PHPT3zn5Lmg32M/xfJfByA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/typescript-estree": "7.9.0",
"@typescript-eslint/utils": "7.9.0",
@@ -589,9 +549,8 @@
},
"node_modules/@typescript-eslint/types": {
"version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.9.0.tgz",
- "integrity": "sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^18.18.0 || >=20.0.0"
},
@@ -602,9 +561,8 @@
},
"node_modules/@typescript-eslint/typescript-estree": {
"version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.9.0.tgz",
- "integrity": "sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@typescript-eslint/types": "7.9.0",
"@typescript-eslint/visitor-keys": "7.9.0",
@@ -630,18 +588,16 @@
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
"version": "9.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
- "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -654,9 +610,8 @@
},
"node_modules/@typescript-eslint/utils": {
"version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.9.0.tgz",
- "integrity": "sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@typescript-eslint/scope-manager": "7.9.0",
@@ -676,9 +631,8 @@
},
"node_modules/@typescript-eslint/visitor-keys": {
"version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.9.0.tgz",
- "integrity": "sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/types": "7.9.0",
"eslint-visitor-keys": "^3.4.3"
@@ -693,24 +647,21 @@
},
"node_modules/@ungap/structured-clone": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/@vercel/ncc": {
"version": "0.38.1",
- "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz",
- "integrity": "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==",
"dev": true,
+ "license": "MIT",
"bin": {
"ncc": "dist/ncc/cli.js"
}
},
"node_modules/acorn": {
"version": "8.11.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
- "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
"dev": true,
+ "license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
@@ -720,18 +671,16 @@
},
"node_modules/acorn-jsx": {
"version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
"node_modules/ajv": {
"version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -745,18 +694,16 @@
},
"node_modules/ansi-regex": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/ansi-styles": {
"version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -769,35 +716,30 @@
},
"node_modules/argparse": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "dev": true,
+ "license": "Python-2.0"
},
"node_modules/array-union": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/balanced-match": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/before-after-hook": {
"version": "2.2.3",
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
- "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ=="
+ "license": "Apache-2.0"
},
"node_modules/brace-expansion": {
"version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -805,9 +747,8 @@
},
"node_modules/braces": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fill-range": "^7.1.1"
},
@@ -817,18 +758,16 @@
},
"node_modules/callsites": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -842,9 +781,8 @@
},
"node_modules/color-convert": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -854,21 +792,18 @@
},
"node_modules/color-name": {
"version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/concat-map": {
"version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/cross-spawn": {
"version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -880,9 +815,8 @@
},
"node_modules/debug": {
"version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "2.1.2"
},
@@ -897,20 +831,17 @@
},
"node_modules/deep-is": {
"version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/deprecation": {
"version": "2.3.1",
- "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
- "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ=="
+ "license": "ISC"
},
"node_modules/dir-glob": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-type": "^4.0.0"
},
@@ -920,9 +851,8 @@
},
"node_modules/doctrine": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"esutils": "^2.0.2"
},
@@ -932,9 +862,8 @@
},
"node_modules/escape-string-regexp": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -944,9 +873,8 @@
},
"node_modules/eslint": {
"version": "8.57.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
- "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
@@ -999,9 +927,8 @@
},
"node_modules/eslint-scope": {
"version": "7.2.2",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
@@ -1015,9 +942,8 @@
},
"node_modules/eslint-visitor-keys": {
"version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -1027,18 +953,16 @@
},
"node_modules/eslint/node_modules/@eslint/js": {
"version": "8.57.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
- "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/eslint/node_modules/globals": {
"version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -1051,9 +975,8 @@
},
"node_modules/espree": {
"version": "9.6.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
@@ -1068,9 +991,8 @@
},
"node_modules/esquery": {
"version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"estraverse": "^5.1.0"
},
@@ -1080,9 +1002,8 @@
},
"node_modules/esrecurse": {
"version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"estraverse": "^5.2.0"
},
@@ -1092,33 +1013,29 @@
},
"node_modules/estraverse": {
"version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=4.0"
}
},
"node_modules/esutils": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fast-glob": {
"version": "3.3.2",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
- "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -1132,9 +1049,8 @@
},
"node_modules/fast-glob/node_modules/glob-parent": {
"version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -1144,30 +1060,26 @@
},
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fast-levenshtein": {
"version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fastq": {
"version": "1.17.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
- "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"reusify": "^1.0.4"
}
},
"node_modules/file-entry-cache": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"flat-cache": "^3.0.4"
},
@@ -1177,9 +1089,8 @@
},
"node_modules/fill-range": {
"version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -1189,9 +1100,8 @@
},
"node_modules/find-up": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -1205,9 +1115,8 @@
},
"node_modules/flat-cache": {
"version": "3.2.0",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
- "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"flatted": "^3.2.9",
"keyv": "^4.5.3",
@@ -1219,21 +1128,18 @@
},
"node_modules/flatted": {
"version": "3.3.1",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
- "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/fs.realpath": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/glob": {
"version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -1251,9 +1157,8 @@
},
"node_modules/glob-parent": {
"version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"is-glob": "^4.0.3"
},
@@ -1263,9 +1168,8 @@
},
"node_modules/globals": {
"version": "15.2.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-15.2.0.tgz",
- "integrity": "sha512-FQ5YwCHZM3nCmtb5FzEWwdUc9K5d3V/w9mzcz8iGD1gC/aOTHc6PouYu0kkKipNJqHAT7m51sqzQjEjIP+cK0A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
},
@@ -1275,9 +1179,8 @@
},
"node_modules/globby": {
"version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
@@ -1295,33 +1198,29 @@
},
"node_modules/graphemer": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/has-flag": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/ignore": {
"version": "5.3.1",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 4"
}
},
"node_modules/import-fresh": {
"version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -1335,18 +1234,16 @@
},
"node_modules/imurmurhash": {
"version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.8.19"
}
},
"node_modules/inflight": {
"version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
@@ -1354,24 +1251,21 @@
},
"node_modules/inherits": {
"version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/is-extglob": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-glob": {
"version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -1381,33 +1275,29 @@
},
"node_modules/is-number": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
},
"node_modules/is-path-inside": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/isexe": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/js-yaml": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -1417,36 +1307,31 @@
},
"node_modules/json-buffer": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/json-schema-traverse": {
"version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/keyv": {
"version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"json-buffer": "3.0.1"
}
},
"node_modules/levn": {
"version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"prelude-ls": "^1.2.1",
"type-check": "~0.4.0"
@@ -1457,9 +1342,8 @@
},
"node_modules/locate-path": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-locate": "^5.0.0"
},
@@ -1472,24 +1356,21 @@
},
"node_modules/lodash.merge": {
"version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/merge2": {
"version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 8"
}
},
"node_modules/micromatch": {
"version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"braces": "^3.0.2",
"picomatch": "^2.3.1"
@@ -1500,9 +1381,8 @@
},
"node_modules/minimatch": {
"version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -1512,29 +1392,25 @@
},
"node_modules/ms": {
"version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/natural-compare": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/once": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "license": "ISC",
"dependencies": {
"wrappy": "1"
}
},
"node_modules/optionator": {
"version": "0.9.4",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
- "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
@@ -1549,9 +1425,8 @@
},
"node_modules/p-limit": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -1564,9 +1439,8 @@
},
"node_modules/p-locate": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-limit": "^3.0.2"
},
@@ -1579,9 +1453,8 @@
},
"node_modules/parent-module": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"callsites": "^3.0.0"
},
@@ -1591,45 +1464,40 @@
},
"node_modules/path-exists": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/path-is-absolute": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/path-key": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/path-type": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/picomatch": {
"version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8.6"
},
@@ -1639,18 +1507,16 @@
},
"node_modules/prelude-ls": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/prettier": {
"version": "3.2.5",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
- "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
"dev": true,
+ "license": "MIT",
"bin": {
"prettier": "bin/prettier.cjs"
},
@@ -1663,17 +1529,14 @@
},
"node_modules/punycode": {
"version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/queue-microtask": {
"version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"dev": true,
"funding": [
{
@@ -1688,22 +1551,21 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/resolve-from": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/reusify": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
"dev": true,
+ "license": "MIT",
"engines": {
"iojs": ">=1.0.0",
"node": ">=0.10.0"
@@ -1711,9 +1573,8 @@
},
"node_modules/rimraf": {
"version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"glob": "^7.1.3"
},
@@ -1726,8 +1587,6 @@
},
"node_modules/run-parallel": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
"dev": true,
"funding": [
{
@@ -1743,14 +1602,14 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"dependencies": {
"queue-microtask": "^1.2.2"
}
},
"node_modules/semver": {
"version": "7.6.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.1.tgz",
- "integrity": "sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA==",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -1760,9 +1619,8 @@
},
"node_modules/shebang-command": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"shebang-regex": "^3.0.0"
},
@@ -1772,27 +1630,24 @@
},
"node_modules/shebang-regex": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/slash": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/strip-ansi": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1"
},
@@ -1802,9 +1657,8 @@
},
"node_modules/strip-json-comments": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -1814,9 +1668,8 @@
},
"node_modules/supports-color": {
"version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -1826,15 +1679,13 @@
},
"node_modules/text-table": {
"version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/to-regex-range": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -1844,9 +1695,8 @@
},
"node_modules/ts-api-utils": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
- "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=16"
},
@@ -1856,17 +1706,15 @@
},
"node_modules/tunnel": {
"version": "0.0.6",
- "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
- "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
+ "license": "MIT",
"engines": {
"node": ">=0.6.11 <=0.7.0 || >=0.7.3"
}
},
"node_modules/type-check": {
"version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"prelude-ls": "^1.2.1"
},
@@ -1876,9 +1724,8 @@
},
"node_modules/type-fest": {
"version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -1888,9 +1735,8 @@
},
"node_modules/typescript": {
"version": "5.4.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
- "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -1901,9 +1747,8 @@
},
"node_modules/typescript-eslint": {
"version": "7.9.0",
- "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.9.0.tgz",
- "integrity": "sha512-7iTn9c10teHHCys5Ud/yaJntXZrjt3h2mrx3feJGBOLgQkF3TB1X89Xs3aVQ/GgdXRAXpk2bPTdpRwHP4YkUow==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/eslint-plugin": "7.9.0",
"@typescript-eslint/parser": "7.9.0",
@@ -1927,8 +1772,7 @@
},
"node_modules/undici": {
"version": "5.28.4",
- "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz",
- "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==",
+ "license": "MIT",
"dependencies": {
"@fastify/busboy": "^2.0.0"
},
@@ -1938,37 +1782,32 @@
},
"node_modules/undici-types": {
"version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/universal-user-agent": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz",
- "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ=="
+ "license": "ISC"
},
"node_modules/uri-js": {
"version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"punycode": "^2.1.0"
}
},
"node_modules/uuid": {
"version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/which": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
},
@@ -1981,23 +1820,20 @@
},
"node_modules/word-wrap": {
"version": "1.2.5",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
- "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ "license": "ISC"
},
"node_modules/yocto-queue": {
"version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
diff --git a/package.json b/package.json
index cea0d13..6f3822b 100644
--- a/package.json
+++ b/package.json
@@ -41,9 +41,10 @@
"@actions/exec": "^1.1.1",
"@actions/github": "^6.0.0",
"@actions/tool-cache": "^2.0.1",
- "@buf/bufbuild_registry.connectrpc_es": "^1.4.0-20240610164129-660609bc46d3.2",
+ "@buf/bufbuild_registry.connectrpc_es": "^1.4.0-20240626210909-c9e875a41f74.3",
"@connectrpc/connect": "^1.4.0",
"@connectrpc/connect-web": "^1.4.0",
+ "@octokit/webhooks-definitions": "^3.67.3",
"semver": "^7.6.1"
}
}
diff --git a/src/inputs.ts b/src/inputs.ts
index ed26aca..b1ea958 100644
--- a/src/inputs.ts
+++ b/src/inputs.ts
@@ -13,6 +13,12 @@
// limitations under the License.
import * as core from "@actions/core";
+import * as github from "@actions/github";
+import {
+ PushEvent,
+ PullRequestEvent,
+ DeleteEvent,
+} from "@octokit/webhooks-definitions/schema";
// Inputs are the inputs to the action, matching the inputs in the action.yml.
export interface Inputs {
@@ -20,13 +26,10 @@ export interface Inputs {
username: string;
token: string;
domain: string;
- github_token: string;
setup_only: boolean;
- comment: boolean;
+ pr_comment: boolean;
input: string;
- config: string;
- disable_symlinks: boolean;
paths: string[];
exclude_paths: string[];
exclude_imports: boolean;
@@ -35,32 +38,23 @@ export interface Inputs {
format: boolean;
breaking: boolean;
breaking_against: string;
- breaking_against_config: string;
- breaking_limit_to_input_files: boolean;
push: boolean;
- push_create: boolean;
- push_create_visibility: string;
- push_labels: string[];
- push_git_metadata: boolean;
- push_source_control_url: string;
+ push_disable_create: boolean;
archive: boolean;
archive_labels: string[];
}
// getInputs decodes the inputs from the environment variables.
export function getInputs(): Inputs {
- return {
+ const inputs: Inputs = {
version: core.getInput("version"),
username: core.getInput("username"),
token: core.getInput("token") || getEnv("BUF_TOKEN"),
domain: core.getInput("domain"),
- github_token: core.getInput("github_token"),
setup_only: core.getBooleanInput("setup_only"),
- comment: core.getBooleanInput("comment"),
+ pr_comment: core.getBooleanInput("pr_comment"),
// Inputs shared between buf steps.
input: core.getInput("input"),
- config: core.getInput("config"),
- disable_symlinks: core.getBooleanInput("disable_symlinks"),
paths: core.getMultilineInput("paths"),
exclude_paths: core.getMultilineInput("exclude_paths"),
exclude_imports: core.getBooleanInput("exclude_imports"),
@@ -69,19 +63,36 @@ export function getInputs(): Inputs {
format: core.getBooleanInput("format"),
breaking: core.getBooleanInput("breaking"),
breaking_against: core.getInput("breaking_against"),
- breaking_against_config: core.getInput("breaking_against_config"),
- breaking_limit_to_input_files: core.getBooleanInput(
- "breaking_limit_to_input_files",
- ),
push: core.getBooleanInput("push"),
- push_create: core.getBooleanInput("push_create"),
- push_create_visibility: core.getInput("push_create_visibility"),
- push_labels: core.getMultilineInput("push_labels"),
- push_git_metadata: core.getBooleanInput("push_git_metadata"),
- push_source_control_url: core.getInput("push_source_control_url"),
+ push_disable_create: core.getBooleanInput("push_disable_create"),
archive: core.getBooleanInput("archive"),
- archive_labels: core.getMultilineInput("archive_labels"),
+ archive_labels: [],
};
+ if (github.context.eventName === "push") {
+ const event = github.context.payload as PushEvent;
+ if (inputs.breaking_against === "") {
+ inputs.breaking_against = `${event.repository.clone_url}#format=git,commit=${event.before}`;
+ if (inputs.input) {
+ inputs.breaking_against += `,subdir=${inputs.input}`;
+ }
+ }
+ inputs.archive_labels.push(github.context.ref);
+ }
+ if (github.context.eventName === "pull_request") {
+ const event = github.context.payload as PullRequestEvent;
+ if (inputs.breaking_against === "") {
+ inputs.breaking_against = `${event.repository.clone_url}#format=git,commit=${event.pull_request.base.sha}`;
+ if (inputs.input) {
+ inputs.breaking_against += `,subdir=${inputs.input}`;
+ }
+ }
+ inputs.archive_labels.push(github.context.ref);
+ }
+ if (github.context.eventName === "delete") {
+ const event = github.context.payload as DeleteEvent;
+ inputs.archive_labels.push(event.ref);
+ }
+ return inputs;
}
// getEnv returns the case insensitive value of the environment variable.
diff --git a/src/main.ts b/src/main.ts
index 03eb533..ddd77cd 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -15,7 +15,6 @@
import * as core from "@actions/core";
import * as exec from "@actions/exec";
import { context, getOctokit } from "@actions/github";
-import * as semver from "semver";
import { createConnectTransport } from "@connectrpc/connect-web";
import { createPromiseClient, ConnectError, Code } from "@connectrpc/connect";
@@ -31,7 +30,7 @@ import { parseModuleNames, ModuleName } from "./config";
// main is the entrypoint for the action.
async function main() {
const inputs = getInputs();
- const github = getOctokit(inputs.github_token);
+ const github = getOctokit(core.getInput("github_token"));
const [bufPath, bufVersion] = await installBuf(github, inputs.version);
core.setOutput(Outputs.BufVersion, bufVersion);
await login(bufPath, inputs);
@@ -41,11 +40,11 @@ async function main() {
return;
}
// Run the buf workflow.
- const steps = await runWorkflow(bufPath, bufVersion, inputs);
+ const steps = await runWorkflow(bufPath, inputs);
// Create a summary of the steps.
const summary = createSummary(inputs, steps);
// Comment on the PR with the summary, if requested.
- if (inputs.comment) {
+ if (inputs.pr_comment) {
await commentOnPR(context, github, summary.stringify());
}
// Write the summary to a file defined by GITHUB_STEP_SUMMARY.
@@ -86,11 +85,10 @@ function createSummary(inputs: Inputs, steps: Steps): typeof core.summary {
{ data: "Status", header: true },
],
["build", message(steps.build?.status)],
+ ["lint", message(steps.lint?.status)],
+ ["format", message(steps.format?.status)],
+ ["breaking", message(steps.breaking?.status)],
];
- if (inputs.lint) table.push(["lint", message(steps.lint?.status)]);
- if (inputs.format) table.push(["format", message(steps.format?.status)]);
- if (inputs.breaking)
- table.push(["breaking", message(steps.breaking?.status)]);
if (inputs.push) table.push(["push", message(steps.push?.status)]);
if (inputs.archive) table.push(["archive", message(steps.archive?.status)]);
return core.summary.addTable(table);
@@ -100,11 +98,7 @@ function createSummary(inputs: Inputs, steps: Steps): typeof core.summary {
// First, it builds the input. If the build fails, the workflow stops.
// Next, it runs lint, format, and breaking checks. If any of these fail, the workflow stops.
// Finally, it pushes or archives the label to the registry.
-async function runWorkflow(
- bufPath: string,
- bufVersion: string,
- inputs: Inputs,
-): Promise {
+async function runWorkflow(bufPath: string, inputs: Inputs): Promise {
const steps: Steps = {};
steps.build = await build(bufPath, inputs);
if (steps.build.status == Status.Failed) {
@@ -122,7 +116,7 @@ async function runWorkflow(
return steps;
}
const moduleNames = await parseModuleNames(bufPath, inputs.input);
- steps.push = await push(bufPath, bufVersion, inputs, moduleNames);
+ steps.push = await push(bufPath, inputs, moduleNames);
steps.archive = await archive(inputs, moduleNames);
return steps;
}
@@ -153,12 +147,6 @@ async function build(bufPath: string, inputs: Inputs): Promise {
if (inputs.input) {
args.push(inputs.input);
}
- if (inputs.config != "") {
- args.push("--config", inputs.config);
- }
- if (inputs.disable_symlinks) {
- args.push("--disable-symlinks");
- }
for (const path of inputs.paths) {
args.push("--path", path);
}
@@ -181,12 +169,6 @@ async function lint(bufPath: string, inputs: Inputs): Promise {
if (inputs.input) {
args.push(inputs.input);
}
- if (inputs.config != "") {
- args.push("--config", inputs.config);
- }
- if (inputs.disable_symlinks) {
- args.push("--disable-symlinks");
- }
for (const path of inputs.paths) {
args.push("--path", path);
}
@@ -212,12 +194,6 @@ async function format(bufPath: string, inputs: Inputs): Promise {
if (inputs.input) {
args.push(inputs.input);
}
- if (inputs.config) {
- args.push("--config", inputs.config);
- }
- if (inputs.disable_symlinks) {
- args.push("--disable-symlinks");
- }
for (const path of inputs.paths) {
args.push("--path", path);
}
@@ -243,15 +219,6 @@ async function breaking(bufPath: string, inputs: Inputs): Promise {
if (inputs.input) {
args.push(inputs.input);
}
- if (inputs.breaking_against_config) {
- args.push("--against-config", inputs.breaking_against_config);
- }
- if (inputs.config) {
- args.push("--config", inputs.config);
- }
- if (inputs.disable_symlinks) {
- args.push("--disable-symlinks");
- }
for (const path of inputs.paths) {
args.push("--path", path);
}
@@ -267,7 +234,6 @@ async function breaking(bufPath: string, inputs: Inputs): Promise {
// push runs the "buf push" step.
async function push(
bufPath: string,
- bufVersion: string,
inputs: Inputs,
moduleNames: ModuleName[],
): Promise {
@@ -279,32 +245,19 @@ async function push(
core.debug("Skipping push, no named modules detected");
return skip();
}
- const args = ["push", "--error-format", "github-actions"];
- // Add --exclude-unnamed on buf versions that support the flag.
- if (semver.satisfies(bufVersion, ">=1.33.0")) {
- args.push("--exclude-unnamed");
+ const args = [
+ "push",
+ "--error-format",
+ "github-actions",
+ "--exclude-unnamed",
+ "--git-metadata",
+ ];
+ if (!inputs.push_disable_create) {
+ args.push("--create");
}
if (inputs.input) {
args.push(inputs.input);
}
- if (inputs.push_create) {
- args.push("--create");
- if (inputs.push_create_visibility) {
- args.push("--create-visibility", inputs.push_create_visibility);
- }
- }
- if (inputs.push_git_metadata) {
- args.push("--git-metadata");
- }
- if (inputs.push_source_control_url) {
- args.push("--source-control-url", inputs.push_source_control_url);
- }
- if (inputs.disable_symlinks) {
- args.push("--disable-symlinks");
- }
- for (const label of inputs.push_labels) {
- args.push("--label", label);
- }
return run(bufPath, args);
}
diff --git a/static/img/skip-breaking-example.png b/static/img/skip-breaking-example.png
new file mode 100644
index 0000000..be304f7
Binary files /dev/null and b/static/img/skip-breaking-example.png differ